Я собираюсь склеить изображения, записанные вместе с видео, а затем использовать звуковую дорожку из оригинального видео. Чтобы убедиться, что все работает как положено, я запускаю простой тест, который разбивает видео на изображения, а затем соединяет их обратно в исходное видео:

ffmpeg -i '.\Gangnam Style.mp4' -r 30 -s 640x480 -f image2 temp/foo-%07d.jpeg
ffmpeg -f image2 -i temp/foo-%07d.jpeg -r 30 -i '.\Gangnam Style.mp4' -map 0:0 -map 1 test.webm

В результирующем выходном файле test.webm звук больше не синхронизируется с видео. Кто-нибудь знает, почему это будет? Так как я использую изображения, сделанные из оригинального видео, я думаю, что звук должен выровняться идеально.

1 ответ1

3

Это должно работать просто отлично:

ffmpeg -r 30 -i temp/foo-%07d.jpeg -i '.\Gangnam Style.mp4' output.webm

Вот причина, по которой ваши изображения не были выровнены с вашим аудиопотоком.

ffmpeg -i '.\Gangnam Style.mp4' -r 30 -s 640x480 -f image2 temp/foo-%07d.jpeg

Здесь вы создаете изображения со скоростью 30 кадров в секунду (-f image2 изображение2 здесь не нужно).

ffmpeg -f image2 -i temp/foo-%07d.jpeg -r 30 -i '.\Gangnam Style.mp4' …

Здесь вы читаете изображения со скоростью 25 кадров в секунду и файл MP4 со скоростью 30 кадров в секунду. Причина этого в том, что опции, переданные до -i применяются только к этому вводу. Все параметры после -i предназначены для следующего ввода или являются вариантами вывода.

25 кадров в секунду по умолчанию для демультиплексора image2 (это опция -framerate , -r это ярлык). Обратите внимание, что -f image2 излишне в вашей команде. Я также вполне уверен, что опции -map могут быть опущены в вашем случае. Обычно ffmpeg правильно отображает один видео и один аудио источник на выход.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .