FFmpegでフォルダ内のMP4ファイルの一括圧縮するバッチ処理組んでみた

皆さんこんにちは。松戸市のホームページ制作事務所タドワークスのたーさんです。
今回はFFmpegというコマンドラインソフトウェアを使用して、Windowsの任意のフォルダ内の動画ファイルを一括圧縮して新規フォルダに格納するバッチ処理を組んでみました。シンプルですが便利です。
FFmpegってなに?
FFmpeg は、動画・音声の変換、編集、録画、ストリーミングなどを行うための、非常に強力なオープンソースのコマンドラインツールです。多くの動画編集ソフトや配信ソフトの裏側でも使われています。
主な特徴
1.対応フォーマットが非常に多い
MP4・MOV・AVI・WebM・MP3 など、ほぼすべての動画/音声形式を扱えます。
2.高度な変換機能
- ・解像度変更(例:1080p → 720p)
- ・ビットレート調整
- ・エンコード方式の変更(例:H.264 → H.265)
3.カット・結合などの編集も可能
ffmpeg -ss 00:00:10 -to 00:00:20 -i input.mp4 -c copy out.mp4
4.無劣化コピーも可能
-c copy を使えば、再エンコードせず高速に処理できます。
5.自動化・バッチ処理向
コマンドラインで動くので、フォルダ内の動画を一括変換などが得意。
こんな用途で使われます
- ・動画を MP4 に変換する
- ・動画サイズを小さくする(圧縮)
- ・動画から音声だけ抽出
- ・サムネイル画像を作る
- ・ライブ配信用の HLS/RTMP の変換
- ・複数動画を結合する
導入方法(Windows)
① FFmpeg の ZIP をダウンロード
公式の安定配布サイト:https://www.gyan.dev/ffmpeg/builds/
「ffmpeg-release-full.zip」をダウンロード
② ZIP を展開
例:C:\ffmpeg\ に解凍(フォルダ内に bin\ffmpeg.exe があればOK)
③ パス(環境変数)を通す
検索で「環境変数」を開く
「システム環境変数」→「Path」→「編集」
C:\ffmpeg\bin を追加
④ 動作確認
コマンドプロンプトで
ffmpeg -version
と入力してバージョン表示が出れば完了。
バッチプログラム
下記を「.bat」の拡張子で保存。あとは変換したい動画のあるフォルダにこのファイルを置いてダブルクリックするだけです。
起動後しばらく経過すると「movies」フォルダ内に圧縮された動画ファイルが生成されます。
#保存ディレクトリ生成
if not exist "movies" mkdir "movies"
#動画圧縮処理
@echo off
REM FFmpegのパスを指定(環境変数PATHに登録済みなら不要)
SET FFmpeg=ffmpeg
REM フォルダ内のMP4を1本ずつ圧縮
for %%a in ("*.mp4") do (
echo 処理中: %%a
"%FFmpeg%" -i "%%a" -vcodec libx264 -preset slow -crf 30 -acodec aac -b:a 96k "movies/%%~na.mp4"
)




