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 ` に指定する時間が長いときの手法を書いた