Estou lutando com algo no FFMpeg no momento ...
Estou tentando fazer arquivos MXF DNxHD 1080p / 24, 36Mb / s a partir de uma seqüência de arquivos PNG.
Minha linha de comando atual é:
ffmpeg -y -f image2 -i /tmp/temp.%04d.png -s 1920x1080 -r 24 -vcodec dnxhd -f mxf -pix_fmt rgb32 -b 36Mb /tmp/temp.mxf
Para o qual o ffmpeg me fornece a saída:
Input #0, image2, from '/tmp/temp.%04d.png':
Duration: 00:00:01.60, start: 0.000000, bitrate: N/A
Stream #0.0: Video: png, rgb32, 1920x1080, 25 tbr, 25 tbn, 25 tbc
Output #0, mxf, to '/tmp/temp.mxf':
Stream #0.0: Video: dnxhd, yuv422p, 1920x1080, q=2-31, 36000 kb/s, 90k tbn, 24 tbc
Stream mapping:
Stream #0.0 -> #0.0
[mxf @ 0x1005800]unsupported video frame rate
Could not write header for output file #0 (incorrect codec parameters ?)
Há algumas coisas aqui que me preocupam:
- O fluxo de saída está insistindo em ser yuv422p, que não suporta alfa.
- 24fps é uma taxa de quadros de vídeo sem suporte? Eu tentei 23.976 também e obter a mesma coisa.
Eu então tentei a mesma coisa, mas escrevendo para um quicktime (ainda DNxHD, embora) com:
ffmpeg -y -f image2 -i /tmp/temp.%04d.png -s 1920x1080 -r 24 -vcodec dnxhd -f mov -pix_fmt rgb32 -b 36Mb /tmp/temp.mov
Isso me dá a saída:
Input #0, image2, from '/tmp/1274263259.28098.%04d.png':
Duration: 00:00:01.60, start: 0.000000, bitrate: N/A
Stream #0.0: Video: png, rgb32, 1920x1080, 25 tbr, 25 tbn, 25 tbc
Output #0, mov, to '/tmp/1274263259.28098.mov':
Stream #0.0: Video: dnxhd, yuv422p, 1920x1080, q=2-31, 36000 kb/s, 90k tbn, 24 tbc
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop encoding
frame= 39 fps= 9 q=1.0 Lsize= 7177kB time=1.62 bitrate=36180.8kbits/s
video:7176kB audio:0kB global headers:0kB muxing overhead 0.013636%
O que obviamente funciona, até certo ponto, mas ainda tem a questão de ser yuv422p e, portanto, perder o alfa.
Se eu estiver indo para o QuickTime, posso obter o que preciso usando o Shake, mas meu principal objetivo aqui é gerar arquivos .mxf.
Alguma opinião?
Obrigado