我有一个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是怎么工作的,或者我怎样才能从视频服务器上得到声音?
发布于 2012-05-15 09:37:40
我会学习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为您提供了这些开箱即用的机制。
发布于 2012-12-15 02:38:00
您可以使用https://net7mma.codeplex.com/
这是一个C#媒体服务器,它会让你得到每个RtpPacket,从那里你可以把它们放到你选择的解码器中,而不会让源码流陷入泥潭。
https://stackoverflow.com/questions/10592325
复制相似问题