
FFmpegは動画の処理、変換にとても便利な無料ソフトウェアだ。
もともとはLinux用のソフトウエアで、サーバーやライブ配信かじったことのある人ならおなじみのソフトウェアだが、
コマンドラインツールといってすべて文字情報で操作するのでwindowsやmacのguiに慣れた人はとっつきにくいかもしれない。
windows用のバージョンがあり、下記手順で比較的簡単にインストール、操作できるので紹介する。
ラルゴのパソコンはすべてwindowsなので当記事ではwindows版のみ紹介するがmacバージョンもあるので「ffmpeg mac」でググってみてほしい。

まずスタート(windowsマーク)右クリックで「ターミナル(管理者)」を開く

ヤバいときに出るような黒いウィンドウが現れるが拒否反応を起こさずに続けてほしい。
下記一行をコピーして
winget install --id=Gyan.FFmpeg -e
ターミナルの黒ウィンドウ内で右クリックするとペーストされる。
そのまま「enter」キーでインストール開始

インストール完了後に「exit」と入力してenterで一旦ウインドウを閉じる。

再び、ターミナル(管理者)を開き、
ffmpeg -version
と入力してenterでffmpegのバージョンや使用可能なコーデックが表示されたらインストール成功だ。

上記方法でうまくいかなかった人は「FFmpeg windows」ググると他の方法も出てくるので調べるとよい。
当サイトの基本スタンス「ヒントのみ提示」あとは各自情報収集お願いします。
ここでは理屈抜き最小限の手順のみ紹介する。興味のある人は「FFmpeg」ググって更に情報を得てほしい。
メモ帳などテキストエディタで新規ファイルを作成する。
任意のフォルダに変換したいmp4動画ファイル(複数でも可)を入れ同フォルダ内に「output」フォルダを作っておく。
for %%f in (*.mp4) do (
ffmpeg -y -i "%%~nf".mp4 -c:v libx264 -crf 23 -codec:a copy -movflags faststart "output\%%~nf".mp4
)
上記コードをメモ帳にコピー&ペースト。

「名前を付けて保存」、ファイル名「〇〇〇.bat」、ファイルの種類「すべてのファイル」で変換元動画ファイルと同じフォルダに保存

出来上がった.batファイルをダブルクリックすると例の黒ウインドウが立ち上がり、動画の変換が始まり、「output」フォルダに書き出される。

for %%f in (*.mp4) do (
ffmpeg -y -i "%%~nf".mp4 -c:v libx264 -crf 23 -codec:a copy -movflags faststart "output\%%~nf".mp4
)
「-crf 23」のところが、圧縮後の映像品質を指定する数値。
数が小さいほど圧縮率が低く品質が良い。18以下は容量増えても、ほぼ品質が変わらない。24以上は画質の劣化が目立ってくる。
for %%f in (*.mp4) do (
ffmpeg -y -i "%%~nf".mp4 -movflags +faststart -c:a aac -ac 2 -ar 48000 -ab 256k -aac_coder twoloop -c:v libx264 -crf 20 -profile:v high -bf 2 -r 30 -g 30 -coder 1 -pix_fmt yuv420p "output\%%~nf".mp4
)
「-ab 256k」音声の品質。数が大きいほど高品質。128kで十分実用。
「-crf 20」数が小さいほど高品質、大容量。
for %%f in (*.mov) do (
ffmpeg -y -i "%%~nf".mov -movflags +faststart -c:a aac -ac 2 -ar 48000 -ab 256k -aac_coder twoloop -c:v libx264 -crf 20 -pix_fmt yuv420p "output\%%~nf".mp4
)
「for %%f in (*.mov) 」と「ffmpeg -y -i "%%~nf".mov」のところの「.mov」を変えると他形式にも対応可。
for %%f in (*.mts) do (
ffmpeg -y -i "%%~nf".mts -movflags +faststart -c:a aac -ac 2 -ar 48000 -ab 256k -aac_coder twoloop -c:v libx264 -crf 20 -pix_fmt yuv420p "output\%%~nf".mp4
)
for %%f in (*.m2ts) do (
ffmpeg -y -i "%%~nf".m2ts -movflags +faststart -c:a aac -ac 2 -ar 48000 -ab 256k -aac_coder twoloop -vf yadif=0:-1:1 -c:v libx264 -crf 20 -pix_fmt yuv420p "output\%%~nf".mp4
)
「-vf yadif=0:-1:1」がインターレース解除
for %%f in (*.mp4) do (
ffmpeg -y -i "%%~nf".mp4 -movflags +faststart -c:a aac -ac 2 -ar 48000 -ab 256k -aac_coder twoloop -vf "scale=-1:1080:force_original_aspect_ratio=decrease,pad=ceil(iw/2)*2:1080:(ow-iw)/2:(oh-ih)/2" -c:v libx264 -crf 20 -pix_fmt yuv420p "output\%%~nf".mp4
)
「-vf scale=-1:1080」と「pad=ceil(iw/2)*2:1080」がサイズの指定。縦の解像度1080、縦横比は素材に準ずる。
変換元は1920x1080ビットレート高めのmp4
for %%f in (*.mp4) do (
ffmpeg -y -i "%%~nf".mp4 -c:v libx264 -crf 23 -r 30 -g 30 -codec:a aac -aac_coder twoloop -ar 48000 -ab 128k -movflags faststart "output\%%~nf"h.mp4
ffmpeg -y -i "%%~nf".mp4 -c:v libx264 -crf 23 -s 960x540 -r 30 -g 30 -codec:a aac -aac_coder twoloop -ar 48000 -ab 128k -movflags faststart "output\%%~nf"s.mp4
)
「ffmpeg -y -i "%%~nf".mp4」のところと「ffmpeg -y -i "%%~nf".mp4」(2個所)のところのmp4を書き換えれば他の形式からの変換も可能
変換元はh264のmp4
for %%f in (*.mp4) do (
ffmpeg -y -i "%%~nf".mp4 -c:v libx265 -crf 23 -codec:a copy -movflags faststart "output\%%~nf".mp4
)