【问题标题】:ffmpeg loop sound in part of video部分视频中的ffmpeg循环声音
【发布时间】:2017-06-21 14:54:37
【问题描述】:

我正在尝试连接几个输入,并在一个输入期间循环播放声音。 我的输入是:

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

我想要达到的目标:

到目前为止我有什么:

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

【问题讨论】:

    标签: ffmpeg


    【解决方案1】:

    您必须分两个连续步骤来完成。并且音频会在循环点退出。

    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 过滤器。

    【讨论】:

    • 感谢您的回答。不幸的是,这个脚本会循环播放 15 次声音,并会显示最后一张 jpg 文件,直到 15 次循环完成。
    • 糟糕。文档错误:The concat filter will use the duration of the longest stream in each segment (except the last one), and if necessary pad shorter audio streams with silence. 。您必须分别混合中间音频和视频(使用 -shortest),然后再连接。
    猜你喜欢
    • 2018-06-01
    • 2016-03-05
    • 2017-12-19
    • 2021-03-10
    • 2016-01-04
    • 1970-01-01
    • 2011-11-07
    • 2019-06-01
    • 2016-07-06
    相关资源
    最近更新 更多