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
) для вывода используйте широко совместимый формат пикселей.