2016-09-12 3 views
1

У меня есть следующая команда, работающая в ffmpeg, которая добавляет 1 секунду черного кадра к началу видео. Тем не менее, я теряю звук из исходного видео в выходном видео. Как я могу настроить команду, чтобы убедиться, что исходный звук остается с окончательным выходом, или, еще лучше, вначале есть 1 секунда «чистого» звука, чтобы он соответствовал новому выходному видео.FFmpeg concatenation, no Audio in Final Output

ffmpeg -i originalvideo -f lavfi -i color=c=black:s=1920x1080:r=25:sar=1/1 -filter_complex "[0:v] setpts=PTS-STARTPTS [main]; [1:v] trim=end=1,setpts=PTS-STARTPTS [pre]; [pre][main] concat=n=2:v=1:a=0 [out]" -map "[out]" finaloutputvideo.mp4 

ответ

0

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

ffmpeg \ 
-i originalvideo \ 
-f lavfi -i color=c=black:s=1920x1080:r=25:sar=1/1:d=1 \ 
-t 1 -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=44100 \ 
-filter_complex \ 
"[0:v]setpts=PTS-STARTPTS[mainv]; \ 
[0:a]asetpts=PTS-STARTPTS[maina]; \ 
[1:v][2:a][mainv][maina]concat=n=2:v=1:a=1[v][a]" \ 
-map "[v]" -map "[a]" -movflags +faststart output.mp4 
  • Вы можете устранить (а) setpts фильтров для цвета и anullsrc исходных фильтров, поскольку их временные метки начинаются с 0.

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

  • Значение для длины anullsrc должно быть меньше или равно длительности черного видео: фильтр concat автоматически отключит остальное с тишиной.

  • С помощью anullsrc убедитесь, что вы соответствуете правильному расположению каналов и частоте дискретизации основного видео; иначе concat может автоматически выбрать «общий» макет и скорость, которая может быть не такой, какой вы хотите.