【暫定版】FFmpegとWindowsバッチを使って、複数の動画を一括エンコードするプログラミングを作成する

スポンサーリンク
スポンサーリンク

どうも、じゃぶじゃぶ(@jbjbgame)です。

前回、FFmpegの豊富な出力オプションを試して、動画の圧縮率を調べてみました。

FFmpegの出力オプションを検証して、動画の圧縮率を調べてみた
どうも、じゃぶじゃぶ(@jbjbgame)です。前回、FFmpegをインストールして簡単に使用できるところまで行いました。今回はFFmpegの豊富なオプションをいろいろ検証してみたいと思います。 FFmpegの使い方基本的な使...

今回は、本来やりたかった複数動画の一括エンコードをするために、Windowsバッチでプログラムを組みたいと思います。( ◜ᴗ◝)و

 

 

スポンサーリンク

一括エンコードバッチ

サンプルソース

バッチはWindows10で動かすのでWindowsバッチ(*.bat)で作成します。

バッチのコンセプトとしては以下の通りです。

  • コマンドを打たなくてもFFmpegが使用できる
    • batファイルをクリックして使用
    • バッチ処理の中でFFmpegを実行
  • 複数の動画をバッチ一回の起動でエンコードする
    • 特定のフォルダを指定してフォルダに含まれる動画を一括圧縮

 

Windowsバッチを今まで使ったことが無いため、粛々と勉強しながら試行錯誤です。
( ..)φメモメモ

取り合えず暫定版として、上記の必要最小限の機能を備えたバッチを作成しました!!
( ・ ◡・´)

 

ffmpeg-batch-encoding1.bat

 

使い方 & 検証

どれだけ需要があるか分からないが、作成したバッチの使用手順をまとめておきます。

ある程度の動作検証をしていますが、すべてのバグをつぶしているわけでないので、使用する場合は自己責任でお願いします。m(_  _)m

0.準備

まずは使用する前の準備をします。

今回のバッチはFFmpegで動画の圧縮をすることを前提に作成しているので、まずはFFmpegをインストールしてください。

FFmpegのインストール手順と使い方(Windows版)
どうも、じゃぶじゃぶ(@jbjbgame)です。最近、ブログのキャプチャ用に撮り貯めたプレイ動画が増えてきて、HDDがもうパンパンです。三 ;><)⁰動画編集ソフトは持っていますが、一つ一つ読み込ませてエンコードをかけるのでも一苦労で...

FFmpegのインストローラーをダウンロード後、インストールをしてから環境変数の設定を行ってください。

 

1.バッチファイルの作成

上記のサンプルソースからバッチファイルを作成してください。

Windowsバッチの作成にはメモなどのテキストエディアを起ち上げて、サンプルソースをコピー&ペーストして保存すれば完了です。

ただし以下の点に注意してください。

・サンプルソースのコピーの方法

上記ソースをコピーする際は、左上の「<>」マークをクリックしてからコピーしてください。

ソースコードのハイライトが消えて黒文字になるので、そうなったコードをコピーするようにしてください。これをしないとコードのスペースが消えてしまうので注意してください。

・拡張子は.bat

ファイルの拡張子は「.bat」で作成してください。ファイル名はなんでも構いません。

今回自分は「ffmpeg-batch-encoding1.bat」という名前を付けました。

 

2.作業用のフォルダを作成してバッチファイル配置

エンコードする作業フォルダを決めます。今回は「D:\ffmpeg\work」というフォルダを作成して、そのフォルダ上でエンコードすることにしました。

[補足]

バッチファイルをメモ帳で開いて10行目をみてください。

「set INPUT_FOLDER=」の後にフォルダのパスを指定するとそのフォルダが作業フォルダとなり、そのフォルダに含まれる動画ファイルがエンコード対象となります

例えば「set INPUT_FOLDER=C:\ffmpeg\」と記載して保存すると「C:\ffmpeg\」の中にある動画ファイルをエンコードする感じです。何も指定しないと、バッチファイルを置いているフォルダが作業フォルダになります。

 

3.圧縮したい動画を作業フォルダに配置する

圧縮したい動画ファイルをまとめて「D:\ffmpeg\work」に移動してください。

※万が一、バッチが異常終了して動画が壊れる可能性もあります。必ず圧縮する動画ファイルはバックアップを取るようにしてください。

今回はディアブロ3のシーズン19で撮り貯めた動画、10ファイルを対象に圧縮をかけていきます。合計して296GBほど容量があります。

 

4.バッチを実行する

バッチの実行は簡単です。「ffmpeg-batch-encoding1.bat」をダブルクリックするだけです。

実行後は上図のような画面が表示され圧縮処理が開始されます。さらにcompフォルダが自動作成され、そこにエンコードされたファイルが置かれていきます。

 

無事バッチが正常に終了しました。╰(*´︶*)╯

処理時間は9時間!?実行開始時間が深夜2時と遅めだったこともあり、終了は午前11時でした。

検証時のソースにバグがあり、作成されたファイル名の日付がすべて同じになってしまっていますが、概ね想定通りの動きをしてくれています。(※バグは修正済みです。)

エンコードによって296GBだった動画が32.6GBまで圧縮することに成功!!動画の劣化もそれほど気にならないのでこれは良いものができました。(  ^^)/

 

 

まとめ

今回FFmpegとWindowsバッチを使って動画の一括エンコードバッチを作成しました。

動作検証の結果、問題なく複数の動画を一括エンコードすることが出来、日常的に使うことができそうです。

寝る前に作業フォルダに動画を放り込んでおいて、朝起きたらエンコードが終わっている、という生活が可能になります。
( *´ސު`*)

しかし、まだ作成したバッチは暫定版です。FFmpegのオプションを指定することもできなければ、圧縮対象がmp4のみとなっているので、今後さらなる改良を加えていきたいです!!

 

タイトルとURLをコピーしました