この記事でわかること

テスト済みバージョン: FFmpeg 6.1で確認済み(ubuntu-latest / CI検証済み) 対象 OS: Windows / macOS / Linux


基本オプションの説明

オプション位置説明
-ss 位置入力前または出力前処理の開始位置を指定
-to 位置出力前処理の終了位置を指定(ファイル先頭からの絶対時刻)
-t 時間入力前または出力前処理する継続時間を指定

-to-t は同時に使用できません。両方指定した場合は -t が優先されます(FFmpeg公式ドキュメントより)。


時刻フォーマット

FFmpegの時刻指定には2種類の書き方が使えます。

形式説明
HH:MM:SS00:01:301分30秒
HH:MM:SS.ms00:01:30.5001分30秒500ミリ秒
秒数(小数可)90 または 90.590秒(90.5秒)

入力前 -ss vs 出力前 -ss(最重要)

-ss の位置がトリミングの速度と精度を決める最大のポイントです。

入力前 -ss(高速シーク / キーフレームベース)

ffmpeg -ss 00:01:00 -i input.mp4 -to 00:02:00 -c copy output.mp4

-ss-iに置くと、FFmpegは指定時刻の直前のキーフレームに高速ジャンプ(fast seek)します。

出力前 -ss(低速シーク / フレーム正確)

ffmpeg -i input.mp4 -ss 00:01:00 -to 00:02:00 -c copy output.mp4

-ss-iに置くと、FFmpegはファイルの先頭からデコードしながら指定フレームまで進みます。

どちらを使うべきか

ユースケース推奨
ストリームコピー(-c copy)で素早く切り出す入力前 -ss(速度優先)
フレーム単位の精確なカットが必要入力前 -ss + 再エンコード(後述)
確認用に短いクリップを素早く抜き出す入力前 -ss

ストリームコピーによる高速トリミング(-c copy)

再エンコードなしで切り出すため非常に高速です。ただし精度はキーフレーム境界に依存します。

ffmpeg -ss 00:00:30 -i input.mp4 -to 00:01:30 -c copy output.mp4
ffmpeg -ss 90 -i input.mp4 -t 60 -c copy output.mp4

注意点:


精確なトリミング(再エンコードあり)

フレーム単位の正確な切り出しが必要な場合は、入力前 -ss と再エンコードを組み合わせます。入力前 -ss で高速シーク後、そこから再エンコードするため速度と精度のバランスが取れます。

ffmpeg -ss 00:00:30 -i input.mp4 -to 00:01:30 -c:v libx264 -crf 23 -c:a aac output.mp4

継続時間で指定する場合。

ffmpeg -ss 00:01:00 -i input.mp4 -t 30 -c:v libx264 -crf 23 -c:a aac output.mp4

-to と -t の使い分け

-to:終了タイムスタンプで指定

ffmpeg -ss 00:01:00 -i input.mp4 -to 00:03:00 -c copy output.mp4

この例では1分00秒〜3分00秒の2分間を切り出します。-to はファイル先頭からの絶対タイムスタンプです。

-t:継続時間で指定

ffmpeg -ss 00:01:00 -i input.mp4 -t 120 -c copy output.mp4

この例では1分00秒から120秒間(2分間)を切り出します。終了時刻を計算しなくてよいので便利です。


よくある落とし穴

-c copy で出力冒頭がおかしい

原因: 切り出し開始点がキーフレームでないため、デコーダーがフレームを正しく再構成できない。 対処: -c:v libx264 -c:a aac で再エンコードするか、開始点をキーフレーム位置に調整してください。

-to の時刻が入力前 -ss の影響を受ける

FFmpegのバージョンや状況によって挙動が変わる場合があります。期待通りにならない場合は -to の代わりに -t(継続時間)を使うと明確です。

無音・映像のみになる

音声ストリームが存在するか確認してください。-an(音声なし)や -vn(映像なし)が意図せず指定されていないかも確認します。


関連記事


動作確認: ffmpeg 6.1.1 / Ubuntu 24.04 (GitHub Actions runner) 一次ソース: ffmpeg.org/ffmpeg.html / trac.ffmpeg.org/wiki/Seeking / ffmpeg.org/ffmpeg-formats.html