2012.06.18
【ffmpeg】どこに変換負荷があるかを調べる
ちょいと気になったので調べてみる。
ffmpegを使ったツールを作ってみたいためとりあえず、早くmp4を出力したい。
そのときにはどのパラメータを小さくすると効果が出るかを知りたい。
調査方法としてはffmpeg変換時に出力される処理されたfps数をみることで調べます。
スペック等についてはCPU速度を量るわけではないので書きません。
基本的なコマンドはこんな感じ。
ffmpeg -y -i in.ts -vcodec libx264 -aspect 16:9 -s (動画サイズ) -bufsize 20000k -b (動画ビットレート) -acodec aac -strict experimental -ac 2 -ar 48000 -ab 128k out.mp4
一番重いと思われる動画部分のみに焦点をおきます。
音声については多分そんなに影響はないでしょうということで固定化。
まずは動画サイズを1280x720に固定しビットレートを変換する形でチェック。
結果はこんな感じ。
2000k | 41fps |
---|---|
1000k | 38fps |
500k | 41fps |
レートをいくら削っても早く出力されないことがわかりました。
なのでビットレートを2000kに固定し動画サイズを小さくする形でチェック。
結果はこんな感じ。
1280x720 | 41fps |
---|---|
864x486 | 57fps |
512x288 | 92fps |
256x144 | 173fps |
うん、ビンゴですね。
早く出力したければ動画サイズを小さくするのが効果的。
今回はtsで行ったわけですが、ファイルフォーマットが違うとまた結果が変わるかもしれない。
しかし、拡縮に負荷があることがわかりました。
素早い出力をしたいときには動画サイズを小さくするのはだいぶ効率的ということでしょう。
ビットレートはあげてもさほど速度的には変わらないようなので適度にあげてあげるといいかもしれません。
MPEG4入門―「圧縮の基本」から「MPEGの基本」「MPEG4の実際」まで (I・O BOOKS) 瀧本 往人 工学社 2006-09 |
関連記事