Tengo varios cientos de archivos de video codificados AVC-Intra Class 100 MXF de 1080p, 59,94 fps, 10 bits por canal (bpc). Me gustaría extraer los cuadros de este archivo de video y exportarlos al disco en un formato de imagen sin pérdida de 16 bits. Recientemente me encontré con esta pregunta: convertir video a imágenes de 10 bits
Así que probé esto:
ffmpeg -i "testinput.mxf" -pix_fmt rgb48 _Frames/out%05d.tiff
Pero me encontré con un problema bastante desafortunado que no estoy seguro de cómo resolver. Aunque técnicamente funcionó y exportó todos los cuadros de video a un formato de 16 bpc, el color de estos cuadros aparece descolorido. Esto es lo que quiero decir:
El primer cuadro del archivo de video original (MXF):
El primer cuadro exportado con ffmpeg:
Como puede ver, el color parece desvanecerse y no coincide perfectamente con el cuadro del video original. No sé a qué se debe esto, pero es un problema grave que necesita una solución lo antes posible. Tal vez no estoy usando ffmpeg correctamente, o tal vez sea un error en ffmpeg. ¿Qué debo hacer para extraer correctamente los fotogramas de este códec en particular? Por favor ayuda.
He incluido el archivo MXF original aquí, para sus propios fines de prueba: https://drive.google.com/open?id=1HtCmPGkIZMMMEOAVKMlLksov7QyKzqRE Aquí hay un enlace al resultado de ejecutar el comando que especifiqué anteriormente. Estoy en la última versión de ffmpeg para Windows, versión de ffmpeg N-94150-g231d0c819f Copyright (c) 2000-2019. https://pastebin.com/8UrxJJpY
Intenta usar:
ffmpeg -i "testinput.mxf" -vf scale=in_range=limited:out_range=full -pix_fmt rgba64 path/to/output/out%05d.tiff
en cambio.
Por una razón que va un poco más allá de mi comprensión de la ciencia del color (o tal vez algo extraño con ffmpeg), el resultado del comando inicial fue crear archivos .tiff en el formato "limitado" (15-235) en lugar de "completo" (0 -255) Gama de colores RGB. Usé los osciloscopios en Premiere Pro y DaVinci Resolve to AB entre el primer cuadro de la secuencia .tiff creada y el .mxf original y las diferencias quedaron claras.
Si no está decidido a usar ffmpeg, también pude lograr un resultado comparable al importar el .mxf a una línea de tiempo de Resolve (versión 15 en mi caso) y luego usar el espacio de trabajo "Entregar", seleccionando el 16 Bit, Opciones RGB y .tiff como salida y usando la configuración de rango 'Auto' o 'Full'. Si sigue la ruta Resolver, puede poner en cola cada archivo .mxf y dejar que se exporten hasta que todo esté completo.
Existen ligeras variaciones entre ffmpeg .tiff, Resolve .tiff y el .mxf original pero, a mi entender, el proceso de convertir YUV (el .mxf original) a RGB (la secuencia .tiff) generalmente no es matemáticamente perfecto. Sin embargo, los archivos pasan la prueba del "globo ocular" y deberían funcionar bien a menos que las personas para las que trabaja tengan requisitos de entrega muy estrictos.
Si realmente quieres profundizar en esto, la gente amable (¡e inteligente!) de los foros de Doom9 puede llevarte a AVISynth (que es realmente genial y poderoso pero también bastante complicado) para conversiones muy avanzadas.
¡Espero que esto ayude!
usuario12174
jippyjoe4
usuario12174