Video streaming RTSP视频流的解复用和代理
我的问题是必须将多个客户端连接到RTSP视频流,而不会使原始流媒体摄像机的带宽过载。基本上,我想要的东西将只保持一个到RTSP流媒体摄像机/服务器的连接,但允许N个客户端保持N个到它的连接:Video streaming RTSP视频流的解复用和代理,video-streaming,rtsp,rtp,live555,rtsp-client,Video Streaming,Rtsp,Rtp,Live555,Rtsp Client,我的问题是必须将多个客户端连接到RTSP视频流,而不会使原始流媒体摄像机的带宽过载。基本上,我想要的东西将只保持一个到RTSP流媒体摄像机/服务器的连接,但允许N个客户端保持N个到它的连接: +--->[RTSP client 1] [input RT(S)P stream]--->[? magic thing ?]---+--->[RTSP client 2]
+--->[RTSP client 1]
[input RT(S)P stream]--->[? magic thing ?]---+--->[RTSP client 2]
+--->[...]
+--->[RTSP client N]
有什么软件可以做到这一点,和/或有什么库可以让我自己来破解ti
我已经找到了一个(而且只有一个解决方案),但是它有一个停止播放的缺点,至少对我来说:它根本不能很好地处理输入流的随机断开和暂停(这是一个要求,这需要与非常糟糕的摄像头一起工作,RT的实现可能有缺陷)P、 偶尔会重新启动,连接也很脆弱——想想3G连接每10-15分钟中断一次,持续1-2秒)
我想知道,也许我在搜索错误的东西,这个过程的错误名称,错误的关键字等。因为我只找到了一个可用的软件,即LIVE555 Proxy-至少有人能为我指出正确的方向来找到解决方案吗
(注意:我更喜欢一个库或一些开源的东西,因为我还需要在上面构建一些额外的东西,比如在连接断开时,可能会临时用图像占位符流或另一个“备份”流替换提要等。)但“只起作用”设备现在已经足够好了,一旦我解决了代理解复用问题,其他的我可以作为单独的服务添加。)我不知道还有比live555代理更好的解决方案。我记得唯一的限制是代理AMR-NB音频,但我想不起来问题是什么 有什么软件可以做到这一点,和/或有什么库可以让我自己来破解ti proxyServer是构建在代码库之上的代理。只需在上面构建自己的代理服务器。您可以使用proxyServer作为起点 它根本无法很好地处理输入流的随机断开和暂停(这是一个要求,这需要使用非常糟糕的摄像头,RT(S)p的实现可能有缺陷,偶尔会重新启动,并且连接非常脆弱——想想3G连接每10-15分钟中断一次,持续1-2秒) 您可以很容易地将自己的定期任务添加到单线程liveMedia事件循环中,该循环处理相机重新启动、网络中断等后的RTSP服务器重新连接。我以前使用liveMedia代码处理过类似问题。只要确保您遵守LGPL许可证要求即可 来自
live\testProgs
目录中playcomon.cpp的代码示例
int64_t uSecsToDelay = (int64_t)(secondsToDelay*1000000.0);
sessionTimerTask = env->taskScheduler().scheduleDelayedTask(uSecsToDelay, (TaskFunc*)sessionTimerHandler, (void*)NULL);
其中sessionTimerHandler声明为
void sessionTimerHandler(void* clientData);
LiveMedia基本上定义了一种回调机制。搜索TaskToken
,您将在源代码中找到更多示例。如果您使用的是Windows,请尝试查找基于CMake的live555分支以生成VS解决方案。在linux上,有足够的其他工具
我想知道,也许我在搜索错误的东西,这个过程的错误名称,错误的关键字等。因为我只找到了一个可用的软件,即LIVE555代理-有人至少能为我指出一个正确的方向来找到解决方案吗
您正在寻找一个RTSP代理,我知道没有比它更好的了。你的搜索词没有错,只是没有太多的开源(如果有的话)。不确定是否有商业车型
live555代码是
- 开源(LGPL)
- 跨平台
- 经过尝试和测试(live555的不同用户发现/修复了许多问题)
- 积极维护
- 扩展起来相当简单
- 通过邮件列表提供支持。Ross Finlayson(作者live555)对邮件列表上的合理查询有相当快的响应时间。发邮件时不要使用你的gmail地址:-)
将您自己的定期任务添加到单线程liveMedia事件循环中,该循环在相机重新启动后处理RTSP服务器重新连接
。。。我真的找不到一个开始的地方this@NeuronQ最新答案