0

我正在使用 Red5 iOS 代码和他们的 CustomVideoSource 类。成功通过服务器发布流,但显示为黑白。不是实际的彩色流。如果有人遇到过这个问题,请帮我找到解决方案。请找到代码示例

  let contextImage = McamImage.shared.image
        let image: CGImage? = contextImage.cgImage
        let dataProvider: CGDataProvider? = image?.dataProvider
        let data: CFData? = dataProvider?.data


        if (data != nil) {

        let baseAddress = CFDataGetBytePtr(data!)
        //contextImage = nil

        /*
         * We own the copied CFData which will back the CVPixelBuffer, thus the data's lifetime is bound to the buffer.
         * We will use a CVPixelBufferReleaseBytesCallback callback in order to release the CFData when the buffer dies.
         */
        let unmanagedData = Unmanaged<CFData>.passRetained(data!)
        var pixelBuffer: CVPixelBuffer?
        var result = CVPixelBufferCreateWithBytes(nil,
                                                  (image?.width)!,
                                                  (image?.height)!,
                                                  kCVPixelFormatType_24RGB,
                                                  UnsafeMutableRawPointer( mutating: baseAddress!),
                                                  (image?.bytesPerRow)!,
                                                  { releaseContext, baseAddress in
                                                    let contextData = Unmanaged<CFData>.fromOpaque(releaseContext!)
                                                    contextData.release()
        },
                                                  unmanagedData.toOpaque(),
                                                  nil,
                                                  &pixelBuffer)

谢谢!

4

0 回答 0