gpt4 book ai didi

ios - CMSampleBuffer 到 Swift 中的字节数组

转载 作者:可可西里 更新时间:2023-10-31 23:44:14 25 4
gpt4 key购买 nike

我正在尝试为多点连接应用程序实现视频流。捕获的帧将由 VTCompressionSession 压缩,并且正在调用我的回调。

现在我的 CMSamplebuffer 包含一个 CMBlockBuffer,我可以提取 NALU 等,就像这个答案中提到的 How to use VideoToolbox to decompress H.264 video stream但我正在寻找一种不同的方法。

是否可以将 CMSampleBuffer 的整个字节写入 UInt8 数组?我能够获取 CMSampleBuffer 的指针,但如何计算出长度?

抱歉我的英语不好,如果有任何问题请告诉我,这是我的第一篇文章。谢谢你

最佳答案

这是我使用的代码

private func bufferToUInt(sampleBuffer: CMSampleBuffer) -> [UInt8] {
let imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer)!

CVPixelBufferLockBaseAddress(imageBuffer, CVPixelBufferLockFlags(rawValue: 0))
let byterPerRow = CVPixelBufferGetBytesPerRow(imageBuffer)
let height = CVPixelBufferGetHeight(imageBuffer)
let srcBuff = CVPixelBufferGetBaseAddress(imageBuffer)

let data = NSData(bytes: srcBuff, length: byterPerRow * height)
CVPixelBufferUnlockBaseAddress(imageBuffer, CVPixelBufferLockFlags(rawValue: 0))

return [UInt8].init(repeating: 0, count: data.length / MemoryLayout<UInt8>.size)
}

关于ios - CMSampleBuffer 到 Swift 中的字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35425836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com