如何在 Mac OS-X 应用程序中显示通过 UDP 传输的 MJPEG 流
How to display MJPEG stream transmitted via UDP in a Mac OS-X application
我有一个摄像头,它通过 wifi 将 mjpeg 帧作为 UDP 数据包发送,我想在我的 max os-x 应用程序中显示。我的应用程序是用 objective-c 编写的,我正在尝试使用 AVFoundation 类 来显示实时流。使用 http get & post 请求控制摄像头。
我希望相机被识别为 AVCaptureDevice,因为我可以轻松显示来自不同 AVCaptureDevice 的流。由于流是通过 wifi 传输的,因此它不会被识别为 AVCaptureDevice。
有什么方法可以创建我自己的 AVCaptureDevice 来控制这个摄像头并显示视频流吗?
在对摄像头发送的数据包进行大量研究后,我得出结论,它不以任何标准协议(如 RTP)进行通信。我最终做的是对数据包进行逆向工程以了解有关其内容的更多信息。
我确认它确实通过 UDP 数据包发送 jpeg 图像。发送单个 jpeg 需要多个 UDP 数据包。我在 UDP 端口上侦听数据包并将它们 assemble 放入单个图像帧中。在我有一个框架之后,我从中创建了一个 NSImage 并将其显示在 NSImageView 中。效果很好。
如果有人感兴趣,相机是奥林巴斯 TG-4。我正在编写组件来控制设置、快门等
我有一个摄像头,它通过 wifi 将 mjpeg 帧作为 UDP 数据包发送,我想在我的 max os-x 应用程序中显示。我的应用程序是用 objective-c 编写的,我正在尝试使用 AVFoundation 类 来显示实时流。使用 http get & post 请求控制摄像头。
我希望相机被识别为 AVCaptureDevice,因为我可以轻松显示来自不同 AVCaptureDevice 的流。由于流是通过 wifi 传输的,因此它不会被识别为 AVCaptureDevice。
有什么方法可以创建我自己的 AVCaptureDevice 来控制这个摄像头并显示视频流吗?
在对摄像头发送的数据包进行大量研究后,我得出结论,它不以任何标准协议(如 RTP)进行通信。我最终做的是对数据包进行逆向工程以了解有关其内容的更多信息。
我确认它确实通过 UDP 数据包发送 jpeg 图像。发送单个 jpeg 需要多个 UDP 数据包。我在 UDP 端口上侦听数据包并将它们 assemble 放入单个图像帧中。在我有一个框架之后,我从中创建了一个 NSImage 并将其显示在 NSImageView 中。效果很好。
如果有人感兴趣,相机是奥林巴斯 TG-4。我正在编写组件来控制设置、快门等