
我正在嘗試使用 ffmpeg.exe 在特定時間間隔內降低音量。假設我有一個 5 分鐘長的視頻,我想在 00:01:30 到 00:02:00 之間降低音量。我讀到我們可以同時使用不同的參數,但我不明白。
任何幫助將不勝感激。
答案1
您可以使用過濾器複合體來做到這一點:
ffmpeg -i in.mp4 -filter_complex "[0:v]null[out2];[0:a]atrim=duration=90[a];\
[0:a]atrim=start=90:duration=30,volume=0.1,asetpts=PTS-STARTPTS[b];[a][b]concat=v=0:a=1[c];\
[0:a]atrim=start=120,asetpts=PTS-STARTPTS[d];[c][d]concat=v=0:a=1[out1]" \
-acodec mp2 -map [out1] -map [out2] out.mp4
它將 90 秒到 120 秒的片段的音量降低到 0.1(1.0 已滿)。怎麼運作的?它對視訊串流(過濾器為空)不執行任何操作,只是將其包含在過濾器圖中。然後從音訊串流中修剪前 90 秒,然後從音訊串流中修剪 30 秒 (90-120),並將音量降低至 0.1。然後使用 concat 將最後 2 個音訊串流組合起來。然後再次修剪其餘音訊串流並再次組合它。
希望能幫助你。