ffmpeg

初級 | 8分 で読める | 2026.04.24

公式ドキュメント

この記事の要点

ffmpeg -i input.mp4 output.aviで基本的な形式変換
-c copyで再エンコードせず高速コピー、-ss-tで切り出し
-vfでフィルタ適用、-crfで品質とサイズを調整

基本コマンド

コマンド説明
ffmpeg -i input.mp4 output.avi形式変換
ffmpeg -i input.mp4 -c copy output.mp4コーデックコピー(再エンコードなし)
ffmpeg -i input.mp4 -vn output.mp3音声のみ抽出
ffmpeg -i input.mp3 -i cover.jpg output.mp4音声と画像から動画作成
ffmpeg -formatsサポートされる形式一覧
ffmpeg -codecsコーデック一覧

ポイント: -c copyは再エンコードせずストリームをコピーします。処理が高速で画質劣化もありませんが、コンテナ形式だけを変えたいときに使います。

動画の切り出し

コマンド説明
ffmpeg -ss 00:01:30 -i input.mp4 -t 10 output.mp41分30秒から10秒間切り出し
ffmpeg -i input.mp4 -ss 00:01:00 -to 00:02:00 output.mp41分から2分まで切り出し
ffmpeg -ss 00:00:30 -i input.mp4 -c copy -t 20 output.mp4再エンコードなしで切り出し
オプション説明
-ss HH:MM:SS開始位置(秒でも可: -ss 90
-t 秒数切り出す長さ
-to HH:MM:SS終了位置

実践メモ: -ss-iの前に置くと高速ですが精度が落ちます。正確な位置で切りたい場合は-iの後に置きます。

エンコード設定

コマンド説明
ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4H.264 でエンコード
ffmpeg -i input.mp4 -c:v libx265 -crf 28 output.mp4H.265(HEVC)でエンコード
ffmpeg -i input.mp4 -b:v 1M output.mp4ビットレート指定
ffmpeg -i input.mp4 -c:a aac -b:a 128k output.mp4音声ビットレート指定
ffmpeg -i input.mp4 -preset fast -crf 22 output.mp4エンコード速度調整
オプション説明
-c:v libx264ビデオコーデック H.264
-crf 23品質指定(0-51、低いほど高品質、デフォルト23)
-b:v 1Mビットレート指定(1Mbps)
-presetultrafast, fast, medium, slow, veryslow

ポイント: -crfは品質優先モードで、-b:vはサイズ優先です。Web 用なら crf 23-28、アーカイブ用なら 18-22 が目安です。

解像度とフレームレート

コマンド説明
ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4720p にリサイズ
ffmpeg -i input.mp4 -vf scale=-1:480 output.mp4高さ480px、幅は自動
ffmpeg -i input.mp4 -r 30 output.mp4フレームレート30fps に変更
ffmpeg -i input.mp4 -vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2" output.mp4アスペクト比維持してパディング

実践メモ: scale=-1:720-1アスペクト比を保ったままもう一方を自動計算します。縦横比を崩したくないときに便利です。

フィルタ適用

コマンド説明
ffmpeg -i input.mp4 -vf "rotate=90*PI/180" output.mp490度回転
ffmpeg -i input.mp4 -vf "hflip" output.mp4水平反転
ffmpeg -i input.mp4 -vf "vflip" output.mp4垂直反転
ffmpeg -i input.mp4 -vf "eq=brightness=0.1:contrast=1.2" output.mp4明るさ・コントラスト調整
ffmpeg -i input.mp4 -vf "drawtext=text='Sample':x=10:y=10:fontsize=24:fontcolor=white" output.mp4テキスト埋め込み

注意: -vfでフィルタを適用すると再エンコードが発生します。複数フィルタを適用する場合は-vf "scale=1280:720,hflip"のようにカンマで繋ぎます。

音声処理

コマンド説明
ffmpeg -i input.mp4 -an output.mp4音声削除
ffmpeg -i input.mp4 -vn output.mp3映像削除、音声のみ
ffmpeg -i input.mp4 -af "volume=2.0" output.mp4音量2倍
ffmpeg -i input.mp4 -af "volume=0.5" output.mp4音量半分
ffmpeg -i input.mp4 -c:a aac -b:a 192k output.mp4音声コーデックとビットレート指定
オプション説明
-an音声ストリーム無効化
-vn映像ストリーム無効化
-af音声フィルタ
-c:a aac音声コーデック AAC

ポイント: -af "volume=1.5"で音量調整できます。1.0 が元の音量で、2.0 で2倍、0.5 で半分になります。

ストリーム選択

コマンド説明
ffmpeg -i input.mkv -map 0:v -map 0:a:1 output.mp4映像と2番目の音声を選択
ffmpeg -i input.mp4 -map 0 -c copy -metadata:s:a:0 language=eng output.mp4音声トラックに言語メタデータ追加
オプション説明
-map 0:v映像ストリーム
-map 0:a:0最初の音声ストリーム
-map 0:s字幕ストリーム

実践メモ: -mapで複数の音声トラックや字幕から必要なものだけを選べます。不要なトラックを削除してファイルサイズ削減できます。

連結

concat demuxer(同じコーデック)

# list.txt
file 'input1.mp4'
file 'input2.mp4'
file 'input3.mp4'

ffmpeg -f concat -safe 0 -i list.txt -c copy output.mp4

concat filter(異なるコーデック)

ffmpeg -i input1.mp4 -i input2.mp4 \
  -filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1[outv][outa]" \
  -map "[outv]" -map "[outa]" output.mp4

注意: concat demuxerは同じコーデック・解像度・フレームレートでないと失敗します。異なる場合は concat filter で再エンコードが必要です。

GIF 作成

コマンド説明
ffmpeg -i input.mp4 -vf "fps=10,scale=320:-1" output.gif10fps、幅320px の GIF
ffmpeg -ss 5 -t 3 -i input.mp4 -vf "fps=15,scale=480:-1:flags=lanczos,palettegen" palette.pngパレット生成
ffmpeg -ss 5 -t 3 -i input.mp4 -i palette.png -filter_complex "fps=15,scale=480:-1:flags=lanczos[x];[x][1:v]paletteuse" output.gifパレット適用

実践メモ: palettegenpaletteuseの2段階でエンコードすると、GIF の色数制限内で最適な色を選べます。単純変換よりも高品質です。

情報表示

コマンド説明
ffmpeg -i input.mp4ファイル情報表示
ffprobe -v error -show_format -show_streams input.mp4詳細情報表示
ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=p=0 input.mp4解像度だけ取得

参考リソース

関連記事

この技術を体系的に学びたいですか?

未来学では東証プライム上場企業のITエンジニアが24時間サポート。月額24,800円から、退会金0円のオンラインIT塾です。

メールで無料相談する
← 一覧に戻る