我有一台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如何工作或如何从视频服务器获取声音?
答案 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的一个很好的示例:
我使用直接显示过滤器做了这种事情,但它涉及的更多。您通常必须手动处理rtp payloading和传输 - 更不用说处理COM - 而GStreamer为您提供开箱即用的机制。
答案 1 :(得分:0)
您可以使用https://net7mma.codeplex.com/
它是一个C#媒体服务器,它将为您提供每个RtpPacket,从那里您可以将它们连接到您选择的解码器,而不会阻碍源流。