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

1

Estou fazendo algumas experiências com o formato de vídeo bruto YUV. Este vídeo YUV que eu criei (com ppmtoy4m do mjpegtools, de uma série de capturas de tela tiradas a 24 qps) funciona bem com Totem, taxa correta, cores corretas, tudo. Além disso, o ffmpeg pode convertê-lo para um .mpg bem. Mas o mplayer e o mencoder se perdem. Estou usando a versão 1.0-0.47.svn20100703 no CentOS 6.

Eu tentei ...

mplayer video.yuv -demuxer rawvideo -rawvideo w=1152:h=864:format=i420

... mas o resultado é um deslocamento de quadro estranho como uma TV antiga com uma horizontal desregulada. Aparentemente, está interpretando os cabeçalhos do quadro como se fossem parte do quadro.

O arquivo YUV bzipado pode ser encontrado aqui (AVISO: 34 megas compactadas, 3,5 gigas descomprimido!)

Os quadros ppm individuais são aqui (2,8 megas comprimido, 557 megas não comprimido)

O vídeo foi gerado com

cat *.ppm | ppmtoy4m -F 24:1 >video.yuv

Existe algum parâmetro que está faltando?

    
por JCCyC 31.05.2012 / 20:41

1 resposta

0

Seu problema é que o formato y4m não é yuv. Como slhck mencionado yuv não tem metadados e não tem informações de largura e altura (para não mencionar a especificação de 4: 2: 0 4: 2: 2 ou 4: 4: 4; 8 bits, 10 bits, variantes de 16 bits).

Eu encontrei uma descrição do formato Y4M no link e ele definitivamente tem metadados.

Se você quiser fluxos yuv brutos que mplayer pode reproduzir, 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 um fluxo do y4m, outra pessoa terá que desenterrar os argumentos corretos para mplayer (ou outra ferramenta).

    
por 08.02.2017 / 22:24