【问题标题】:how to fetch raw YUV420p camera data如何获取原始 YUV420p 相机数据
【发布时间】:2014-07-29 14:05:07
【问题描述】:

我不知道使用哪个值来获取原始 YUV420p 数据。代码如下:

AVCaptureVideoDataOutput *output = [[AVCaptureVideoDataOutput alloc] init];
output.alwaysDiscardsLateVideoFrames = YES;
output.videoSettings = @{(id)kCVPixelBufferPixelFormatTypeKey: [NSNumber numberWithUnsignedInt:kCVPixelFormatType_420YpCbCr8BiPlanarFullRange]};
//output.videoSettings = @{(id)kCVPixelBufferPixelFormatTypeKey: [NSNumber numberWithUnsignedInt:kCVPixelFormatType_32BGRA]};

dispatch_queue_t queue;
queue = dispatch_queue_create("CameraQueue", NULL);
[output setSampleBufferDelegate:self queue:queue];

[session addOutput:output];

我注意到 kCVPixelFormatType 有一些值,有人知道哪个值适合获取原始 YUV420p 数据吗?

kCVPixelFormatType_420YpCbCr8Planar
kCVPixelFormatType_420YpCbCr8PlanarFullRange
kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange
kCVPixelFormatType_420YpCbCr8BiPlanarFullRange

可以是其中之一吗?

【问题讨论】:

    标签: ios camera ffmpeg rtmp yuv


    【解决方案1】:

    这取决于您想要获得哪个特定的 YUV420: Planar/Biplanar指内存中亮度和色度分量的排列方式,Planar表示每个分量都进入一个缓冲区,无论是否连续,Biplanar指向两个缓冲区,一个用于亮度,另一个用于对于色度,通常是交错的。 Planar 的示例是 YUV420 格式,Biplanar 的示例是 NV21NV12

    VideoRangeFullRange 指亮度分量的值,Video 指 [16,235] 可接受的级别,FullRange 指 [0,255]。这个令人困惑的协议来自 MPEG 标准 (see here)...

    【讨论】:

      猜你喜欢
      • 2020-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-03
      • 1970-01-01
      • 1970-01-01
      • 2016-06-26
      相关资源
      最近更新 更多