IT練習ノート

IT関連で調べたこと(実際は嵌ったこと)を書いています。

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の時間分のトリムをするようです。バグだろうと思ったのですが、この挙動はちゃんとドキュメントに書いてありました。

Seeking – FFmpeg

起点と終点を指定したい場合は、-copytsを加える必要があるとのこと。