Создание видео из изображений и аудио

У меня есть список изображений: 1.png, 2.png... и список аудиофайлов 1.mp3, 2.mp3...

Я хотел бы создать видеофайл, в котором аудиоклипы объединены, и каждое изображение отображается поверх соответствующего аудиоклипа: example image

Думайте об изображениях как о слайдах в слайд-шоу, а о звуке — как о повествовании для слайда.

Существуют ли какие-либо рамки, которые позволили бы мне это сделать? Я хотел бы использовать FFmpeg CLI или что-то более высокое, если это возможно.


person user2248702    schedule 24.03.2019    source источник
comment
ffmpeg в итерации на входах с последующей конкатенацией может сделать это. Все n.png и n.mp3 являются входными данными для создания отдельных выходных данных (1,2,3.mp4). Затем выполняется этап объединения, чтобы объединить эти 3 файла mp4. есть 2 отдельных раздела документов ffmpeg, описывающих, как комбинировать ввод статической фотографии со звуком и как объединять видеофайлы.   -  person Robert Rowntree    schedule 24.03.2019


Ответы (1)


Ленивый метод заключается в том, чтобы каждый сегмент объединялся с демультиплексором concat:

ffmpeg -loop 1 -i 1.png -i 1.mp3 -c:v libx264 -preset stillimage -vf format=yuv420p -c:a aac -shortest 1.mp4
ffmpeg -loop 1 -i 2.png -i 2.mp3 -c:v libx264 -preset stillimage -vf format=yuv420p -c:a aac -shortest 2.mp4
ffmpeg -loop 1 -i 2.png -i 2.mp3 -c:v libx264 -preset stillimage -vf format=yuv420p -c:a aac -shortest 2.mp4
ffmpeg -f concat -i input.txt -c copy -movflags +faststart output.mp4

Это предполагает, что файлы изображений имеют одинаковую ширину и высоту, а аудиофайлы имеют одинаковую структуру каналов и частоту дискретизации.

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

person llogan    schedule 25.03.2019