超速ffmpeg:全てのサブフォルダ内のファイルを一括変換!
■やりたいこと
- 特定のフォルダ以下の全てのサブフォルダに含まれる全てのMOVファイルを
- MP4ファイルに全部一括変換したのち
- もとのMOVファイルを全て消す!
@echo off
for /r C:\Users\engineer\Desktop\movfolder\ %%f in (*.mov) do (
"C:\fmpg\bin\ffmpeg.exe" -i %%f "%%~dpnf".mp4
del %%f)
pause
以上のコマンドをメモ帳にペーストし、conv.cmdとかのファイル名.cmdで保存します。で、conv.cmdファイルをダブルクリックして発射!
※ffmpegはこことかからダウンロードして、展開した一式をCドライブの「fmpg」というフォルダにコピーしてあることが前提です。
■軽く解説
- for /rで全てのサブフォルダを対象にします。
- C:以下は見た目通り対象のフォルダ。今回の例だと、~\movfolderより下のフォルダに適用。
- in(*.mov)は変換元ファイルの拡張子
- “C:\fmpg\bin\ffmpeg.exe”はC:\fmpg\bin\に入っているffmpeg.exeを呼び出すコマンド。Proxyを通していないときはこの書式でffmpegを呼び出す。
- -iは変換元ファイルの指定。%%fだけでサブフォルダ内の.movファイルを見つけてそのファイル名をぶち込んでくれるという優秀さ。
- その直後に続く”%%~dpnf”.mp4は変換後ファイルの定義。
- delで変換元のファイル(%%f)を削除←バッチファイルでやる時は、このdelを改行後の段落にしておく。
- うまく動かないときはcmdファイルの記述の末尾にpauseコマンドをつけると、エラー終了したコマンドプロンプトの画面が残る。これつけないと、エラー出た瞬間にコマンドプロンプトが終了し、何のエラーだったのか全く分からない。