グレーはカットしない、つまり出力する部分で、ブラックがカットする部分。-c copyすれば無劣化になり、コーデックを指定すれば再エンコードになる。[duration]、[front-duration]、[back-duration]は秒時間指定と、hh:mm:ss.ms指定ができる。4番目はプレイヤで再生しているときの再生時間でカットするのに便利なコマンド。実際に時間を指定するときには[]を省略して秒指定、hh:mm:ss.ms指定する。
こちらも参照
ファイルを連結してつなげる場合はこちらを参照
concat を使い分ける
-
最初から最後まで出力する。つまりカットしない
ffmpeg -i input.mp4 -c copy output.mp4
-
開始0秒から指定時間を出力する
ffmpeg -i input.mp4 -t [duration] -c copy output.mp4
-
指定時間までカットし、最後まで出力する
ffmpeg -ss [duration] -i input.mp4 -c copy output.mp4
-
指定時間までカットし、指定した再生時間まで出力する。ここのtoは秒時間よりも hh:mm:ss のほうが使いやすい
ffmpeg -ss [duration] -to [hh:mm:ss] -i input.mp4 -c copy output.mp4
-
指定時間までカットし、指定区間を出力する
ffmpeg -ss [duration] -i input.mp4 -t [duration] -c copy output.mp4
-
指定時間までカットし、最後も指定時間([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
-
開始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
-
最後から指定時間さかのぼり、最後まで出力する。sseofはマイナス時間を指定
ffmpeg -sseof -[duration] -i input.mp4 -c copy output.mp4
-
最後から指定時間さかのぼり、指定時間を出力する
ffmpeg -sseof -[duration] -i input.mp4 -t [duration] -c copy output.mp4
公式ドキュメント:ffmpeg Documentation : Main options
チャプターから分割する方法はffmpegそれ自体にはないのでmkvmergeを用いる。
mkvmerge -o output.mkv --split chapters:all input.mkv
チャプターはメタデータで扱える。
ffmpeg でメタデータを加える
毎度毎度質問ばかりで心苦しいのですが、ずっと悩み続け結果どうしようもなく書き込む事、お許しください
windows版の話になります
CropとTrimを同時にやろうとするとエラーに
例:-ss 10 -t 1:00.89を指定、すると0.89というデレクトリーがないと言ったエラー表示
時間の指定が間違っているのか?と何度見直しても時間指定は正しいはず…
試しにTrim指定部分を外すと普通に出力
Cropの指定部分を外しても同じく普通に出力
しかし同時が行えません…
知恵をお貸しください…
例のコマンドをすべて書いてログも載せてくれないと答えられない。
長いようなら https://pastebin.com/ に貼ってください。
[…] このサイトを参考にしました。コマンドを記録します。 […]