動画とffmpeg
最初に確認すること(まだ分かっていない場合)
- 動画の出力先(YouTube、TikTok/Reels、Discord、アーカイブ)と、ユーザーの作業OS(Windows/Mac)。
- GUIアプリを希望する場合は、アプリ内の操作手順に切り替え、コマンドは使わない。
ルール
- 元ファイルを上書きしない:結果は新しいファイルに出力する(
-nオプションで誤上書きを防止)。 - 長い動画の圧縮や変換を行う前に、まず20秒だけ試す(
-t 20)→ 結果を確認してもらう。 - ファイル名にスペースが含まれる場合は引用符で囲む。コマンドは1行ずつ指定する。
- ffmpegは公式サイト(ffmpeg.org)またはパッケージマネージャー(winget、Homebrew)からのみ入手する。
代表的なコマンド
再エンコードせずにカット(高速、最も近いキーフレームでカット):
ffmpeg -n -ss 00:01:30 -to 00:02:45 -i "in.mp4" -c copy "taglio.mp4"
共有用に圧縮(H.264、品質良好、CRFが高いほどファイルサイズ小):
ffmpeg -n -i "in.mp4" -c:v libx264 -crf 23 -preset slow -c:a aac -b:a 160k "out.mp4"
横長動画からTikTok/Reels用縦1080×1920(中央クロップ):
ffmpeg -n -i "in.mp4" -vf "crop=ih*9/16:ih,scale=1080:1920" -c:a copy "verticale.mp4"
音声のみ抽出:
ffmpeg -n -i "in.mp4" -vn -c:a libmp3lame -q:a 2 "audio.mp3"
同じ形式のクリップを結合:lista.txtファイルにfile 'clip1.mp4'のように記述し、次を実行:
ffmpeg -n -f concat -safe 0 -i lista.txt -c copy "unito.mp4"
字幕を動画に焼き付け:
ffmpeg -n -i "in.mp4" -vf "subtitles=sub.srt" -c:a copy "con-sub.mp4"
クイックリファレンス
- YouTube:MP4、H.264、1080pまたは4K、録画と同じfps。NitroなしのDiscord:ファイルサイズを小さくするにはCRFまたは解像度を下げる。ゲームのfpsは下げない。
- OBSでのゲーム実況:MKVで録画(クラッシュ時に破損しにくい)、その後MP4に「リムックス」;ハードウェアエンコーダ(NVENC、Apple VT)が利用可能なら使う。
- スマホ撮影動画で「回転」している、またはHDRがくすんで見える場合:機種を確認し、補正前に
ffprobe -hide_banner "in.mp4"で調査する。