2017-06-21 55 views
1

我試圖連接一些輸入,並在一次輸入時循環聲音。 我的輸入是:ffmpeg循環聲音的一部分視頻

  • intro.mp4
  • JPG套件中的 「圖片」 文件夾 - >圖片/%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的靜態

回答

0

你必須做兩個CONCAT步驟。音頻將在循環點退出。

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過濾器停在兩個流中較短的一個上。因此使用兩個連續過濾器。

+0

Thx爲您的答案。不幸的是,這個腳本會循環播放15次,並且會顯示最後一個jpg,直到15個循環完成。 – djib

+1

糟糕。文檔錯誤:'concat過濾器將使用每個段(最後一個段除外)中最長流的持續時間,並且如果需要,用較小的音頻填充較短的音頻流。 '。您將不得不分開使用中間音頻和視頻(使用-shortest),然後使用concat。 – Mulvya