2011-08-12 5 views
0

iphoneアプリケーションプロジェクトにlibavcodecライブラリを正常にインポートしました。ムービーファイルをYUV420Pデータにデコードして、ムービーのすべてのフレームを取得してRGBデータに変換できるようにしました。 OpenGL ESによって表示されます。iPhoneにYUV420Pデータを表示する方法は?

ムービーは正常に再生できますが、YUVからRGBへの変換やOpenGL(glDrawArrays)の表示方法が遅いため、かなり遅いです。

ビデオを再生するためのスマートな方法はありますか(ムービーをlibavcodecでデコードする必要があるとします)? YUVを直接表示するか、または直接表示できるYUVのようなデータに変換しますか?またはglDrawArraysより速い他の表示方法? Core GraphicsによってYUVデータを読み込むことはできますか?

+0

あなたのアプローチは、法律上問題があります。http://multinc.com/2009/08/24/compatibility-between-the-iphone-app-store-and-the-lgpl/ – MoDJ

答えて

1

YUVをRGBに変換することはあなたに合っていませんか?以下のようなもの:

img_convert_ctx = sws_getContext(320、 192、 PIX_FMT_YUV420P、 480、 320、 PIX_FMT_RGB24、 sws_flags、NULL、NULL、NULL);

、次いで

IF(frameData->データ[0]){ sws_scale(img_convert_ctx、frameData->データ、frameData-> LINESIZE、 0、192、 picture.data、picture.linesize) ; }

+0

swscaleの使い方に関する文書はありますか? – onmyway133

関連する問題