Android FFMpeg создать MP4 с растровыми изображениями (без JPG)

1134
farzd

в моем приложении для Android у меня есть ряд растровых изображений, генерируемых этим методом:

public Bitmap createFrame(int i) { Bitmap bitmap = Bitmap.createBitmap(800, 800, Bitmap.Config.ARGB_8888); . . return bitmap; } 

Теперь я хочу, как это для команды ffmpeg для преобразования всех растровых изображений в одно видео MP4:

for (int i=0; i<500; i++) { Bitmap frame = frameBitmap(i); String cmd = "ffmpeg -y -i <<all frameBitmap">> ... libx264 ... output.mp4" } 

Как использовать одну команду с серией растровых изображений?

1

1 ответ на вопрос

2
LordNeckbeard

Труба как вход

Если ваши изображения могут быть извлечены из того, что их генерирует, вы можете использовать протокол канала. Пример для чтения со стандартного ввода:

ffmpeg -framerate 10 -i pipe:0 -c:v libx264 -pix_fmt yuv420p -movflags +faststart output.mp4 

В качестве альтернативы вы можете использовать pipe:или просто -сделать то же самое.

См. Документацию к протоколу канала для получения дополнительной информации.

Сохраненные изображения в качестве входных данных

Если у вас есть ряд графических файлов, таких как img001.bmp, img002.bmpи т.д., вы можете использовать:

ffmpeg -framerate 30 -i img%03d.bmp -c:v libx264 -pix_fmt yuv420p -movflags +faststart output.mp4 

Или вы можете использовать шаблон glob, который поддерживает подстановочный знак:

ffmpeg -framerate 24 -pattern_type glob -i "*.bmp" -c:v libx264 -pix_fmt yuv420p -movflags +faststart output.mp4 

Смотрите подробности в документации к демультиплексору файла изображений .

Похожие вопросы