Video streaming RTSP视频流的解复用和代理

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视频流,而不会使原始流媒体摄像机的带宽过载。基本上,我想要的东西将只保持一个到RTSP流媒体摄像机/服务器的连接,但允许N个客户端保持N个到它的连接:

                                             +--->[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最新答案