動画ファイルを分割→圧縮→結合してファイルサイズを縮小するツール
- 動画ファイルの圧縮(H.264エンコード)
- 解像度のスケーリング
- 設定ファイルによるパラメータ指定
- バッチ処理(複数ファイル一括処理)
- 圧縮率の表示
- 動画を数秒単位のセグメントに分割
- 各セグメントを個別に圧縮(メモリ効率向上)
- 圧縮されたセグメントを結合
- 一時ファイルを自動削除
- Python 3.8+
- ffmpeg
git clone https://github.com/sohei-t/python-video-tools.git
cd python-video-tools/video-compressor# カレントディレクトリの動画を圧縮
python video_compressor.py
# CRF値を指定(大きいほど圧縮率高)
python video_compressor.py --crf 28
# 解像度を50%に縮小
python video_compressor.py --scale 0.5# 特定のファイルを圧縮
python video_compressor.py -i video.mp4 -o ./output
# 複数ファイルを指定
python video_compressor.py -i video1.mp4 video2.mp4# 高品質設定(ファイルサイズ大)
python video_compressor.py --crf 20 --preset slow
# 高圧縮設定(ファイルサイズ小)
python video_compressor.py --crf 32 --scale 0.5
# 処理後に元ファイルをdoneフォルダに移動
python video_compressor.py --move-original| オプション | 説明 | デフォルト |
|---|---|---|
-i, --input |
入力動画ファイル | カレントディレクトリの動画 |
-o, --output-dir |
出力ディレクトリ | ./comp |
--crf |
CRF値 (0-51) | 28 |
--scale |
解像度スケール | なし(元のまま) |
--preset |
エンコードプリセット | fast |
--segment-seconds |
分割セグメント秒数 | 5 |
--config |
設定ファイルパス | config.txt |
--move-original |
元ファイルをdoneに移動 | 無効 |
--ffmpeg |
ffmpegのパス | 自動検出 |
| CRF | 品質 | 用途 |
|---|---|---|
| 18-23 | 高品質 | アーカイブ、編集用素材 |
| 24-28 | 標準品質 | 一般的な視聴用 |
| 29-35 | 低品質 | プレビュー、容量重視 |
| プリセット | 速度 | 圧縮効率 |
|---|---|---|
| ultrafast | 最速 | 低 |
| fast | 速い | 標準 |
| medium | 標準 | 良好 |
| slow | 遅い | 高 |
| veryslow | 最遅 | 最高 |
config.txt で設定を保存できます。
[Settings]
resolution_scale = 0.5
crf = 28入力: .avi, .asf, .mov, .mpg, .wmv, .ogm, .mp4, .mkv
出力: .mp4 (H.264)
MIT License