美文网首页iOS技术文章iOS进阶
iOS VideoToolbox硬编H.265(HEVC)H.2

iOS VideoToolbox硬编H.265(HEVC)H.2

作者: 熊皮皮 | 来源:发表于2016-05-24 16:37 被阅读984次

    本文档描述Video Toolbox实现同步编码的办法。

    Video Toolbox在头文件描述了编码方式为异步,实际开发中也确实为异步。

    This function may be called asynchronously, on a different thread from the one that calls VTCompressionSessionEncodeFrame.

    然而,有些场合,我们希望使用同步处理。使用如pthread_mutex_t、dispatch_semaphore_t等方式在VTCompressionSessionEncodeFrame与编码回调函数中作线程同步并不理想,甚至导致死锁。GCD串行队列也并不像苹果说的那么好用,特别是预览播放器下快速接收网络数据包并解码,会堆积Block,性能反而没pthread好。

    NSRecursiveLock、OSSpinLockLock、Barrier等方式我没尝试。

    不过,我用另一个方式实现了同步编码,强制Video Toolbox发射出规定时间内的缓冲区的数据,配合semaphore即可。

    相关文章

      网友评论

      • Liusr:您好,楼主你遇到硬解码绿屏的问题没。
        熊皮皮:@Liu_sr 绿屏可能是SPS、PPS和编码数据没对应上。
      • 853883bec65f:能留下个联系方式么 请教个问题

      本文标题:iOS VideoToolbox硬编H.265(HEVC)H.2

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