从视频服务器 c# 流式传输音频
本文关键字:传输 音频 视频 视频服务 服务器 | 更新日期: 2023-09-27 18:34:13
>我有一个 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音频:5558RTCP(视频(: 5557音频: 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 为您提供开箱即用的这些机制。
您可以使用 https://net7mma.codeplex.com/
它是一个C#媒体服务器,它将为您提供每个RtpPacket,并从那里将它们发送到您选择的解码器,而不会使源流陷入困境。