1

AVFoundation を使用してビデオをキャプチャしました。(ビデオ設定) を設定し、outputsamplebuffer kCVPixelFormatType_420YpCbCr8BiPlanarFullRange 形式で取得しました。しかし、さらに処理するには YUV420 形式が必要です。

そのために、libyuv フレームワークを使用します。

LIBYUV_API
int NV12ToI420(const uint8* src_y, int src_stride_y,
           const uint8* src_uv, int src_stride_uv,
           uint8* dst_y, int dst_stride_y,
           uint8* dst_u, int dst_stride_u,
           uint8* dst_v, int dst_stride_v,
           int width, int height);

 libyuv::NV12ToI420(src_yplane, inWidth ,
                   src_uvplane, inWidth,
                   dst_yplane, inWidth,
                   dst_vplane, inWidth / 2,
                   dst_uplane, inWidth / 2,
                   inWidth,  inHeight);

しかし、出力バッファが完全に緑色になっていますか? 私はそのプロセスで間違いを犯しました.plsは私を助けてくれますか?

4

4 に答える 4

0

正しく見えます。src_uvplane が src_yplane + inWidth * inHeight を指していることを確認してください

于 2013-02-26T03:42:12.883 に答える