60
54

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

おさえておきたいffmpeg高速化のまとめ:CPU使用率100%、Load Averageがぁあぁぁぁというときに ヽ(゚ー゚*ヽ)(ノ*゚ー゚)ノわぁい

Posted at

みなさんこんにちは :smile: 日々やばい動画処理エンジンをつくっておりますがコマンドラインから動画処理ができるffmpegを使うことがかなりありまス :movie_camera:

重い :bowling: 処理させるので、CPU使用率100%でLoad Averageは常に1を超えてるとかそんな感じです :scream:

わたし:「lachesis (ホスト名) のLoad Average がぁっぁぁ」
lachesis:「マスター!」

そんな感じ :exclamation: にしても lachesis が馬名になってるなんて、そして、レディオスコーポレーションって・・・将来、馬主 :horse: になって、バッハトマコーポレーションとして、G Iで勝てる馬を買うんだ :money_with_wings:

「レディオスコーポレーションはボクが倒す」

この前はうっかり、連続処理をスケジュールした後、気づいたら Load Average が44とかになってました。4.4だったかもですが、いずれにせよ、ひどい。ラーメン屋 :ramen: の行列に並ぶ感じでなかなかログインできなくなります :sweat_drops:

ひとりで来たのに

店員:「お次の4名でお待ちの方お先にテーブル席にどうぞー」

とか言われたときの、何とも言えない感じ :broken_heart: で二度と来るかと思いつつ、翌日も並ぶわけです :ramen:

本題

ffmpeg には使えるオプションがありすぎです。使いこなせば、AdobeのPremireとかいう動画処理ソフトも不要 :yum: なんだけど、オプションの使い方で、結果は同じなのに、処理速度 :horse_racing: が全然違うことが良くあります

というわけで

高速になる事例をまとめます

役立つことがあるかわかりませんが、Load Averageと住まい :office: は低い方がいいよねということで

:octopus: 動画を切り抜くときの -ss の場所

用途:例えば、動画の20分のところから、1分切り出したいときとか

ポイント:-i の前に -ss を書く

ffmpeg -ss 1200 -i input.mp4 -t 60 out.mp4

という感じがGood :thumbsup:

-i より後に書くのは :thumbsdown:

ffmpeg -i input.mp4 -ss 1200 -t 60 out.mp4

-i より前に書くことで、ffmpegが該当箇所まで適当に読み込みをスキップします

:octopus: 再エンコード、再サンプリングが不要な場合のコーデック指定

用途:切り抜きとか、音はそのままとか、絵はそのままとか

ポイント:コーデック指定に copy で -c:v copy -c:a copy

ffmpeg は頑張り屋で、何でもやります :ghost: でも、そのままでいい所は時間 :watch: の無駄

上の切り抜く場合だと

ffmpeg -ss 1200 -i input.mp4 -t 60 -c:v copy -c:a copy out.mp4

とすると速くなります(速くなるときがあります)

:octopus: フレーム画像の抜き出し

↑にも書いたのですが、nフレーム毎に画像を抽出する処理をワンラインで書くと超遅いです

用途:30秒ごとに画像を抽出したいときとか

ポイント:ワンラインでできる(select)は使わず、1枚ごと別コマンドにする

遅い例:

ffmpeg -i input.mp4 -filter:v "select=not(mod(n\,1800)),setpts=N/(30*TB)" -qscale:v 2 -y thumbnail-%03d.png

速い例:

ffmpeg -ss 30 -i input.mp4 -r 1 -vframes 1 -f image2 thumbnail-001.png
ffmpeg -ss 90 -i input.mp4 -r 1 -vframes 1 -f image2 thumbnail-002.png
ffmpeg -ss 150 -i input.mp4 -r 1 -vframes 1 -f image2 thumbnail-003.png

随時更新予定

というわけで、 enjoy your ffmpeg life :beer:

おまけ

VPSでリセマラ

ソシャゲで初回ガチャで良い結果が出るまでリセットし続けるのがリセマラ

VPSで良いIPアドレスになるまで引き直すのもリセマラ

60
54
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
60
54

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?