2012-02-01 4 views
1

Я генерирую кучу видео, зацикливая входы .PNG вместе с аудио .AMR.Аудиопоток короче видеопотока

ffmpeg -loop 1 -i slide001.png -i slide001.amr -vcodec rawvideo -acodec pcm_s16le -t 5 slide001.avi 

В конце концов я присоединяюсь к .AVI, используя Mencoder. У меня не было большого успеха, пытаясь присоединиться к ним с FFmpeg.

Похоже, что фактическая продолжительность .AMR короче 5 секунд, указанных мной, например, когда придет время присоединиться к .AVI, аудиопоток будет не синхронизирован (впереди видео).

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

Любые идеи?

Спасибо.

ответ

1

Я в конечном итоге решить это с помощью звукового процессора Сокс в дополнение к FFmpeg: http://sox.sourceforge.net/Main/HomePage

Команда, которую я использую

sox slide001.wav slide001padded.wav pad 0 3 

выше добавляет 3s молчания до конца аудио. Когда в создании видео применяется команда длительности «-t 5» ffmpeg, она отключает дополнительное молчание, чтобы потоки видео и аудио были одинаковой длины.

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