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

5

Estou seguindo um tutorial sobre como trabalhar com o cinelerra-cv, no começo foi dito que o primeiro passo em trabalhar com o cinelerra, é converter qualquer clipe de vídeo um tem no formato dnxhd. Foi dito apenas, não explicado como fazer isso.

Depois de algumas pesquisas, me deparei com ffmpeg, mas não tenho idéia de como usá-lo em relação ao dnxhd, com o pouco conhecimento que obtive sobre o ffmpeg, meu palpite sobre como fazer seria:

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

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

    
por sharkant 21.04.2017 / 15:29

1 resposta

6

Este é um codificador exigente, então você tem que 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

Veja os parâmetros DNxHD válidos abaixo para 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 de YUV 4: 2: 2 planar.

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 de acordo com alguns dos parâmetros aceitos, você não precisará declará-los manualmente.

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

Exemplo DNxHR

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

Se você quiser DNxHR, adicione a opção de saída do perfil, como -profile dnxhr_hq .

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

  • DNxHR LB - Baixa qualidade de banda (8 bits 4: 2: 2) Qualidade off-line
  • DNxHR SQ - Qualidade Padrão (8 bits 4: 2: 2) (adequado para o formato de entrega)
  • DNxHR HQ - alta qualidade (8 bits 4: 2: 2)
  • DNxHR HQX - Alta qualidade (12 bits 4: 2: 2) (entrega com qualidade de difusão UHD / 4K)
  • DNxHR 444 - Qualidade de acabamento (12 bits 4: 4: 4) (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 "dummy":

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

Notas importantes sobre a taxa de quadros

  • A taxa de quadros está faltando na lista gerada por esse comando. ffmpeg aceitará cegamente qualquer taxa de quadros para este codificador, e o software da Avid irá aceitá-lo (não confirmado), mas a taxa de bits DNxHD deve corresponder apenas a taxas de quadros específicas. Para compatibilidade máxima, recomenda-se usar apenas a combinação de taxa de bits / taxa de quadros adequada. Portanto, use o comando acima para obter as taxas de bits e formatos de pixel apropriados aceitos por ffmpeg e referência cruzada com a Lista de resoluções Avid DNxHD ou o Documento técnico do DNxHD (página 9) para obter as taxas de quadros corretas.

  • 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 correto 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, 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 Parâmetros DNxHD válidos acima para valores aceitos.

pixel format is incompatible with DNxHD profile

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

    
por LordNeckbeard 21.04.2017 / 21:21