我一直在尝试在 Objective-C iOS-13 应用程序中使用 NDI SDK 4.5 从 iPhone 设备广播相机捕获。
我的示例代码在公共 Github 存储库中:https : //github.com/bharatbiswal/CameraExampleObjectiveC
以下是我发送CMSampleBufferRefsampleBuffer 的方式:
CVPixelBufferRef pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
NDIlib_video_frame_v2_t video_frame;
video_frame.xres = VIDEO_CAPTURE_WIDTH;
video_frame.yres = VIDEO_CAPTURE_HEIGHT;
video_frame.FourCC = NDIlib_FourCC_type_UYVY; // kCVPixelFormatType_420YpCbCr8BiPlanarFullRange
video_frame.line_stride_in_bytes = VIDEO_CAPTURE_WIDTH * VIDEO_CAPTURE_PIXEL_SIZE;
video_frame.p_data = CVPixelBufferGetBaseAddress(pixelBuffer);
NDIlib_send_send_video_v2(self.my_ndi_send, &video_frame);
Run Code Online (Sandbox Code Playgroud)
我一直在使用“ NewTek NDI Video Monitor ”从网络接收视频。但是,即使它显示为源,视频也不会播放。
有没有人在 iOS 中使用 NDI SDK 来构建广播发送器或接收器功能?请帮忙。
小智 5
您应该kCVPixelFormatType_32BGRA在视频设置中使用。并NDIlib_FourCC_type_BGRA作为 NDIlib_video_frame_v2_t 中的 FourCC。
你确定你的吗VIDEO_CAPTURE_PIXEL_SIZE?
当我在 Macos 上使用 NDI 时,我遇到了同样的黑屏问题,这是由于行距错误造成的。
也许这可以帮助:https://developer.apple.com/documentation/corevideo/1456964-cvpixelbuffergetbytesperrow ?language=objc ?
此外,核心视频和 NDI 的像素格式似乎不匹配。
在核心视频端,您使用Bi-Planar Y'CbCr 8 位 4:2:0,在 NDI 端,您使用NDIlib_FourCC_type_UYVYY'CbCr 4:2:2。
我在 NDI 端找不到任何Bi-Planar Y'CbCr 8 位 4:2:0 像素格式。
使用以下组合您可能会更幸运:
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
709 次 |
| 最近记录: |