Возникли проблемы при чтении YUV-видео с mplayer/mencoder

Я делаю некоторый опыт с форматом необработанного видео YUV. Это видео YUV, которое я создал (с ppmtoy4m из mjpegtools, из серии снимков экрана, сделанных со скоростью 24 кадра в секунду), хорошо воспроизводит тотем, правильную скорость, правильные цвета, все. Кроме того, ffmpeg может преобразовать его в.mpg просто отлично. Но mplayer и mencoder теряются. Я использую версию 1.0-0.47.svn20100703 в CentOS 6.

Я старался...

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

... но в результате получается странное смещение кадра, как у старого телевизора с нерегулируемой горизонталью. По-видимому, он интерпретирует заголовки фрейма, как если бы они были частью фрейма.

YUV-файл bzipped можно найти здесь (ВНИМАНИЕ: сжатие 34 мегабайта, несжатое 3,5 гига!)

Здесь представлены отдельные кадры ppm (сжатые 2,8 мегабайта, несжатые 557 мегабайт)

Видео было создано с

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

Есть ли параметр, который я пропускаю?

1 ответ

Ваша проблема в том, что формат y4m не является yuv. Как упомянул slhck, yuv не имеет метаданных и не имеет четной информации о ширине и высоте (не говоря уже об указании 4:2:0 4:2:2 или 4:4:4; 8-битные, 10-битные, 16-битные варианты).

Я нашел описание формата Y4M по адресу https://wiki.multimedia.cx/index.php?title=YUV4MPEG2 и он определенно содержит метаданные.

Если вы хотите сырые потоки YUV, что mplayer может играть, ppmtoy4m не будет генерировать их. Вы могли бы быть в состоянии использовать

ffmpeg -i %04d.ppm -c:v rawvideo -f rawvideo -pix_fmt yuv420p video.yuv

Если вместо этого вы хотите воспроизвести поток y4m, кто-то другой должен будет найти правильные аргументы для mplayer (или другой инструмент).

Другие вопросы по тегам