
Estou fazendo algumas experiências com o formato de vídeo bruto YUV. Este vídeo YUV que criei (com ppmtoy4m do mjpegtools, de uma série de capturas de tela tiradas a 24 fps) funciona bem com Totem, taxa correta, cores corretas, tudo. Além disso, o ffmpeg pode convertê-lo em .mpg perfeitamente. Mas o mplayer e o mencoder se perdem. Estou usando a versão 1.0-0.47.svn20100703 no CentOS 6.
Tentei...
mplayer video.yuv -demuxer rawvideo -rawvideo w=1152:h=864:format=i420
...mas o resultado é um estranho deslocamento de quadro, como uma TV antiga com horizontal desregulada. Aparentemente, ele interpreta os cabeçalhos dos quadros como se fizessem parte do quadro.
O arquivo YUV bzipado pode ser encontradoaqui(AVISO: 34 megas compactados, 3,5 gigas não compactados!)
Os quadros ppm individuais sãoaqui(2,8 megas compactados, 557 megas não compactados)
O vídeo foi gerado com
cat *.ppm | ppmtoy4m -F 24:1 >video.yuv
Há algum parâmetro que estou faltando?
Responder1
Seu problema é que o formato y4m não é yuv. Como slhck mencionou, yuv NÃO possui metadados e carece de informações uniformes de largura e altura (sem mencionar a especificação de 4:2:0 4:2:2 ou 4:4:4 ; variantes de 8 bits, 10 bits, 16 bits).
Encontrei uma descrição do formato Y4M emhttps://wiki.multimedia.cx/index.php?title=YUV4MPEG2e definitivamente tem metadados.
Se você quiser fluxos yuv brutos que mplayer
possam ser reproduzidos, ppmtoy4m
não os gerará. Você pode ser capaz de usar
ffmpeg -i %04d.ppm -c:v rawvideo -f rawvideo -pix_fmt yuv420p video.yuv
Se, em vez disso, você quiser reproduzir uma transmissão do ano 4m, outra pessoa terá que encontrar os argumentos corretos para mplayer
(ou outra ferramenta).