質問: 現状、下記のようなシェルスクリプトを実行していますが、6分ぐらいの動画からflacの音声ファイルを作成するのにとても時間がかかります。本当はpythonのコード上で実行したいです。 ffmpegのラッパーpythonライブリを使うか、subprocess.callでCommandを呼び実行するかの二択似なりと思っています。 しかし、どうすれば早く複数の動画ファイルを一気に音声ファイルに変換するかで悩んでいます。 threadingかマルチプロセスで一気に複数のファイルへ変換させて時間を短縮できるか?みたいなざっくりとした考えは思い浮かぶもののあっているか、適切な方法かどうかの判断に困っています。 なにか、お気づきの点ありましたらご教示頂けませんでしょうか? ``` DIR=/xxx/xxxx/xxxx for file in `\find ${DIR} -type f -name *.mp4`; do outfile=`echo $file | sed -e 's/mp4/flac/'` echo $outfile ffmpeg -y -i $file -ac 1 $outfile done ```
回答: ffmpeg-pythonを使ってmultiprocessingでシェルスクリプトを実行し、バッチで動かす。 それか、subprocessでシステムコールして、並列処理をさせる。