#author("2024-07-21T20:01:31+09:00","default:admin","admin") #author("2024-07-22T15:40:08+09:00","default:admin","admin") &size(24){ffmpegの使い方Tips}; #contents * ffmpegとは [#y2d25c0d] - 動画ファイルをアレコレするコマンドラインツール -- エンコード(圧縮)したり -- 画枠サイズを変更したり -- ビットレートを変更したり -- エンコード方式を変換したり -- コンテナ方式を変換したり -- 前半と後半で分割したり -- 音と映像を分離抽出したり -- 音と映像をまとめたり - WindowsやLinux、Macのコンソールでコマンドを打って動かすもの -- GUIのフロントエンドもあるらしいけど、それはすでに動画編集アプリだ - デジタルビデオに関する基本的な知識は必須 * 基本 [#h0f8ed10] ffmpeg 入力オプション -i 入力ファイル名 出力オプション 出力ファイル名 * リサイズ、ビットレート変換 [#i3f115bb] - 出力を(FHDから)720P HDに縮小 - ビデオ 8Mbps - オーディオ そのまま - h.264エンコード AMD GPU使用 ffmpeg -i INPUT.mp4 -vf scale=-1:720 -vcodec h264_amf -b:v 8000k -acodec copy OUTPUT.mp4 * コンテナ変換(MKVからMP4へ) [#cd81f782] ffmpeg -i INPUT.mkv -vcodec copy OUTPUT.mp4 * h.265へ変換(ファイル容量が約半分になる) [#j671e660] - クオリティは継承 - 画枠サイズやオーディオはそのまま ffmpeg -i INPUT.mp4 -vcodec hevc_amf OUTPUT.mp4 * オーディオをノーマライズ [#x5f2aa62] 入力されたファイルを解析して、次の条件でオーディオをノーマライズする - ビデオは触らずコピー - 出力サンプリング周波数:48KHz - 出力ビットレート:256Kbps - ラウドネス:LKFS -16dB - トゥルーピーク:-1.5dB ffmpeg -i %1 -c:v copy -af loudnorm=I=-16:LRA=11:TP=-1.5 -b:a 256k -ar 48000 normalized_%1 * ファイル分割 [#uae19f5a] - あらゆるファイルを指定時間で分割ができる(例では頭から5分30秒の場所で前後に分割して2つのファイルに出力) ffmpeg -i file.ext -t 00:05:30 -c copy part1.ext -ss 00:05:30 -c copy part2.ext * ファイル切り出し [#dcb6a2d3] - 先頭からの時間(00:05:30)と、そこからの長さ(00:12:45)を指定して切り出す ffmpeg -i file.mp4 -ss 00:05:30 -c copy -t 00:12:45 file01.mp4 * DVDのVOBからMP4へ変換 [#b84b5f04] - VOBを連結する~ copy /b VST_03_0.VOB+VST_03_1.VOB+VST_03_2.VOB+VST_03_3.VOB+VST_03_4.VOB VST.VOB - ffmpegで変換~ ffmpeg -i VST.VOB -c:v libx264 -filter:v yadif -vprofile high -vlevel 3.1 -b:v 4000k -ac 2 -c:a DIST.mp4 - オプションの説明 -- -c:v libx264(CPUを使用してh.264にエンコード) -- -b:v4000k(ビデオのビットレート) -- -ac 2(STEREOにダウンミックス) -- -c:a(オーディオコーデックはAAC) * 静止画1枚から指定の長さの動画を作る [#w7852354] ffmpeg -loop 1 -r 60 -i picture.png -vcodec h264_nvenc -pix_fmt yuv420p -t 600 out.mp4 - nフレーム目をループ(-loop):1 - 入力画像(-i):picture.png~ 1920x1080の画像ファイル - 動画FPS(-r):60 - コーデック(-vcodec):h.264(NVIDIAのエンコーダー使用) - 生成時間(-t):600秒 - ピクセルフォーマット(-pix_fmt):yuv420p(動画用のYUV色差で4-2-0) - 出力ファイル:out.mp4 * 各種オプション [#o84d850c] - -vcodec (コーデックの指定) -- -vcodec h264_amf~ h.264 AMD GPU使用 -- -vcodec hevc_amf~ h.265 AMD GPU使用 -- -vcodec h264_nvenc~ h.264 NVIDIA GPU使用 - -vf scale -- -vf scale=-1:720~ 垂直720指定、水平自動、アスペクト比保持 - -b:v 8000k~ ビデオのビットレート指定(8Mbps) - -acodec copy~ オーディオのコーデック指定(そのままコピー) - -b:a 128k~ オーディオのビットレート指定(128Kbps)