FFmpegのパラメータの順番で-toの挙動が変わる
Web検索すると、ffmpegのパラメータの使い方として、ファイルを指定する-i
より、シーク場所を指定する-ss
を、先に指定したほうがよいとの情報があります。
ffmpeg -i foo.mp3 -ss 00:00:02.540 -t 3 -c copy bar.mp3
よりも
ffmpeg -ss 00:00:02.540 -i foo.mp3 -t 3 -c copy bar.mp3
よいと。この例では、切り出す時間の長さを指定する-t
オプションが使われています。
-t
ではなく、トリムの終点を指定する-to
オプションを使った場合、-i
と-ss
の順番の違いで挙動が異なりました。
ffmpeg -i foo.mp3 -ss 00:00:02.540 -to 00:00:06.649 -c copy bar.mp3
とすると、00:00:02.540から00:00:06.649の範囲でトリムができました。しかし、
ffmpeg -ss 00:00:02.540 -i foo.mp3 -to 00:00:06.649 -c copy bar.mp3
とすると、00:00:02.540を起点として00:00:06.649の時間分のトリムをするようです。バグだろうと思ったのですが、この挙動はちゃんとドキュメントに書いてありました。
起点と終点を指定したい場合は、-copyts
を加える必要があるとのこと。