h.265エンコードができる時代
ついにh.265エンコード速度が等速を超える時代になった。(Ryzen3900X)
ただffmpegにおいてh.265系はCPUを100%使用しないようで、効率よくエンコードする為には複数ファイルを同時にエンコードするのが良いようだ。
今回の目的は、フォルダ内の動画をCPU使用率90%近辺を維持するように複数エンコードするツールを作る。(Windows専用)
pythonでcmdを操作したい
恐らく一番正攻法はPowershellを使うこと。でもやっぱりpythonで書きたい。pythonは色々楽だから。
・成果物はこちら(https://github.com/orenodinner/ffmpeg_dir_conv)
pythonでcmdを実行するには subprocess.Popen()を使用する方法がある。
ただこれだと複数のcmdプロセスを扱う際、Winエラーが出てうまくいかなかった。
少々面倒だけど、pythonで動的に.cmdファイルを作成しそのまま subprocess.Popen()で開きエラーを回避した。
cmdウィンドウも複数独立して表示されるため状況確認もしやすくなり一石二鳥。
CPU監視はpsutil.cpu_percent()を使用。CPU使用率が80%以下になったらエンコードを一つ開始するようにした。
改善したいところ
エンコード終了時に元ファイル削除が上手くいかないときがある。原因調査中。