動画の画質を劣化させずに音声のボリュームだけを変更します。
以前 chatGPT に教えてもらったコードです。
for ext in mkv mp4 webm MP4 MOV; do for file in before/*."$ext"; do [ -f "$file" ] || continue basename=$(basename "$file") fname="${basename%.*}" # 拡張子除去 ffmpeg -i $file -af "volume=0.5" ./after/$fname.mp4 donedonebefore フォルダにあるいろいろな形式の動画を、ffmpeg でエンコードして after フォルダに mp4 で保存します。
このシェルスクリプトでは音声のボリュームを半分にしています。
これは約 7 倍速なので 120 分ほどの動画を処理するのに十数分かかっていました。とても時間がかかります。
でも、動画の画質を変更せずに音声だけを変更できるのか chatGPT に質問したところ、一瞬で作ってくれました。
for ext in mkv mp4 webm MP4 MOV; do for file in before/*."$ext"; do [ -f "$file" ] || continue basename=$(basename "$file") fname="${basename%.*}" # 拡張子除去 ffmpeg -i "$file" -c:v copy -af "volume=0.5" -c:a aac "./after/$fname.mp4" donedoneこれだと約 70 倍速なので同じファイルを処理する時間は 1 分半くらいです。以前のコードの 10 倍の速度です。
chatGPT はとても優秀ですが、最初からこっちの方を提示してくれればよかったのに。
それにしても ffmpeg はとても便利です。
機能が多すぎてしかも難解なのでとても憶えられませんが、調べれば誰かが必ずコードを提示してくれています。
これまでは自分でコードを検索していたのですが、chatGPT が登場した現在では検索するまでもなくほぼ一瞬で解決できます。
確かに AI の登場は革命的だと思います。