美文网首页
读取和写入媒体-捕捉录制的高级方法

读取和写入媒体-捕捉录制的高级方法

作者: 浪呀么浪打浪 | 来源:发表于2020-07-24 11:12 被阅读0次

    将AVCaptureVideoDataOutput捕捉的CVPixelBuffer对象作为OpenGLES的贴图来呈现。使用AVCaptureVideoDataOutput的一个问题在于会失去AVCaptureMovieFileOutput来记录输出的便捷性。解决办法:使用AVAssetWriter创建一个与AVCaptureMovieFileOutput类似的可重用类从高级捕捉输出中记录输出。

    公式:

    kCVPixelFormatType_{长度|序列}{颜色空间}{Planar|BiPlanar}{VideoRange|FullRange}

    Planar: 平面;BiPlanar:双平面

    平面/双平面主要应用在yuv上。uv分开存储的为Planar,反之是BiPlanar。所以,kCVPixelFormatType_420YpCbCr8PlanarFullRange是420p,kCVPixelFormatType_420YpCbCr8BiPlanarFullRange是nv12.

    VideoRange和FullRange的区别在于数值的范围,FullRange比VideoRange大一些,颜色也更丰富一些。

    如果没有指定颜色范围,默认都是FullRange。但有一个除外:kCVPixelFormatType_420YpCbCr8Planar。因为有一个kCVPixelFormatType_420YpCbCr8PlanarFullRange定义,所以kCVPixelFormatType_420YpCbCr8Planar理论上应该是VideoRange (参考链接

    颜色空间对应的就是它在内存中的顺序。比如kCVPixelFormatType_32BGRA,内存中的顺序是 B G R A B G R A...。

    有一些特别的,比如kCVPixelFormatType_16BE555,这里需要用BE或LE指定字节顺序。

    有的颜色空间后面还带有一个数字,用于表示bit长度。

    相关文章

      网友评论

          本文标题:读取和写入媒体-捕捉录制的高级方法

          本文链接:https://www.haomeiwen.com/subject/lfozohtx.html