我想通过网络连接发送视频流的帧,因此我实现了AVCaptureVideoDataOutputSampleBufferDelegate函数:
func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection)
我应该如何使用NWConnection函数将CMSampleBuffer转换为Data:
func send(content: Data?, contentContext: NWConnection.ContentContext = default, isComplete: Bool = default, completion: NWConnection.SendCompletion)
我用于联网的希望将Data作为其内容参数?
答案 0 :(得分:1)
您可能想在通过网络发送之前压缩视频帧,因为比你有可用的未压缩的视频帧,可能需要更多的带宽。而且,您将需要使用硬件压缩器来提高速度。
您可以使用the VideoToolbox framework访问硬件压缩器和解压缩器。
您应该观看WWDC 2014会议513,“Direct Access to Video Encoding and Decoding”。这是引言中的一句话:
伴随着这种情况,有时您有来自相机或其他地方的图像流,您想对其进行压缩,但可以直接访问这些压缩的样本缓冲区,以便可以将其发送出去。网络或随他们喜欢做什么。
可以在找到所述会话的转录ASCIIwwdc