FFMPEG Image2pipe Создание разбитого видео

Я пытаюсь написать программу, которая передает данные PNG в FFMPEG, чтобы отобразить их в видео. Видео выход программы не работал, поэтому я использую скриншоты PNG в качестве отладочного ввода.

Снимки экрана - это действительные файлы PNG, которые обычно открываются в любом средстве просмотра изображений. Однако, когда я запускаю команду:

cat 2017*.png | ./ffmpeg -f image2pipe -r 1 -vcodec png -i - -vcodec libx264 out.mp4

Я получаю видео с 1 секундой видео для каждого скриншота, начиная с 2017 года в каталоге. Тем не менее, видео полностью черное и заканчивается сразу после начала воспроизведения видео. (Не одна секунда или кадр для каждого кадра).

Это на MSYS на Windows, используя версию FFMPEG для Windows, если это имеет значение.

Что я могу изменить, чтобы он на самом деле делал видео из канала? Мое первое предположение состоит в том, что это может быть связано либо с неправильными аргументами, либо с отсутствием соответствующего кодека.

1 ответ

Решение
cat 2017*.png | ./ffmpeg -f image2pipe -framerate 1 -i - -c:v libx264 -vf format=yuv420p -r 25 out.mp4
  • Использовать -framerate опция ввода вместо -r для демпсера image2pipe.

  • Многие игроки испытывают проблемы с такой низкой частотой кадров MP4. Добавить -r опция вывода, чтобы дать ему более нормальную скорость вывода. ffmpeg будет дублировать кадры для соответствия, но все равно будет выглядеть так, как будто это 1 кадр / с.

  • добавлять -vf format=yuv420p (или псевдоним -pix_fmt yuv420p) для вывода используйте широко совместимый формат пикселей.

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