【Python】ショート動画などに最適!動画を一括倍速化するPythonコード

本ブログはアフィリエイト広告を利用しています

WEB / アプリ
WEB / アプリ
この記事は約5分で読めます。

とっちゃん@nyanco! です。

肉玉にゃんこ

ショート動画で複数の動画を倍速にしたいんだけど1つ1つ面倒ですにゃ~

動画を何本もまとめて倍速化したい場面、意外とありますよね。

  • SNS投稿用に倍速動画をまとめて作りたい
  • フォルダに放り込んだ動画を一気に処理したい
  • 1本ずつFFmpegコマンドを打つのは面倒すぎる

そんな時に便利なのが、Python と FFmpeg を使った 動画一括自動倍速スクリプト
この記事では、実際に運用している video_speedbatch.py の仕組みと使い方をまとめました。


スポンサーリンク

今回できること

このスクリプトを使うと、

  • .py と同じディレクトリにある動画を対象に
  • 一括で 2倍速化(音声も同期)
  • output_videos フォルダに
  • ファイル名末尾に _2x を付けて書き出し

という処理が自動で行われます。


必要なもの

① Python(3.x)

macOS / Windows どちらでもOK。

② FFmpeg

速度変更処理を担当。
インストールして PATH が通っていればOK。

macOS なら:

brew install ffmpeg

Windows なら公式サイトから入れて PATH を追加。


ディレクトリ構成

記事で紹介するスクリプトは、動画ファイルと同じ階層に置いて使います。

/任意のフォルダ
├── video_speedbatch.py
├── movie1.mp4
├── movie2.mov
└── …(対象となる動画)

実行すると、以下のように output_videos が自動生成されます。

/任意のフォルダ
├── video_speedbatch.py
├── movie1.mp4
├── movie2.mov
└── output_videos/
       ├── movie1_2x.mp4
       └── movie2_2x.mov

実際のコード(コピペOK)

import os
import subprocess

# 実行中の .py の場所を基準にする
base = os.path.dirname(os.path.abspath(__file__))
input_folder = base  # .py と同じ場所の動画を対象
output_folder = os.path.join(base, "output_videos")

speed = 2.0  # 2倍速
suffix = "_2x"  # 末尾に付与する文字

os.makedirs(output_folder, exist_ok=True)

for filename in os.listdir(input_folder):
    if filename.lower().endswith((".mp4", ".mov", ".mkv", ".avi")):
        input_path = os.path.join(input_folder, filename)

        # ファイル名加工
        name, ext = os.path.splitext(filename)
        output_filename = f"{name}{suffix}{ext}"
        output_path = os.path.join(output_folder, output_filename)

        cmd = [
            "ffmpeg",
            "-i", input_path,
            "-filter_complex", f"[0:v]setpts=PTS/{speed}[v];[0:a]atempo={speed}[a]",
            "-map", "[v]",
            "-map", "[a]",
            "-preset", "veryfast",
            output_path
        ]

        print(f"Processing: {filename} → {output_filename}")
        subprocess.run(cmd)

print("DONE!")

実行方法

ターミナル(またはコマンドプロンプト)で、スクリプトがあるフォルダへ移動して:

python3 video_speedbatch.py

あとは自動的に動画を検出して2倍速で書き出してくれます。


カスタム例

用途によってカスタムも簡単です。


4倍速にしたい

speed = 4.0

音声は atempo が最大 2.0 なので4倍速にしたい場合は2回チェーンする必要あり。


無音化したい

cmd = [
    "ffmpeg",
    "-i", input_path,
    "-an",
    "-filter:v", f"setpts=PTS/{speed}",
    output_path
]

GPU(NVIDIA)で高速化したい

h264_nvenc に変更するだけで爆速化できます(Windows向け)。


まとめ

video_speedbatch.py は、

  • 動画を同一フォルダにまとめて
  • ターミナルで 1 回実行するだけで
  • 複数動画を自動 2 倍速化して _2x の名前で書き出す

というシンプルかつ強力なスクリプトです。

特に SNS クリエイターや YouTube ショート動画作成者にとっては圧倒的な手間削減 になります。

今回は以上となります。
最後まで読んでいただきましてありがとうございました!
それではまた〜✧٩(ˊωˋ*)و✧

コメント