LoginSignup
1
1

More than 3 years have passed since last update.

pythonでffmpegを.cmd経由で動的に使用する

Last updated at Posted at 2019-08-16

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%以下になったらエンコードを一つ開始するようにした。

改善したいところ

エンコード終了時に元ファイル削除が上手くいかないときがある。原因調査中。

GitHub(https://github.com/orenodinner/ffmpeg_dir_conv)

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1