组播/UDP 路由器
我正在寻找如何做多播(视频流)路由器,具有以下要求:
- 以 3-30Mbps(vlan 转发)接收和发送多播流
- in-ram(或存储)延迟以补偿网络拥塞
- TCP 隧道(UDP 到 TCP反之亦然)
- 输出 UDP 流的速率整形,TCP 隧道的抖动高达 1 秒
- ,多宿主网络支持
- 3-30Mbits 的数百个流
我做了广泛的研究,但找不到任何网络或视频广播产品实际上符合这些要求。
我已经实现了 C linux 应用程序,它对单个流执行上述操作,但现在我需要添加 Web 界面、多流支持等,所以我想知道是否有一些东西可以以适合的质量和可靠性来完成上述操作视频广播,就像某种产品? 在 C 中做到这一点并不容易,所以我想知道是否有任何更高级别的语言可以匹配性能? perl、python、java 会是一个不错的选择吗?
我如何构建这种软件?我目前正在使用运行带有 RT 内核的 Redhat 的 C 应用程序,具有命令行界面和单流支持。
我想做一个可以 24/7 运行 100 个流的应用程序(使用带有 64GB RAM 的 8 或 16 核系统),并且可以使用命令行或 Web 界面轻松进行动态配置。
我找不到比当前 Redhat RT 内核和简单的 C 用户空间应用程序更好的选择。这似乎是最好、最简单的选择。
I am looking how to do multicast (video streams) router, with the following requirements:
- receiving and sending multicast streams at 3-30Mbps (vlan forwarding)
- in-ram (or storage) delaying to compensate for network congestion
- TCP tunneling (UDP to TCP and vice-versa)
- rate shaping of output UDP streams with up to 1 second jitter
- for TCP tunneling, multi-homed network support
- hundreds of streams at 3-30Mbits
I have did extensive research and I could not find any networking or video broadcast product actually matching these requirements.
I have implemented C linux app which does the above for a single stream, but now I would need to add web interface, multiple stream support etc, so I was wondering if there is something which can accomplish the above with the quality and reliability suitable for the video broadcast, like some kind of product?
Doing this in C is not easy so I was wondering if there are any higher level languages which could match the performance? Would perl, python, java would be a good choice?
How do I architect this kind of software? I am currently using C application running Redhat with RT kernel with command line interface and single stream support.
I want to do application which would run 100 streams 24/7 (using 8 or 16 core system with 64GB RAM) and would be easy to configure it on the fly using either command line or web interface.
I just cant see any better option than current Redhat RT kernel and simple C userspace app. It seems to be the best and easiest option to go with.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
构建此类应用程序的通常划分是使用 C 代码完成高性能部分,并使用 Python 或 Ruby 等高级语言编写低性能组件,例如用于配置的用户界面等。用高级语言很难达到性能要求,但用 C 语言编写 Web 配置系统却是不必要的自虐。
The usual division in architecting such an application is to have the high performance parts done by C code and to write low performance components, like a user interface for configuration and such, in a higher level language like Python or Ruby or what have you. It would be hard to achieve the performance requirements in a high level language, but it would be unnecessarily masochistic to write a web configuration system in C.