所以我正在尝试创建一个流式传输音乐的 RTSP 服务器。
我不明白服务器如何播放音乐,不同的请求会得到当时正在播放的内容。
所以,整理我的问题:
1)服务器如何播放音乐文件?
2) 对服务器的请求如何获取当前正在播放的内容?
3)在请求音乐的客户端中播放音乐的响应是什么样的?
3 回答
首先: 阅读这个(RTSP),然后阅读这个(SDP),然后阅读这个(RTP)。然后你可以问更明智的问题。
它没有,服务器将音频数据的一小部分流式传输到客户端,告诉它何时播放每个部分。
没有这样的要求。如果需要,您可以拥有直播流的 URL,并在 RTSP DESCRIBE 请求中,告诉客户端当前正在播放什么。
阅读第一个(RTSP)文档,一切都在那里!你的问题的答案是这样的:
RTSP/1.0 200 OK CSeq:3 会话:123456 范围:npt=now-RTP-Info:url=trackID=1;seq=987654
但是要播放音乐,您将不得不做更多的事情来启动流会话。
你首先应该清楚什么是RTSP和RTP。实时流协议 (RTSP) 是一种网络控制协议,设计用于通信系统以控制流媒体服务器。大多数 RTSP 服务器使用实时传输协议 (RTP) 进行媒体流传输。RTP 使用 UDP 传送数据包流。尝试理解这些概念。
然后看看这个项目。 http://sourceforge.net/projects/unvedu/
这是我们大学开发的一个开源项目,用于通过UDP传输视频(MKV)和音频文件。
您还可以在此处@https://net7mma.codeplex.com/ 找到 RTP 和 RTSP 的 .Net 实现,其中包括 RTSP 客户端和服务器实现以及许多其他有用的实用程序,例如许多流行的数字媒体容器格式的实现。
该方案采用模块化设计,性能优于目前的ffmpeg或libav。