¿Cómo convertir un video con ffmpeg al formato DNxHD / DNxHR?

12

Estoy siguiendo un tutorial sobre cómo trabajar con cinelerra-cv, desde el principio se dijo que el primer paso para trabajar con cinelerra es convertir cualquier clip de video que uno tenga al formato dnxhd. Se acaba de decir, no se explica cómo hacerlo.

Después de investigar un poco, me encontré con ffmpeg, pero no tengo idea de cómo usarlo con respecto a dnxhd, con el poco conocimiento que obtuve sobre ffmpeg, mi suposición sobre cómo hacerlo sería:

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

sin embargo, esto no funciona, y los ejemplos que he visto sobre la conversión a dnxhd con ffmpeg no entiendo, cada vez parecían tener algunas etiquetas diferentes sin explicar por qué usarlas.

Sharkant
fuente
1
deb-indus.org/tuto/ffmpeg-howto.htm#Encoding_VC-3 sugeriríaffmpeg -i <input_file> -vcodec dnxhd -b <bitrate> -an output.mov
Rinzwind
gracias, he visto este antes y pensé: ¿Tengo que especificar una tasa de bits y no debe tener sonido (-an)? ... quiero decir, ¿solo se puede trabajar en cinelerra con videoclips dnxhd que no tienen sonido?
sharkant
1
-b <int> : Set video bitrate in bit/s ( default = 200k ).así que supongo que debe agregar una tasa de bits ya que 200k no es una opción válida. Pero -anme caería :)
Rinzwind
¿La tasa de bits depende del archivo fuente o del archivo en el que se quiere convertir? ... quiero decir, si solo intento usar 200, ¿podría funcionar?
sharkant
No. Debe especificar la tasa de bits para este codificador en particular.
llogan

Respuestas:

18

Este es un codificador exigente, por lo que debe elegir los parámetros adecuados, que incluyen:

  • cuadros por segundo
  • formato de píxeles / espacio de color
  • ancho x alto / resolución / tamaño del marco
  • bitrate

Consulte los parámetros válidos DNxHD a continuación para conocer los valores aceptados.


Ejemplo DNxHD

Este ejemplo escalará a 1280x720, elija una velocidad de cuadro de 30000/1001 (también conocido como "29.97") y un formato de píxel de YUV 4: 2: 2 plano.

ffmpeg -i input -c:v dnxhd -vf "scale=1280:720,fps=30000/1001,format=yuv422p" -b:v 110M -c:a pcm_s16le output.mov
  • Si su archivo de entrada ya se ajusta a algunos de los parámetros aceptados, entonces no tiene que declararlos manualmente.

  • El contenedor de formato de salida para DNxHD suele ser MXF o MOV.


Ejemplo DNxHR

DNxHR es para resoluciones superiores a 1080p, como 2K, 4K y 8K.

Si desea DNxHR, agregue la -profile:vopción de salida, como -profile:v dnxhr_hq.

Los valores aceptados son: dnxhd, dnxhr_444, dnxhr_hqx, dnxhr_hq, dnxhr_sq, dnxhr_lb.

  • DNxHR LB: dnxhr_lb- Ancho de banda bajo. 8 bits 4: 2: 2 ( yuv422p). Calidad fuera de línea.
  • DNxHR SQ: dnxhr_sq- Calidad estándar. 8 bits 4: 2: 2 ( yuv422p). Apto para formato de entrega.
  • DNxHR HQ: dnxhr_hq- Alta calidad. 8 bits 4: 2: 2 ( yuv422p).
  • DNxHR HQX: dnxhr_hqx- Alta calidad. 10 bits 4: 2: 2 ( yuv422p10le). Entrega con calidad de transmisión UHD / 4K.
  • DNxHR 444: dnxhr_444- Calidad de acabado. 10 bits 4: 4: 4 ( yuv444p10le). Entrega de calidad cinematográfica.

La lista anterior se adaptó del códec DNxHR .


Parámetros válidos de DNxHD

ffmpeg fallará si proporciona valores incorrectos, pero puede proporcionar una lista de lo que se acepta.

Puede mostrar la lista con el siguiente comando "ficticio":

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

Notas importantes sobre la velocidad de fotogramas

  • Falta la velocidad de fotogramas en la lista que se genera a partir de este comando. ffmpegaceptará ciegamente cualquier velocidad de cuadro para este codificador, y el software de Avid lo aceptará (sin confirmar), pero se supone que la tasa de bits DNxHD debe coincidir solo con velocidades de cuadro específicas. Para una compatibilidad máxima, recomendé usar solo la combinación adecuada de velocidad de bits / velocidad de fotogramas. Por lo tanto, utilice el comando anterior para obtener las tasas de bits y formatos de píxeles adecuados aceptados por ffmpeg, y haga una referencia cruzada con la Lista de resoluciones Avid DNxHD o el Libro Blanco DNxHD (página 9) para obtener las velocidades de fotogramas adecuadas.

  • Las velocidades de cuadro enumeradas en los enlaces anteriores están utilizando aproximaciones redondeadas inexactas. Los valores adecuados se enumeran a continuación; el nombre abreviado está a la izquierda y el valor adecuado está a la derecha.

    • 29.97 = 30000/1001 (o use el alias ntsc)
    • 59,94 = 60000/1001
    • 23.967 = 24000/1001 (o use el alias ntsc-film)

Mas opciones

Para obtener opciones específicas de codificador adicionales y una lista de formatos de píxeles compatibles, consulte:

ffmpeg -h encoder=dnxhd

Errores

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!

Esto significa que su velocidad de fotogramas, ancho, alto, formato de píxel y / o tasa de bits son incorrectos. Consulte los parámetros válidos DNxHD anteriores para conocer los valores aceptados.

pixel format is incompatible with DNxHD profile

Elija un formato de píxel adecuado con el filtro de formato . Vea el ejemplo DNxHD anterior.

lema
fuente