LINUX.ORG.RU

mencoder и склейка png в видеофайл

 ,


0

2

Стоит задача преобразовать некоторое количество png-изображений (имя — номер) в видеофайл. Раньше для этой цели готовил файл со списком имен изображений и использовал mencoder в такой команде:

mencoder mf://@listfile -mf type=png:fps=20 -ovc lavc -lavcopts vcodec=ffv1 -o output.avi
Теперь это дает такой вывод:
MPlayer SVN-r36545 (C) 2000-2013 MPlayer Team
success: format: 16  data: 0x0 - 0x0
MF file format detected.
[mf] number of files: 10
VIDEO:  [MPNG]  0x0  24bpp  10.000 fps    0.0 kbps ( 0.0 kbyte/s)
Video stream is mandatory!

Exiting...

Версии mencoder: работало на 1.0svn34540 (официальный репозиторий Дебиана), не работает на 1.0svn36545 (из deb-multimedia, после того, как версия из официальных реп перестала работать). Дистр Debian Sid amd64.

А теперь вопросы:

  • Что вообще означает эта ошибка? Я просто не могу допереть, каким боком video stream относится к png'шкам.
  • Как исправить команду так, чтобы mencoder делал то, что надо?
  • Если это нереально/неэффективно, чем другим можно было бы воспользоваться? Тогда требование — метод должен быть консольным, т.к. должен вызываться из скрипта.
★★★

Ответ на: комментарий от fopen

Имеется ввиду тот ffmpeg, который в deb-multimedia (в офрепах его давно нет)? Я как раз его установил и попробовал, но там не всё работает. Эта команда там вообще добавляет в видео только 1 фрейм. Правда, удается успешно справиться так (имя файла — номер с фиксированной длиной):

ffmpeg -f image2 -pattern_type glob -i '*.png' -r 20 -c:v ffv1 output.avi
Но как-то страшно полагаться на то, что глоббинг не перепутает файлы (по идее, он их не обязан сортировать).

lu4nik ★★★
() автор топика
Ответ на: комментарий от lu4nik

Можно и deb-multimedia. Сам ffmpeg там годный. Но подключив deb-multimedia ты лишаешься плюшек дебиана. Я уже даже backports скрипя сердце добавляю. А с deb-multimedia коктейль вообще знатный получается.

Как пользоваться «%» смотри http://ffmpeg.org/ffmpeg-formats.html - ‘pattern_type’ - ‘sequence’. В твоем случае можно «%d.png»

glob тоже годится, он сортированный, ничего не перепутает. Сортировать обязан, в коде glob вызывается с сортировкой. Иначе оно ни кому не нужно будет. Но glob не везде есть. Это надо учитывать, если требуется переносимость.

fopen ★★
()
Ответ на: комментарий от fopen

О, отлично, что из deb-multimedia нормальный. Про репозитории — мне это не страшно, всё равно unstable, там в официальном репозитории тоже всякого хватает.

Пожалуй, я оставлю glob как есть. Переносимость не очень актуальна, код в обозримое время вряд ли будет широко использоваться.

В любом случае, спасибо за пояснения!

lu4nik ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.