概要
find . -name "*.wav" -type f -maxdepth 3 | while read -r waveFile do oggFile=${waveFile%.wav}.ogg ffmpeg -nostdin -y -i "${waveFile}" -vn -ac 2 -ar 44100 -ab 128k -acodec libvorbis -f ogg "${oggFile}" done
ffmpeg を使用して複数の音声ファイルを処理する while に時間がかかったため
並列化するために
brew install parallel
上記のコマンドで GNU Parallel をインストールして
find . -name "*.wav" -type f -maxdepth 3 | while read -r waveFile do oggFile=${waveFile%.wav}.ogg ffmpeg -nostdin -y -i "${waveFile}" -vn -ac 2 -ar 44100 -ab 128k -acodec libvorbis -f ogg "${oggFile}" & done | parallel -j4
ffmpeg の処理の末尾に &
をつけて
done
を done | parallel -j4
に変えて並列化した
並列化したところ 12 秒かかっていた処理が 1 秒で終わるようになった