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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.