ffmpegのオプション順序で処理速度が大幅に異なる

Ken published on
5 min, 926 words

Categories: tech

ffmpegで画像を切り出そうと思ってコマンドを叩いたところ、全然終わる気配がない…。
気になって調べてみたら、オプションの位置で処理速度が異なるとのこと。

具体的には、 -i オプションと -ss オプションの位置によって大きく処理速度が異なる。

# 完了する気配がしない
ffmpeg -i bottle.mp4 -ss 445 -t 3 -vcodec mjpeg -r 10 01_%04d.jpg

# すぐに処理が終わる
ffmpeg -ss 445 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 01_%04d.jpg

おまけ

ボトルマンの必殺技の文字がぐちゃぐちゃで一瞬では読めない。
必殺技の名前を確認しようと思って、必殺技の出てくる箇所を下表にまとめた。

下表にまとめるついでに、必殺技付近の画像を秒間10枚出力するコマンドも載せておく。

経過時間静止画を切り抜くコマンド
00:07:26ffmpeg -ss 445 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 01_%04d.jpg
00:10:49ffmpeg -ss 648 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 02_%04d.jpg
00:21:03ffmpeg -ss 1262 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 03_%04d.jpg
00:24:23ffmpeg -ss 1462 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 04_%04d.jpg
00:25:55ffmpeg -ss 1554 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 05_%04d.jpg
00:28:52ffmpeg -ss 1731 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 06_%04d.jpg
00:29:08ffmpeg -ss 1747 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 07_%04d.jpg
00:38:09ffmpeg -ss 2288 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 08_%04d.jpg
00:39:10ffmpeg -ss 2349 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 09_%04d.jpg
00:47:28ffmpeg -ss 2847 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 10_%04d.jpg
00:47:53ffmpeg -ss 2872 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 11_%04d.jpg
00:48:28ffmpeg -ss 2907 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 12_%04d.jpg
00:59:35ffmpeg -ss 3574 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 13_%04d.jpg
00:59:40ffmpeg -ss 3579 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 14_%04d.jpg
00:59:47ffmpeg -ss 3586 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 15_%04d.jpg
00:59:53ffmpeg -ss 3592 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 16_%04d.jpg
01:06:16ffmpeg -ss 3975 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 17_%04d.jpg
01:06:44ffmpeg -ss 4003 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 18_%04d.jpg
01:09:57ffmpeg -ss 4196 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 19_%04d.jpg
01:10:36ffmpeg -ss 4235 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 20_%04d.jpg
01:13:21ffmpeg -ss 4400 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 21_%04d.jpg
01:13:34ffmpeg -ss 4413 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 22_%04d.jpg
01:13:57ffmpeg -ss 4436 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 23_%04d.jpg
01:14:41ffmpeg -ss 4480 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 24_%04d.jpg
01:15:05ffmpeg -ss 4504 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 25_%04d.jpg
01:12:37ffmpeg -ss 4356 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 26_%04d.jpg
01:23:01ffmpeg -ss 4980 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 27_%04d.jpg
01:27:21ffmpeg -ss 5240 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 28_%04d.jpg
01:28:09ffmpeg -ss 5288 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 29_%04d.jpg
01:28:16ffmpeg -ss 5295 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 30_%04d.jpg
01:40:13ffmpeg -ss 6012 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 31_%04d.jpg
01:42:16ffmpeg -ss 6135 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 32_%04d.jpg
01:45:12ffmpeg -ss 6311 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 33_%04d.jpg
01:48:39ffmpeg -ss 6518 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 34_%04d.jpg
01:50:07ffmpeg -ss 6606 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 35_%04d.jpg
01:50:11ffmpeg -ss 6610 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 36_%04d.jpg
01:53:43ffmpeg -ss 6822 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 37_%04d.jpg
01:54:30ffmpeg -ss 6869 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 38_%04d.jpg
01:55:01ffmpeg -ss 6900 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 39_%04d.jpg
01:58:12ffmpeg -ss 7091 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 40_%04d.jpg
01:58:24ffmpeg -ss 7103 -t 3 -i bottle.mp4 -vcodec mjpeg -r 10 41_%04d.jpg