使い方
事前準備
FFmpeg 本体が必要です。ffmpeg-python は FFmpeg のラッパーであり、
FFmpeg 実行ファイルを同梱していないため、別途インストールして PATH を
通してください。
# Windows 11
winget install astral-sh.uv Gyan.FFmpeg
# 依存関係のインストール
uv sync
CLI
python -m video_converter <サブコマンド> の形式で実行します。
インストール後は video-converter <サブコマンド> でも起動できます。
引数の解析には Fire を利用しているため、--help で各コマンドの
引数を確認できます。
python -m video_converter --help
出力先 (output_path) はいずれのコマンドでも省略可能です。省略した場合は
入力ファイルと同じディレクトリに、下表の規則で命名されたファイルが作られます。
サブコマンド |
処理 |
主な引数 |
既定の出力名 |
|---|---|---|---|
|
動画を再エンコードして圧縮 |
|
|
|
|
|
|
|
音声を |
|
|
|
音声トラックを除去 |
|
|
|
GUI を起動 |
なし |
-- |
実行例:
# 動画を圧縮する (crf は小さいほど高品質・大容量。既定値は 23)
python -m video_converter compress input.mp4 --crf 23
# .mov を .mp4 へ変換する
python -m video_converter to_mp4 input.mov
# 出力先を明示する
python -m video_converter audio_extract input.mp4 --output_path C:\tmp\sound.mp3
# 音声トラックを取り除く
python -m video_converter audio_eliminate input.mp4
入力ファイルが存在しない場合は FileNotFoundError が送出されます。
変換中は tqdm による進捗バーが表示されます。
注釈
出力先のファイルが既に存在する場合は、確認せずに上書きします。
注釈
出力先が入力と同じファイルを指す場合は ValueError で停止します。
to_mp4 input.mp4 のように入力と同じ拡張子で output_path を
省略した場合が該当します。別の出力先を明示してください。
FFmpeg が異常終了した場合は ffmpeg.Error が、進捗用の TCP 接続が
制限時間内に行われなかった場合は TimeoutError が送出されます。
GUI
python -m video_converter gui
ウィンドウの操作手順は次のとおりです。
ファイルを指定する。「ファイルを選択」ボタンからダイアログを開くか、 動画ファイルをウィンドウ (または入力欄) へ直接ドラッグ&ドロップします。
変換方式を選ぶ。 ラジオボタンから「MP4 へ変換」「MP3 へ変換」 「音声除去」「動画圧縮」のいずれかを選択します。既定は「MP4 へ変換」です。
「変換」ボタンを押す。 進捗率・プログレスバー・残り時間が更新されます。
convert_and_send()が出力する変換対象パスと 変換方式は、ウィンドウ下部のコンソール領域へ表示されます。
実行ファイルの作成
PyInstaller で単一実行ファイルにまとめられます。PyInstaller は任意の依存
(build extra) のため、先にインストールしてください。
uv sync --extra build
uv run pyinstaller .\src\video_converter\gui.py --onefile --noconsole