C# 来自视频服务器c的流式音频#

C# 来自视频服务器c的流式音频#,c#,streaming,rtsp,rtp,C#,Streaming,Rtsp,Rtp,我有一个IP地址为192.168.1.XX的视频服务器 它有3种可能的格式JPEG、MPEG-4或H.264 视频服务器正在实时播放视频(带音频) 我用一个大库来播放视频没有问题 但我还需要流式播放音频 视频服务器有几种协议:HTTP、RTSP、RTP、RTCP 根据用户手册,RTSP是我获取MPEG-4(音频和视频)时应该使用的协议,但我在C#上没有找到任何可以通过RTSP进行流传输的内容,所以我尝试将音频和视频分开 这些港口包括: RTSP:554 RTP(视频):5556 RTP(音频):

我有一个IP地址为192.168.1.XX的视频服务器 它有3种可能的格式JPEG、MPEG-4或H.264

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

我用一个大库来播放视频没有问题 但我还需要流式播放音频

视频服务器有几种协议:HTTP、RTSP、RTP、RTCP

根据用户手册,RTSP是我获取MPEG-4(音频和视频)时应该使用的协议,但我在C#上没有找到任何可以通过RTSP进行流传输的内容,所以我尝试将音频和视频分开

这些港口包括:

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


有没有人知道RTP是如何工作的,或者我如何从视频服务器获取声音的?

我会学习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供您使用

更多信息可在此处找到:

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

我用direct show过滤器做过类似的事情,但它涉及的内容要多得多。您通常必须手动处理rtp付费加载和传输——更不用说处理COM了——而GStreamer为您提供了这些现成的机制。

您可以使用


这是一个C#Media服务器,它将为您提供每个RtpPacket,从那里您可以将它们传送到您选择的解码器中,所有这些都不会使源流陷入困境。

谢谢,我来看看=D