ffmpeg

ffmpegも最新を追いながらビルドしています。現在、r18736がベースかな?僕のアプリでは主に動画のデコーダとして使っています。前にYUV→RGBの性能が上がった?なんて話をしましたがそんなに変わってなかったです。気のせいでした^-^;
でも、それとは別に、これまでは非圧縮のAVIを読み込む際デコード時間がフレーム毎にバラついていたんですが、最新のものではそれもなく安定してデコードできているようです。1600×320(変なサイズでごめんなさい)のAVIで4~5ms、1280×720のmp4で15~19msくらいで1フレームをデコードできており、以前はAVIの方が遅かったのですがだいぶ良くなりました。フレームの先読みもするので30fpsであればまず問題ないですね。ちなみに1920x1080x60iのソースだと35~40msかかります。現状、ffmpegのswscaleを使っており、これを使わないと10~15ms(前述の1280×720だと5~10ms)でデコードできますので、シェーダと組み合わせればまだまだ改善できそうです。また、WMVの動画を再生するとメモリリークするようですが、コーデックの閉じ方の流儀があるのかもしれませんのでもうちょっと調査したいところ。増えてくタイプのものではなさそうなので大丈夫そうです。サンプルやコメントを見ながら実装していますが、わかり易いですし、AVIやH.264を再生する分にはいまのところリークもないので素晴らしいです。DirectShowの時もやっぱり原因不明のメモリリークに悩みましたが、僕は現在、長時間繰り返し再生する、というカテゴリなので(笑)、この点は大きなアドバンテージです。

コメント

タイトルとURLをコピーしました