2012-02-08 11 views
1

Objectiveを使ってIOS(iphone/ipod/ipad)でビデオ処理を行っていますc。私はビデオをキャプチャするためにAVFoundation Frameworkを使用しています。私はffmpeg-libx264を使用してそれらのビデオフレームをエンコード/デコードしたい。私はios用のffmpeg-x264 libをコンパイルしました。私はAVFoundationからkCVPixelFormatType_32BGRAを得ました。ffmpeg-X264エンコード--BGRAをAVFrame(ffmpeg)に、逆にする? for IOS

私の問題は、avcodec_encode_videoを使用してのeNodeためAVFramekCVPixelFormatType_32BGRAを変換する
1.Howのですか?

2. avCodec_decode_video2からAVCrameをkCVPixelFormatType_32BGRA @ decode側に変換する方法はありますか?

上記のプロセスを開始するか、作業チュートリアルのパスをお知らせください。事前におねがいします。あなたはFFMPEGを使用しようとしている場合

答えて

1

あなたはkCVPixelFormatType_420YpCbCr8BiPlanarVideoRangeではなくkCVPixelFormatType_32BGRAを使用する必要がありますし、その後、あなたはAVFrameにそれを押し込むことができます。おそらく、iOSカメラ(YUVNV12)から入手したものをYUV420Pに変換して、iOS以外の端末で受信できるようにすることもできます。 iOSデバイスを使用しているだけで気になることがあれば、色変換のこの部分をスキップしてAVFrameにパックするだけです。

すでにYUV形式になっているので、CVPixelBufferGetBaseAddressOfPlane(buf、0)を使用して、そのアドレスをエンコードすることができます。

あなたが画像をデコードしたら、YUV420PからBGRAに色を変更する必要があります。あなたがそれをエンコードする前に最初の場所で色を適切に入れ替えなかったら、YUVNV12をBGRAに変更するだけです。

これは少し役に立ちます。適切な色変換アルゴリズムをオンラインで見つけることができます。

関連する問題