首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RTSP视频流的解复用和代理

RTSP视频流的解复用和代理
EN

Stack Overflow用户
提问于 2019-08-12 07:31:59
回答 1查看 651关注 0票数 1

我有一个问题,必须连接多个客户端到RTSP视频流,而不超载原来的流媒体摄像头带宽。基本上,我想要的只是将只维护到RTSP流式摄像机/服务器的一个连接,但允许N个客户端维护到它的n个连接:

代码语言:javascript
复制
                                             +--->[RTSP client 1]
[input RT(S)P stream]--->[? magic thing ?]---+--->[RTSP client 2]
                                             +--->[...]
                                             +--->[RTSP client N]

是什么软件可以做到这一点,和/或有哪些库,我可以用在一起黑客呢?

我已经找到了一个(也只有一个解决方案),来自LIVE555的代理服务器组件,但它至少对我来说有一个停止显示的缺点:在所有上都不能处理输入流的随机断开和暂停(这是一个要求,这需要与非常糟糕的相机一起工作,RT(S)P的实现(偶尔重新启动)可能会出错,而且连接非常脆弱--每10-15分钟就可以考虑3G连接,时间可能是1-2秒)。

我想知道,可能是在寻找错误的东西,这个过程的错误名称,错误的关键字等等,因为我只找到了一个可用的软件,即LIVE555 Proxy --至少有人能为我指出一个正确的方向吗?

(注意:我更喜欢一个库或一些开源的东西,因为我还需要在上面构建一些额外的东西,比如可能暂时用图像占位符的流替换feed,或者在连接下降时使用另一个“备份”流等。但是“只工作”设备现在已经足够好了,一旦我解决了代理解复用问题,其他我可以作为单独服务添加的问题。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-15 08:11:05

我不知道有比live555代理更好的解决方案。唯一的限制,我记得是代理AMR音频,但我想不起来是什么问题。

是什么软件可以做到这一点,和/或有哪些库,我可以用在一起黑客呢?

proxyServer是构建在liveMedia代码基础之上的代理。只需在上面构建您自己的代理服务器即可。您可以使用proxyServer作为起点。

它根本不能很好地处理输入流的随机断开和暂停(这是一项要求,这需要与非常糟糕的摄像机一起工作,可能会有错误的RT(S)P实现,偶尔会重新启动,而且连接非常脆弱-每10-15分钟就有3G连接,可能需要1-2秒)。

您可以很容易地将自己的定期任务添加到单线程liveMedia事件循环中,该循环在摄像机重新启动、网络中断等之后处理RTSP重新连接。我以前使用过liveMedia代码来处理类似的问题。确保你符合LGPL牌照的要求。

从playCommon.cpp中live\testProgs目录中的代码示例

代码语言:javascript
复制
    int64_t uSecsToDelay = (int64_t)(secondsToDelay*1000000.0);
    sessionTimerTask = env->taskScheduler().scheduleDelayedTask(uSecsToDelay, (TaskFunc*)sessionTimerHandler, (void*)NULL);

其中sessionTimerHandler被声明为

代码语言:javascript
复制
void sessionTimerHandler(void* clientData);

LiveMedia基本上定义了一个回调机制。搜索TaskToken,您将在源代码中找到更多的示例。如果您在Windows上,请尝试找到一个基于CMake的live555分支来生成VS解决方案。在linux上,有足够的其他工具。

我在想,也许我在寻找错误的东西,这个过程的错误名称,错误的关键字等等,因为我只找到了一个可用的软件,即LIVE555代理--至少有人能为我找到解决这个问题的正确方向吗?

您正在寻找一个RTSP代理,没有更好的一个,我知道。你的搜索词没有什么问题,只是没有太多的开源(如果有的话)。不确定是否有商业变体。

live555代码是

  • 开放源码(LGPL)
  • 交叉平台
  • 尝试和测试(live555的不同用户已经发现/修复了许多问题)
  • 积极维护
  • 很容易扩展
  • 有通过邮件列表的支持。reasonable (作者live555)对邮件列表上的合理查询有相当快的响应时间。只是在投寄时不要使用gmail地址:-)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57457178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档