我有一个IP:192.168.1.XX的视频服务器
它具有3种可能的格式JPEG,MPEG-4或H.264
视频服务器正在实时广播视频(带有音频)
我使用AFORGE lib播放视频没有问题
但我还需要流音频
视频服务器具有多种协议:HTTP,RTSP,RTP,RTCP
根据用户手册,RTSP是我用来获取MPEG-4(音频和视频)的协议,但是我没有找到任何要在C#上通过RTSP进行流传输的内容,因此我尝试单独传输音频和视频
端口是:
RTSP:554
实时视频(视频):5556
实时音频(音频):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供您使用。
更多信息可以在这里找到:
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负载和传输-更不用说处理COM了-而GStreamer则为您提供了开箱即用的机制。
关于c# - 从视频服务器C#流音频,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10592325/