グレーはカットしない、つまり出力する部分で、ブラックがカットする部分。copyすれば無劣化になり、コーデックを指定すれば再エンコードになる。[duration]、[front-duration]、[back-duration] は秒時間指定と、hh:mm:ss.ms 指定が出来る。4番目はプレイヤで再生しているときの再生時間でカットするのに便利なコマンド。

こちらも参照
詳細な分割設定ができる Segment
ffmpeg で指定秒ごとに分割する方法
ffmpeg で時間単位やフレーム単位でカットする方法

ファイルを連結してつなげる場合はこちらを参照
concat を使い分ける

  1. 最初から最後まで出力する。つまりカットしない

    ffmpeg -i input.mp4 -c copy output.mp4

  2. 開始0秒から指定時間を出力する

    ffmpeg -i input.mp4 -t [duration] -c copy output.mp4

  3. 指定時間までカットし、最後まで出力する

    ffmpeg -ss [duration] -i input.mp4 -c copy output.mp4

  4. 指定時間までカットし、指定した再生時間まで出力する。ここの to は秒時間よりも hh:mm:ss のほうが使いやすい

    ffmpeg -ss [duration] -to [hh:mm:ss] -i input.mp4 -c copy output.mp4

  5. 指定時間までカットし、指定区間を出力する

    ffmpeg -ss [duration] -i input.mp4 -t [duration] -c copy output.mp4

  6. 指定時間までカットし、最後も指定時間([back-duration]-[front-duration] )カットして出力する。詳しくはここ

    ffmpeg -ss [front-duration] -i input.mp4 -ss [back-duration] -i input.mp4 -c copy -map 1:0 -map 0 -shortest -f nut - | ffmpeg -f nut -i - -map 0 -map -0:0 -c copy output.mp4

  7. 開始0秒から、最後から指定時間前まで出力する

    ffmpeg -i input.mp4 -ss [back-duration] -i input.mp4 -c copy -map 1:0 -map 0 -shortest -f nut - | ffmpeg -f nut -i - -map 0 -map -0:0 -c copy output.mp4

  8. 最後から指定時間さかのぼり、最後まで出力する。sseof はマイナス時間を指定

    ffmpeg -sseof -[duration] -i input.mp4 -c copy output.mp4

  9. 最後から指定時間さかのぼり、指定時間を出力する

    ffmpeg -sseof -[duration] -i input.mp4 -t [duration] -c copy output.mp4

公式ドキュメント:ffmpeg Documentation : Main options

2 thoughts on “ffmpeg で指定時間でカットするまとめ

  • やらかし

    毎度毎度質問ばかりで心苦しいのですが、ずっと悩み続け結果どうしようもなく書き込む事、お許しください

    windows版の話になります
    CropとTrimを同時にやろうとするとエラーに
    例:-ss 10 -t 1:00.89を指定、すると0.89というデレクトリーがないと言ったエラー表示
    時間の指定が間違っているのか?と何度見直しても時間指定は正しいはず…
    試しにTrim指定部分を外すと普通に出力
    Cropの指定部分を外しても同じく普通に出力
    しかし同時が行えません…
    知恵をお貸しください…

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)