从视频服务器流式传输音频c#

时间:2012-05-14 23:25:22

标签: c# streaming rtsp rtp

我有一台IP:192.168.1.XX的视频服务器 它有3种可能的格式JPEG,MPEG-4或H.264

视频服务器正在实时播放视频(带音频)

使用AFORGE lib播放视频时没问题 但我还需要传输音频

视频服务器有多种协议:HTTP,RTSP,RTP,RTCP

根据用户手册,RTSP是我应该用来获取MPEG-4(音频和视频)的协议,但是我没有在C#上通过RTSP发现任何内容,所以我试图分别传输音频和视频

端口是:

RTSP:554 RTP(视频):5556 RTP(音频):5558 RTCP(视频):5557 RTCP(音频):5559

是否有人知道RTP如何工作或如何从视频服务器获取声音?

2 个答案:

答案 0 :(得分:1)

我会学习gstreamer。我假设您正在使用Windows,因为您在C#中这样做。它有一个相当稳定的Windows端口,带有一个漂亮的.net包装器。如果您不使用Windows,那么gstreamer肯定是您最好的选择。

在gstreamer中,您最有可能使用如下管道:

your video src -> x264enc or ffenc_mpv4 -> rtph264pay or rtpmp4vpay -> udpsink

your audio src  -> ffenc_aac or preferably a lower latency codec like mULaw -> rtppay -> udpsink

等等。这是非常容易使用。如果你想实际管理一个rtp会话,他们甚至有一个很好的rtpbin供你使用。

可在此处找到更多信息:

http://gstreamer.freedesktop.org/

以下是rtp的一个很好的示例:

http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-gstrtpbin.html

我使用直接显示过滤器做了这种事情,但它涉及的更多。您通常必须手动处理rtp payloading和传输 - 更不用说处理COM - 而GStreamer为您提供开箱即用的机制。

答案 1 :(得分:0)

您可以使用https://net7mma.codeplex.com/

它是一个C#媒体服务器,它将为您提供每个RtpPacket,从那里您可以将它们连接到您选择的解码器,而不会阻碍源流。