Como converter um vídeo com ffmpeg para o formato DNxHD / DNxHR?

12

Estou seguindo um tutorial sobre como trabalhar com o cinelerra-cv, no começo, como foi dito, que o primeiro passo no trabalho com o cinelerra é converter qualquer videoclipe que tenha no formato dnxhd. Foi dito apenas, não explicado como fazê-lo.

Após algumas pesquisas, deparei-me com o ffmpeg, mas não tenho idéia de como usá-lo em relação ao dnxhd, com o pouco conhecimento que reuni sobre o ffmpeg, meu palpite sobre como fazê-lo seria:

ffmpeg -i <video-clip> -vcodec dnxhd <video-clip-in-dnxhd>

no entanto, isso não funciona, e os exemplos que eu vi na conversão em dnxhd com ffmpeg que eu não entendo, eles pareciam ter cada vez mais tags diferentes sem explicar por que usá-las.

tubarão
fonte
11
deb-indus.org/tuto/ffmpeg-howto.htm#Encoding_VC-3 sugeririaffmpeg -i <input_file> -vcodec dnxhd -b <bitrate> -an output.mov
Rinzwind
obrigado, eu já vi esse antes e fiquei tipo: Preciso especificar uma taxa de bits e não tem som (-an)? .... quero dizer, só é possível trabalhar no cinelerra com videoclipes dnxhd que não têm som?
sharkant
11
-b <int> : Set video bitrate in bit/s ( default = 200k ).então eu suponho que você deve adicionar uma taxa de bits, já que 200k não é uma opção válida. Mas o -anque eu iria cair :)
Rinzwind
a taxa de bits depende do arquivo de origem ou do arquivo em que se deseja converter? .... Quero dizer, se eu apenas tentar usar 200 poderia funcionar?
sharkant
Não. Você precisa especificar a taxa de bits para este codificador específico.
Llogan 21/04

Respostas:

18

Este é um codificador exigente, portanto você deve escolher os parâmetros adequados, incluindo:

  • taxa de quadros
  • formato de pixel / espaço de cores
  • largura x altura / resolução / tamanho do quadro
  • taxa de bits

Consulte os parâmetros DNxHD válidos abaixo para obter os valores aceitos.


Exemplo de DNxHD

Este exemplo será dimensionado para 1280x720, escolha uma taxa de quadros de 30000/1001 (também conhecida como "29,97") e um formato de pixel do plano YUV 4: 2: 2.

ffmpeg -i input -c:v dnxhd -vf "scale=1280:720,fps=30000/1001,format=yuv422p" -b:v 110M -c:a pcm_s16le output.mov
  • Se o seu arquivo de entrada já estiver em conformidade com alguns dos parâmetros aceitos, não será necessário declará-los manualmente.

  • O contêiner de formato de saída para DNxHD geralmente é MXF ou MOV.


Exemplo de DNxHR

DNxHR é para resoluções maiores que 1080p, como 2K, 4K e 8K.

Se você deseja DNxHR, adicione a -profile:vopção de saída, como -profile:v dnxhr_hq.

Os valores aceitos são: dnxhd, dnxhr_444, dnxhr_hqx, dnxhr_hq, dnxhr_sq, dnxhr_lb.

  • DNxHR LB: dnxhr_lb- Baixa largura de banda. 8 bits 4: 2: 2 ( yuv422p). Qualidade offline.
  • DNxHR SQ: dnxhr_sq- Qualidade padrão. 8 bits 4: 2: 2 ( yuv422p). Apropriado para o formato de entrega.
  • DNxHR HQ: dnxhr_hq- Alta qualidade. 8 bits 4: 2: 2 ( yuv422p).
  • DNxHR HQX: dnxhr_hqx- Alta qualidade. 10 bits 4: 2: 2 ( yuv422p10le). Entrega com qualidade de transmissão UHD / 4K.
  • DNxHR 444: dnxhr_444- Qualidade de acabamento. 10 bits 4: 4: 4 ( yuv444p10le). Entrega com qualidade de cinema.

A lista acima foi adaptada do codec DNxHR .


Parâmetros DNxHD válidos

ffmpeg falhará se você fornecer valores incorretos, mas pode fornecer uma lista do que é aceito.

Você pode mostrar a lista com o seguinte comando "fictício":

ffmpeg -f lavfi -i testsrc2 -c:v dnxhd -f null -

Notas importantes sobre a taxa de quadros

  • A taxa de quadros está ausente na lista gerada a partir deste comando. ffmpegaceitará cegamente qualquer taxa de quadros para este codificador, e o software Avid o aceitará (não confirmado), mas a taxa de bits DNxHD deve corresponder apenas a taxas de quadros específicas. Para obter compatibilidade máxima, recomendei apenas o uso da combinação adequada de taxa de bits / taxa de quadros. Portanto, use o comando acima para obter as taxas de bits e formatos de pixel adequados aceitos ffmpege faça referência cruzada com a Lista de resoluções Avid DNxHD ou o White Paper DNxHD (página 9) para obter as taxas de quadros apropriadas.

  • As taxas de quadros listadas nos links acima estão usando aproximações arredondadas imprecisas. Os valores adequados estão listados abaixo; o nome abreviado está à esquerda e o valor apropriado está à direita.

    • 29,97 = 30000/1001 (ou use o alias ntsc)
    • 59,94 = 60000/1001
    • 23.967 = 24000/1001 (ou use o alias ntsc-film)

Mais opções

Para opções adicionais específicas do codificador e uma lista de formatos de pixel suportados, consulte:

ffmpeg -h encoder=dnxhd

Erros

ff_frame_thread_encoder_init failed
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!

Isso significa que sua taxa de quadros, largura, altura, formato de pixel e / ou taxa de bits estão incorretos. Consulte os parâmetros DNxHD válidos acima para obter os valores aceitos.

pixel format is incompatible with DNxHD profile

Escolha um formato de pixel adequado usando o filtro de formato . Veja o exemplo DNxHD acima.

llogan
fonte