ffmpeg循环声音在视频的一部分

时间:2017-06-21 14:54:37

标签: ffmpeg

我正在尝试连接几个输入,并在一次输入时循环声音。 我的意见是:

  • intro.mp4
  • jpg套件位于“pics”文件夹中 - >图片/%04d.jpg
  • loop.mp3
  • outro.mp4

我想要实现的目标:

video schema

到目前为止:

ffmpeg -y -i intro.mp4 -r 25 -i "pics/%04d.jpg" -i outro.mp4 -i loop.mp3 -filter_complex
"[0:v:0] [0:a:0] [1:v:0] [3:a:0] [2:v:0] [2:a:0] concat=n=3:v=1:a=1 [v] [a]" -map "[v]"
-map "[a]" -c:v libx264 -pix_fmt yuv420p -profile:v baseline -level 3.0 -crf 20 -r 25
-movflags +faststart -c:a aac -b:a 192k output.mp4

但是这不会循环“loop.wav”。我在“-i loop.mp3”之前试过“-loop 1”,但这给了我这个错误:“找不到选项循环。”

ffmpeg版本:20170620-ae6f6d4-win64-static

1 个答案:

答案 0 :(得分:0)

你必须在两个连续的步骤中完成它。音频将在循环点丢失。

ffmpeg -y -i intro.mp4 -i "pics/%04d.jpg" -i outro.mp4 -f lavfi -i amovie=loop.mp3:loop=15,asetpts=N/SR/TB
 -filter_complex
    "[0:v:0] [0:a:0] [1:v:0] [3:a:0] concat=n=2:v=1:a=1 [v12] [a12];
     [v12][a12][2:v:0] [2:a:0]concat=n=2:v=1:a=1 [v] [a]"
 -map "[v]" -map "[a]" -r 25 -c:v libx264 -pix_fmt yuv420p -profile:v baseline -level 3.0
 -crf 20 -movflags +faststart -c:a aac -b:a 192k output.mp4

当连接最后一个段时,concat过滤器在两个流中较短的一个停止。因此使用两个concat过滤器。