[FFmpeg] 動画のカット・トリミング・切り出しの方法

動画の先頭をカット (トリミング) する

動画の冒頭の不要な部分を削除したいときに使います。

基本コマンド

ffmpeg -ss [時間] -i INPUT.mp4 -c copy OUTPUT.mp4

-ss オプションのあとにカットしたい時間を指定します。

使用例

開始~30秒をカットする
ffmpeg -ss 30 -i INPUT.mp4 -c copy OUTPUT.mp4
開始~1分30秒をカットする
ffmpeg -ss 1:30 -i INPUT.mp4 -c copy OUTPUT.mp4

-ss オプションの出力イメージ

ワンポイントアドバイス

出来上がった動画の冒頭部分に乱れがある場合は、 -c copy を外して再エンコードしてください。

ffmpeg -ss 30 -i INPUT.mp4 OUTPUT.mp4

参考: 先頭カットした動画データにずれがあるとき

-ssオプションの仕組み

-ssオプションは動画の開始ポイントを任意の位置に移動 (シーク) します。
指定した時間から動画の最後まで出力されるため、結果的に冒頭部分がカットされます。

動画の末尾 (最後) をカットする

動画の最後の不要な部分を削除したい時に使います。これには2つの方法があります。

その1: -to オプションを使う (終了時間を指定する方法)

ffmpeg -to [時間] -i INPUT.mp4 -c copy OUTPUT.mp4

-to オプションを使うと、指定した時間で書き込みや読み取りを停止します。(以降は破棄されます)

使用例

開始~2分まで出力(2分以降をカット)
ffmpeg -to 2:00 -i INPUT.mp4 -c copy OUTPUT.mp4

-to オプションの出力イメージ

その2: -t を使う場合 (書き出し時間を指定)

ffmpeg -t [時間] -i INPUT.mp4 -c copy OUTPUT.mp4

-t オプションはファイル入力(-i)のに指定されたとき、指定した時間までを出力します。(以降は破棄されます)

使用例

開始~60秒間出力(60秒以降をカット)
ffmpeg -t 60 -i INPUT.mp4 -c copy OUTPUT.mp4

-t を使った出力イメージ

-to-tの違いと、ワンポイントアドバイス

  • -to: 動画の開始から指定時間までを出力
  • -t: 動画の開始から指定した時間の長さ分を出力

どちらも同じ結果になりますが、用途に応じて使い分けると便利です。

-to-t は排他的な関係で、同時に指定した場合 -t が優先されます。

動画の先頭と末尾をカットする (中間部分を切り出し)

動画の中間部分だけを抜き出したい時に使います。

方法1: 始点と終点を指定(-ss-to

「動画のここからここまでが欲しい」という時に便利です。

ffmpeg -ss [開始時間] -to [終了時間] -i INPUT.mp4 -c copy OUTPUT.mp4

使用例

1分30秒から3分30秒までを出力
ffmpeg -ss 1:30 -to 3:30 -i INPUT.mp4 -c copy OUTPUT.mp4

-ss-to を使った出力イメージ

方法2: 始点と時間を指定 (-ss-t)

「動画のこの時間から、これくらいの長さが欲しい」という時に便利です。

ffmpeg -ss [開始時間] -t [出力時間] -i INPUT.mp4 -c copy OUTPUT.mp4

使用例

1分30秒から60秒間を出力
ffmpeg -ss 1:30 -t 60 -i INPUT.mp4 -c copy OUTPUT.mp4

-ss-t を使った出力イメージ

よくある問題と解決法: カットした動画に映像の乱れが出る

FFmpegでエンコードなし (-c copyあり) で動画をカットした場合、キーフレームの関係で以下の現象が起きることがあります。

  • 映像が止まって見える
  • 画面が真っ黒になる
  • 映像が乱れる

解決方法

コマンドから-c copyを外して再エンコードしてください。

# 再エンコード版
ffmpeg -ss 30 -i INPUT.mp4 OUTPUT.mp4

注意: 再エンコードは処理に時間がかかりますが、映像の乱れがきれいに調整されます。

なぜ映像の乱れが起きるのか?

-ssで動画の開始位置を移動させる際、始点は指定した時間の近くに移動します。
動画は「キーフレーム」という基準点があり、実際には指定した時間に最も近いキーフレームから開始するため、映像の乱れが生じることがあります。

時間指定の書き方

時間は2つの方法で指定できます。

方法1: [HH:]mm:ss形式(時:分:秒)

「HH」は時間(省略可)、「mm」は分、「ss」は秒を最大2桁で表します。

  • 1時間5分0秒
    ffmpeg -ss 1:05:00 -i INPUT.mp4 OUTPUT.mp4
    
  • 2分30秒
    ffmpeg -ss 2:30 -i INPUT.mp4 OUTPUT.mp4
    
  • 45秒
    ffmpeg -ss 0:45 -i INPUT.mp4 OUTPUT.mp4
    

方法2: 秒数で指定 S[.m]

「S」は秒数です。オプションで小数点も使用できます。

  • 180秒 (3分)
    ffmpeg -ss 180 -i INPUT.mp4 OUTPUT.mp4
    
  • 45.5秒 (小数点も使用可能)
    ffmpeg -ss 45.5 -i INPUT.mp4 OUTPUT.mp4
    
参考URL

まとめ

FFmpegを使った動画カット・トリミングの基本をマスターすれば、動画編集の作業効率が大幅にアップします。

覚えておくべきポイント

  1. 先頭カット: -ssで開始時間を指定する
  2. 末尾カット: -to(終了時間) か-t(出力時間) を使用する
  3. 中間切り出し: -ss-toまたは-tを組み合わせる
  4. 映像の乱れ: -c copyを外して再エンコードで解決する
記事をシェアする
  • X
  • Bluesky
  • Facebook
  • Hatena
  • line