繁体   English   中英

在 Windows 上通过 Live555 服务一个直播 OpenCV H.264 stream

[英]Service a live OpenCV H.264 stream through Live555 on Windows

正如标题所说,这完全是新的。 我正在尝试使用从网络摄像头捕获的 H.264 从 OpenCV 到 Live555 提供 stream 。

我试过类似的东西:

 #define LOCALADDRESS "rtsp://localhost:8081"   // Address media is served
 #define FOURCCCODEC CV_FOURCC('H','2','6','4') // H.264 codec
 #define FPS 25                                // Frame rate things run at
 m_writer = cvCreateVideoWriter(LOCALADDRESS, FOURCCCODEC, FPS, cvSize(VIDEOWIDTH, VIDEOHEIGHT));

在读取 rtsp stream 时,类似地完成:

CvCapture *capture = cvCreateFileCapture(LOCALADDRESS);

这不起作用,所以我转向 Live555。 如何提供以 H.264 编码的 CvCapture 以供 Live555 提供服务? 似乎没有一种严格的方式来提供从一个到另一个的字节流,或者我可能遗漏了一些东西。

我真的没有一个直截了当的方法。 当然,不到几百行代码就不会发生任何事情。

我假设您想使用按需 RTSP 服务器(这是服务器就坐在那里,等待客户端连接,然后在客户端建立连接并发出请求时开始流式传输)? 如果是这样, Live555 常见问题解答中的此项适用

然而,Live555 是一个奇怪的(可能被误导了?)库,所以不幸的是它比这更复杂一些。 Live555 使用带有事件循环的单线程操作,因此您要做的是将原始字节流推入缓冲区或队列,然后在您的子会话 class 中用于流式传输 H.264,您将检查并查看是否队列中有可用数据,如果有,请将其传递。 如果没有,请在几毫秒内安排另一次检查。 在将它们传递给 live555 之前,您还需要去除任何 NALU 标识符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM