trim フィルタの使い方

ffmpeg で時間単位やフレーム単位でカットする方法 で紹介した、trim フィルタの挙動についてのまとめ。音声も一緒に trim する場合は atrim を併用する。atrim は trim と同じように時間指定ができるが trim にあるフレーム数指定は無くてサンプル数指定でカットできる。

使用したサンプル動画:3分タイマー - ニコニ・コモンズ
使用した ffmpeg:ffmpeg-20130826-git-b74213d-win64-static.7z

用語説明


  • 入力 -ssとは入力ファイルの前に -ss を指定すること
    例:ffmpeg -ss 1 -i infile
  • 出力 -ss とは入力ファイルの後ろに -ss を指定すること
    例:ffmpeg -i infile -ss 1
  • 1.00-9.99 900f とは 1.00秒から 9.99秒の 900フレームの動画である

秒指定で trim する場合


  • end_pts - start_pts が出力時間
  • -ss は入力開始時点をそれだけずらし、入力 -ssはフィルタの区間でカットするが、 出力 -ss はその時間だけ後ろをカットする(開始時間はオプションでずれるが、終了時間はオプションでずれない)
  • -t, end_pts の併用は短い時間が優先される
  • -an を付け忘れると映像はカットされるのに音声はそのまま出力されるのに注意。この場合は同じ時間指定で atrim して映像と同じようにカットすることもできる。

  • 1.00-9.99 900f:end_pts - start_pts が出力時間
    ffmpeg -i nico_3hun.mp4 -vf trim=1:10,setpts=PTS-STARTPTS -an 20.mp4
  • 2.00-10.99 900f
    ffmpeg -ss 1 -i nico_3hun.mp4 -vf trim=1:10,setpts=PTS-STARTPTS -an 21.mp4
  • 2.00-9.99 800f:出力 -ss はその時間だけ後ろをカットする
    ffmpeg -i nico_3hun.mp4 -ss 1 -vf trim=1:10,setpts=PTS-STARTPTS -an 22.mp4
  • 1.00-5.99 500f 以下同じ:-t, end_pts の併用は短い時間が優先される
    ffmpeg -i nico_3hun.mp4 -vf trim=1:10,setpts=PTS-STARTPTS -t 5 -an 23.mp4
    ffmpeg -i nico_3hun.mp4 -t 5 -vf trim=1:10,setpts=PTS-STARTPTS -an 24.mp4
    ffmpeg -i nico_3hun.mp4 -vf trim=1:6,setpts=PTS-STARTPTS -t 10 -an 25.mp4
    ffmpeg -i nico_3hun.mp4 -t 10 -vf trim=1:6,setpts=PTS-STARTPTS -an 26.mp4


秒区間で trim する場合


  • 出力 -ss はその時間だけ後をカットする
  • -t, duration の併用は短い時間が優先される
  • -an を付け忘れると映像はカットされるのに音声はそのまま出力されるのに注意

  • 1.00-9.99 900f
    ffmpeg -i nico_3hun.mp4 -ss 1 -vf trim=duration=10 -an 14.mp4
  • 0.00-4.99 500f 以下同じ
    ffmpeg -i nico_3hun.mp4 -t 5 -vf trim=duration=10 -an 15.mp4
    ffmpeg -i nico_3hun.mp4 -vf trim=duration=10 -t 5 -an 16.mp4
    ffmpeg -i nico_3hun.mp4 -t 10 -vf trim=duration=5 -an 17.mp4
    ffmpeg -i nico_3hun.mp4 -vf trim=duration=5 -t 10 -an 18.mp4


フレーム指定で trim する場合


  • end_frame - start_frame が出力フレーム数
  • start_frame は 0 から数えるが表示上のフレーム数は 1 から数えるのに注意
    例:動画の 100フレームから 200フレームまでの 101フレームにカットしたい場合は
    ffmpeg -i nico_3hun.mp4 -vf trim=start_frame=99:end_frame=200,setpts=PTS-STARTPTS -an 7.mp4
  • end_frame は入力 -ssの影響を受けない
  • 出力 -ss はその時間だけ後をカットする
  • 出力 -ss と end_frame の併用は入力 -ss と start_frame で指定したフレーム数以降の end_frame を指定しないと出力されない
  • -an を付け忘れると映像はカットされるのに音声はそのまま出力されるのに注意

  • 0.10-0.29 20f
    ffmpeg -i nico_3hun.mp4 -vf trim=start_frame=10:end_frame=30,setpts=PTS-STARTPTS -an 3.mp4
  • 0.00-0.29 30f
    ffmpeg -i nico_3hun.mp4 -vf trim=end_frame=30,setpts=PTS-STARTPTS -an 4.mp4
  • 0.01-0.29 29f
    ffmpeg -i nico_3hun.mp4 -vf trim=start_frame=1:end_frame=30,setpts=PTS-STARTPTS -an 6.mp4
  • 1.01-1.29 29f
    ffmpeg -ss 1 -i nico_3hun.mp4 -vf trim=start_frame=1:end_frame=30,setpts=PTS-STARTPTS -an 8.mp4
  • 1.00-9.99 900f:出力 -ss はその時間だけ後をカットする
    ffmpeg -i nico_3hun.mp4 -ss 1 -vf trim=duration=10 -an 14.mp4
  • 動画出力されない(入力開始時間が 4秒なのに終了フレームが 30 なので開始位置より終了位置が前なので出力されない)
    ffmpeg -i nico_3hun.mp4 -ss 4 -vf trim=end_frame=30,setpts=PTS-STARTPTS -an -y 1.mp4
  • 9.00-9.99 100f:4秒(400f)と 500f の合わせた 900f から 1000f までの 100f を出力する
    ffmpeg -i nico_3hun.mp4 -ss 4 -vf trim=start_frame=500:end_frame=1000,setpts=PTS-STARTPTS -an 22.mp4
  • 4.30-5.29 100f
    ffmpeg -i nico_3hun.mp4 -ss 4 -vf trim=start_frame=30,setpts=PTS-STARTPTS -t 1 -an -y 1.mp4

  • concat で過不足無く連結する場合(前の end_frame と次の start_frame の値を一致させる)
    ffmpeg -i nico_3hun.mp4 -vf split=3[1][2][3];[1]trim=start_frame=0:end_frame=100,setpts=PTS-STARTPTS[a];[2]trim=start_frame=100:end_frame=200,setpts=PTS-STARTPTS[b];[3]trim=start_frame=200:end_frame=300,setpts=PTS-STARTPTS[c];[a][b][c]concat=n=3:v=1:a=0 -an -y 1.mp4

関連記事


ffmpeg で時間単位やフレーム単位でカットする方法
【ffmpeg】動画・音声を連結する concat の使い方
FFmpeg Filters Documentation :: trim
FFmpeg Filters Documentation :: atrim
関連記事

この記事へのコメント

管理人のみ通知 :

トラックバック


ニコニコチャンネル始めました
ニコラボチャンネル
スポンサード リンク
THE IDOLM@STER THE@TER ACTIVITIES 03
THE IDOLM@STER THE@TER ACTIVITIES 03

Fate/EXTELLA REGALIA BOX for PlayStation (R) 4 【初回限定特典】ネロ・クラウディウス、アルトリア・ペンドラゴン衣装「純真のナイトドレス」プロダクトコード付+【Amazon.co.jp限定特典】アルテラ衣装「スイートデビル」プロダクトコード配信 - PS4
Fate/EXTELLA REGALIA BOX for PlayStation (R) 4 【初回限定特典】ネロ・クラウディウス、アルトリア・ペンドラゴン衣装「純真のナイトドレス」プロダクトコード付+【Amazon.co.jp限定特典】アルテラ衣装「スイートデビル」プロダクトコード配信 - PS4

妖怪ウォッチ くったりぬいぐるみだニャン ジバニャン
妖怪ウォッチ くったりぬいぐるみだニャン ジバニャン

Fate/EXTELLA VELBER BOX 【初回限定特典】ネロ・クラウディウス、アルトリア・ペンドラゴン衣装「純真のナイトドレス」プロダクトコード付+【Amazon.co.jp限定特典】アルテラ衣装「スイートデビル」プロダクトコード配信 - PS4
Fate/EXTELLA VELBER BOX 【初回限定特典】ネロ・クラウディウス、アルトリア・ペンドラゴン衣装「純真のナイトドレス」プロダクトコード付+【Amazon.co.jp限定特典】アルテラ衣装「スイートデビル」プロダクトコード配信 - PS4

Fate/EXTELLA REGALIA BOX for PlayStation (R) Vita 【初回限定特典】ネロ・クラウディウス、アルトリア・ペンドラゴン衣装「純真のナイトドレス」プロダクトコード付+【Amazon.co.jp限定特典】アルテラ衣装「スイートデビル」プロダクトコード配信 - PS Vita
Fate/EXTELLA REGALIA BOX for PlayStation (R) Vita 【初回限定特典】ネロ・クラウディウス、アルトリア・ペンドラゴン衣装「純真のナイトドレス」プロダクトコード付+【Amazon.co.jp限定特典】アルテラ衣装「スイートデビル」プロダクトコード配信 - PS Vita

【早期購入特典あり】初音ミクシンフォニー~Miku Symphony 2016~オーケストラ ライブ CD(初音ミクシンフォニー描き下ろしクリアファイル付き(ランダム配布))
【早期購入特典あり】初音ミクシンフォニー~Miku Symphony 2016~オーケストラ ライブ CD(初音ミクシンフォニー描き下ろしクリアファイル付き(ランダム配布))

「うたわれるもの 偽りの仮面&二人の白皇」歌集(初回限定盤)
「うたわれるもの 偽りの仮面&二人の白皇」歌集(初回限定盤)

TVアニメ『ラブライブ!サンシャイン!!』挿入歌シングル「想いよひとつになれ/MIRAI TICKET」
TVアニメ『ラブライブ!サンシャイン!!』挿入歌シングル「想いよひとつになれ/MIRAI TICKET」

『刀剣乱舞-花丸-』 歌詠集 其の三 特装盤
『刀剣乱舞-花丸-』 歌詠集 其の三 特装盤

本好きの下剋上~司書になるためには手段を選んでいられません~第一部 「本がないなら作ればいい3」
本好きの下剋上~司書になるためには手段を選んでいられません~第一部 「本がないなら作ればいい3」

新着記事と追記・編集記事
スポンサード リンク
ブログ内検索
プロフィール

Author:ロベルト
お問い合わせはこちらまで
robelt2525[at]gmail.com

中の人 @nico_lab
ブログ更新用 @blo_nico_lab

詳しいプロフィールはこちら

カテゴリ
アクセスの多い記事
記事アーカイブ

最新コメント
リンク
ニコニコ静画
アニメカテゴリ毎時ランキング
免責事項
当ブログはリンクフリーです。記事によりトラブルが生じた場合でも、当ブログ管理人は一切の責任を負いません。 当ブログに記載されている情報の正誤や利用は、ご自身の判断でお願いします。 紹介したアプリケーションに関する問い合わせは作者に問い合わせてください。ニコニコ動画に関する質問はまずは公式掲示板、2ch、各Q&Aサイトを参照ください。
ブログの読者になる(RSS)
アクセス数