Есть ли способ объединить несколько видео и аудио потоков со смещением? - PullRequest
0 голосов
/ 16 апреля 2019

Мне очень жаль мой английский, это не мой родной язык. Моя проблема связана с объединением аудио и видео потоков в ffmpeg. Есть несколько аудио и видео потоков, которые были записаны в онлайн-чате. Все они имеют начальные и конечные моменты времени. Если пользователь выключил микро или камеру, то аудио и видео потоки не будут сопоставлены. Как я могу выровнять все потоки в одном временном ряду? Могу ли я добавить белый шум, чтобы отделить два видео? Аналогично со звуком.

1 Ответ

0 голосов
/ 16 апреля 2019

Использование поиска -ss до (-to или -t) и фильтра concat может объединять части нескольких входных файлов. Как то так:

# create three 10 second test input files with different sine tones
ffmpeg -f lavfi -i testsrc -f lavfi -i sine=400 -t 10 clip1.mp4
ffmpeg -f lavfi -i testsrc -f lavfi -i sine=600 -t 10 clip2.mp4
ffmpeg -f lavfi -i testsrc -f lavfi -i sine=800 -t 10 clip3.mp4
# create a separator file
ffmpeg -f lavfi -i nullsrc -f lavfi -i anoisesrc -t 1 noise.mp4

# concatenate parts of the clips with a separator in between
# -ss is seek to timestamp
# -to is stop at timestamp
# use concat filer to appends all the input files streams in the order 
# they are passed as input arguments
ffmpeg \
    -ss 00:01 -to 00:03 -i clip1.mp4 \
    -i noise.mp4 \
    -ss 00:04 -to 00:06 -i clip2.mp4 \
    -i noise.mp4 \
    -ss 00:07 -to 00:09 -i clip3.mp4 \
    -i noise.mp4 \
    -filter_complex \
    '[0:v][0:a] [1:v][1:a] [2:v][2:a] [3:v][3:a] [4:v][4:a]concat=n=5:v=1:a=1[v][a]' \
    -map '[v]' -map '[a]' \
    output.mp4

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...