Tendo problemas para ler um vídeo YUV com mplayer/mencoder

Tendo problemas para ler um vídeo YUV com mplayer/mencoder

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 mplayerpossam ser reproduzidos, ppmtoy4mnã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).

informação relacionada