イントロ
最近、新型コロナ対策でオンライン学習の要望が急増してきていて、ノウハウの共有が求められているようなので自分も提供してみる。
PowerPointやスマホ、ウェブミーティングソフトなどで録画した動画をLMSなどにアップロードすると大きすぎて都合が悪い場合に、FFmpegを使って手元のWindows PCでお手軽に変換することを目的としている。
準備
Windows用にビルドされたFFmpegのバイナリを拾って来て、binディレクトリ内に以下のバッチファイルを作成する。
数年前に作ったものだが、FFmpeg 4.2.2でも動作することを確認。
convert.bat
@echo off
%~dp0\ffmpeg.exe -i %1 ^
-f mp4 -movflags +faststart ^
-vcodec libx264 -vb 6000k -vf scale=1280:-1 ^
-c:a aac -ab 128k ^
-mbtree 1 -fast-pskip 0 -8x8dct 1 ^
-me_method hex -subq 7 -me_range 16 ^
-trellis 1 -chromaoffset 4 ^
-nr 100 -deblock 1:0 ^
-bf 3 -b_strategy 1 ^
-bt 1.0 ^
-qcomp 0.60 -qmin 5 -qmax 69 -qdiff 4 -qblur 0.5 ^
-coder ac -refs 8 -threads 0 ^
%1.mp4
pause
使い方
作成したバッチファイルに適当な動画ファイルをドラッグ&ドロップするとMP4へと勝手に変換が始まる。複数ファイルのバッチエンコードには未対応。
進捗については出力メッセージ中の time=00:20:00.00
のように動画中の時間が出ている部分を確認し、元ファイルの動画の長さと比較する。
メモ
- ビットレートを変える場合は
-vb 6000k
の部分を適当に調整。 -
-vf scale=1200:-1
が縦横比を変えず横幅1280pxの動画になるようサイズ変更しているので必要に応じて調整。 -
-movflags +faststart
がダウンロード開始後すぐに再生できるように細工している部分。