
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 が最大) に下げます。どのように動作するのでしょうか? ビデオ ストリーム (フィルター null) はフィルター グラフに含めるだけで、何もしません。次に、オーディオ ストリームから最初の 90 秒をトリミングし、次にオーディオ ストリームから 30 秒 (90-120) をトリミングして、音量を 0.1 に下げます。次に、最後の 2 つのオーディオ ストリームを連結して結合します。次に、残りのオーディオ ストリームを再度トリミングして、再度結合します。
それが役に立てば幸い。