14

我正在编写一个基于 C#.Net 的应用程序,它需要将视频和音频流发布到 Red 5 媒体服务器,并在本地网络上的另一个应用程序中检索相同的发布流,然后在互联网上检索。

简而言之,我打算使用Red5作为两个客户端之间传输视频和音频数据的中介或代理。

[客户端 1] <- 视频和音频 -> <- 视频和音频 -> [客户端 2]

我正在寻找 RTMP 协议的 .NET 实现(库),它可以帮助我将流发布到媒体服务器并重新发布已发布的流并在我的应用程序上播放它。

我搜索了 SOF 并得出了以下选项:

  • Borrocoli RTMP 客户端库
  • FlourineFx.NET
  • WebORb.Net

每个都有一些限制。

  1. Borrocoli RTMP 库仅支持音频/视频流的回放,但没有将视频/音频流发布到媒体服务器的选项。我玩过图书馆并看过它的例子,但无济于事。如果我错了,请纠正我。

  2. FlourinFx.Net 表示支持 NetStream.Publish()、NetStream.AttachAudio() 和 NetStream.AttachVideo() 方法。但是在最新的代码快照中,没有这样的东西。他们的生产版本也是如此。NetStream 类没有规定的方法和/或没有任何方法可以帮助将流内容发布到媒体服务器。

  3. WebOrb.Net:我还没有研究过,但从他们的许可页面可以看出,免费版本仅适用于 IIS。企业版似乎拥有发布流媒体视频的所有支持...

问题:

  1. 是否可以将 WebOrb.Net 库与 Red5 Media Server 结合使用?
  2. 免费版是否允许我将音频和视频发布到 Red5 媒体服务器?
  3. 如果上述问题无效,我可以使用其他免费替代方案吗?
4

3 回答 3

2

You can use ffmpeg to send stream to Red 5 MediaServer.. Set the source video to ffmpeg and the output to rtmp of red5, something like this:

ffmpeg -re -i file.mp4 -c copy -f flv rtmp://server/live/streamName

See this answer for an examples to integrate ffmpeg in c#.

于 2014-11-05T13:07:04.317 回答
0

您可以通过 RTMP 协议使用 flex 和 .net 将 weborb.lib 用于点对点视频流。您可以用于点对点流。您的过程可以通过以下方式完成... 1.开发 Flex 客户端代码连接到服务器并订阅以接收带有 CPU 读数的服务器端更新。该代码还包括一个图表以可视化接收到的数据。2. 插入WebORB的服务器端“应用程序处理程序”,轮询CPU并将数据传递给客户端。它会工作尝试。

于 2014-05-28T10:47:55.437 回答
0

使用 RTMPdump 的 librtmp。它是用 C 编写的,但您应该能够轻松地为它编写 C# 包装器。

于 2014-12-06T18:35:12.793 回答