それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

ffmpeg で指定秒数を切り出して動画を時間で分割する

ffmpeg で時間を元に分割する

動画の一部(画面の一部)を取り出す方法は→こちら

指定時間(30秒の動画を作る)

動画の先頭から30秒を切り出す時

ffmpeg -i input.mp4 -t 30 out.mp4

何秒間切り出すかを決めるときは、-t 30 のようにする。

開始時間から終了時間を指定する

動画の45秒目から15秒を切り出す

ffmpeg -i input.mp4 -t 15 -ss 45 out.mp4


開始秒を指定するには、-ss 60 のようにする。

時間が長いスキップをして頭出しを早くする。( 2.1 以上

長時間以上のスキップをしたいときは、 `-ss` を先頭に書く

ffmpeg -ss 00:01:00  -i input.mp4 -t 15 out.mp4

ss を後ろに持ってくるとスキップ処理より動画読み込みと変換(切り出し)が先に行われてしまうので、読み込みソースをスキップする指定を先に書いたほうが楽。

エンコードを回避する

上記のコマンドだと、再エンコードが掛かるので、エンコードはコピーすると早いかもしれない。

ffmpeg -i  in.mp4 -ss 900 -t 30 -c:a copy -c:v copy out.mp4

ただし、一部を切り出してるため、再生エラーになる場合がある(エンコードは前フレーム差分で構成するので、差分が十分になるまで絵が表示されなくなる)

2018-10-14 追記

` -ss ` に指定する時間が長いときの手法を書いた