Automation Lab 2024-03-05

SNS向け動画一括圧縮ツール

所要時間
8 MIN
必要環境
Python 3.x, FFmpeg
準備

ステップ 1 環境構築

動画編集者やSNSクリエイターにとって、重い動画ファイルを一つずつ変換するのは苦行です。今回はPythonを使って、フォルダ内の全動画を一括で圧縮するツールを作ります。

FFmpeg というツールをパソコンにインストールする必要があります。

  • Windows: choco install ffmpeg または公式サイトからダウンロード
  • Mac: brew install ffmpeg
01

ステップ 2 プログラム作成

実装コード

compress.py という名前で保存してください:

import subprocess
import os

def compress_video(input_path, output_path):
    # FFmpegコマンドを組み立て
    cmd = [
        'ffmpeg', '-i', input_path,
        '-vcodec', 'libx264', '-crf', '28',
        output_path
    ]
    subprocess.run(cmd)

# 入力フォルダを指定
folder = './input_videos'
for filename in os.listdir(folder):
    if filename.endswith(".mp4"):
        print(f"圧縮中: {filename}...")
        compress_video(os.path.join(folder, filename), os.path.join('./output', filename))

技術解説

CRF (Constant Rate Factor) という値で画質を調整しています。28 はスマホで見る分には十分綺麗で、かつファイルサイズを劇的に小さくできる魔法の数字です。