LINUX.ORG.RU

ffmpeg (avconv) объединить видео с аудио

 ,


0

1

Нужно объединить видеодорожку с mp3-файлом.
Но весь фокус в том, чтобы полученный результат был по продолжительности равен аудиофайлу, а видео дублировалось столько раз сколько нужно, чтобы получить нужный по продолжительности результат.

ffmpeg -i input.mp3 -acodec copy -i input.mp4 -vcodec copy output.mp4

в результате получается, что когда видео заканчивается, аудио продолжает воспроизводиться а отображается последний кадр видео.
Как сделать так чтобы видео повторялось по кругу, пока не закончится аудио?


Не проще ли в видеоредакторе нелинейного монтажа сделать?

Ну а если принципиален ffmpeg, то наверное на вход подать несколько заранее подготовленных видеороликов (или несколько одного и того же файла) нужной общей длины, равной продолжительности звуковой дорожки. Несколько ключей -i допустипо указывать.

Есть ещё опция -loop, но если я правильно понял man, оно только для картинок на входе.

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

А можно ли при помощи ffmpeg дублировать видеофайл заданное количество раз, получая в результате видео с повторяющимся несколько раз эпизодом?

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

А можно ли при помощи ffmpeg дублировать видеофайл заданное количество раз, получая в результате видео с повторяющимся несколько раз эпизодом?

Не знаю, в мануале не нашёл ничего по ключевым словам duplicate и loop. Есть -loop для зацикливания, но он для создания видео из картинок.

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

Видео из картинок меня тоже устроит.

Нашел примеры тут: superuser.com/questions/98980/creating-video-with-audio-and-still-image-for-youtube/533524

пробовал

ffmpeg -loop 1 -shortest -r 0.1 -i audio.mp3 -i image.jpg output.avi

но получаю:

'Option loop not found'

В чем может быть проблема?

h0lder
() автор топика
Ответ на: комментарий от h0lder
       -loop_input
           Loop over the input stream. Currently it works only for image streams. This option is used for
           automatic FFserver testing.  This option is deprecated, use -loop 1.

       -loop_output number_of_times
           Repeatedly loop output for formats that support looping such as animated GIF (0 will loop the
           output infinitely).  This option is deprecated, use -loop.

Старый ffmpeg у тебя видимо. Попробуй -loop_input вместо -loop.

firestarter ★★★☆
()
ffmpeg -loop 1 -r 2 -i image.jpg -i audio.mp3 -c:v libx264 -preset medium -tune stillimage -crf 18 -c:a copy -shortest output.mkv
Wolfram
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.