2017-06-23 105 views
1

我一直在嘗試在保留mp4音頻的同時將音頻mp3與視頻mp4混合。這與合作。FFMPEG在amix中設置音量

ffmpeg -y -i video.mp4 -i audio.mp3 
-filter_complex "[0:a][1:a]amix=inputs=2:duration=longest[out]" 
-map 0:v -map [out] output.mp4 

我現在試圖調整聲音文件(視頻0.5,音頻1)的音量作爲混音的一部分。

我一直在努力的事情像

ffmpeg -i 020c276b-face-4bb3-9169-e8969c1232ba.mp4 -i test.mp3 -filter_complex 
"[0:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.5[a1]; 
    [1:a]aformat=sample_fmts fltp:sample_rates=44100:channel_layouts=stereo,volume=0.8[a2]; 
    [a1][a2]amerge,pan=stereo:c0<c0+c2:c1<c1+c3[out]"-map 1:v -map [out] 
    -c:v copy -c:a aac -strict -2 output2.mp4` 

而且我得到的錯誤,如

[Parsed_aformat_2 @ 037f8620]錯誤分析樣本格式:sample_fmts fltp。 [AVFilterGraph @ 038be620]使用args的示例初始化過濾器'aformat' 時出錯 _fmts fltp:sample_rates = 44100:channel_layouts = stereo'初始化複雜過濾器時出錯。無效的參數

有誰知道如何讓代碼我上面的代碼是工作,也改變輸入的音量?

感謝

+0

謝謝我試過。它用於混合音頻,不會說視頻。出現此錯誤[AVFilterGraph @ 04f289a0]以下濾鏡無法選擇其格式: Parsed_amerge_2 請考慮在輸入或輸出附近插入(a)格式濾鏡。 配置複雜過濾器時出錯。 錯誤編號-5發生 – user5839

回答

2

如果要使用amix我會使用它這樣的建議:

ffmpeg -i video.mp4 -i audio.mp3 -filter_complex \ 
"[0:a]volume=0.8[a0]; \ 
[1:a]volume=0.8[a1]; \ 
[a0][a1]amix=inputs=2[a]" \ 
-map 0:v -map "[a]" -c:v copy -c:a aac -shortest output.mp4 ; 

對於amerge方法:

ffmpeg -i video.mp4 -i audio.mp3 -filter_complex \ 
"[0:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.8[a0]; \ 
[1:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.8[a1]; \ 
[a0][a1]amerge,pan=stereo|c0<c0+c2|c1<c1+c3 [a]" \ 
-map 0:v -map "[a]" -c:v copy -c:a aac -strict -2 -shortest output.mp4 ; 

東西每評論牢記從Mulvya

amerge用最短的輸入(總是)終止,amix 終止最長的輸入,在默認情況下。所以前者 總是截斷時,流是不同的長度。

-y對於測試目的而省略標記。

+0

*兩種方法的輸出結果應該是相同(或非常接近)的文件* - >否。 'amix'縮放每個輸入。請參閱https://stackoverflow.com/a/38714779/5726027 – Mulvya

+0

@Mulvya:我想你可能誤解了我的意思。在這個特定的例子中,這些方法基本上做了同樣的事情 - 結果文件可能是相同的;也許檢查哈希。如果有更多的投入和輟學使用,你肯定會看到一個區別,是的。 –

+0

即使有兩個輸入,如果其中一個更短,您也會得到不同的結果。 – Mulvya

0

這個答案工作https://superuser.com/questions/715254/the-following-filters-could-not-choose-their-formats-parsed-amerge-5-consider-i

> ffmpeg -i audio.mp3 -i video.mp4 -filter_complex 
> "[0:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.5[a1]; 
> [1:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.8[a2]; 
> [a1][a2]amerge,pan=stereo:c0<c0+c2:c1<c1+c3[out]" -map 1:v -map 
> "[out]" -c:v copy -c:a aac -strict -2 -shortest output.mp4 

芹苴它確實拋出似乎並沒有阻止一些錯誤它

幀= 93 fps的= 0.0 Q = - 1.0碼= 642kB時間= 00:00:03.78 bitra frame = 224 fps = 224 q = -1.0 size = 1595kB time = 00:00:09.28 bitra 解碼流#1時出錯:1:錯誤號-12 o ccurred 最後消息重複158次幀= 274 FPS = 182 Q = -1.0大小= 2382kB時間= 00:00:11.35 bitra錯誤而解碼流#1:1:錯誤 數-12發生

+1

我會對這些錯誤持懷疑態度......我將舉一個使用amix的例子。 –