这正是SHOUTcast/Icecast及兼容服务器所做的。你只需要将音频数据复制到每个客户端即可。
您可以使用普通的HTTP作为流媒体协议。客户端不需要知道或关心他们正在直播流。一个简单的音频元素就可以工作:
<audio src="https://stream.example.com/some-stream" preload="none" controls></audio>
Input Stream -> Buffer(s) -> Clients HTTP Responses
实际上,如果您愿意,甚至可以省略缓冲部分。当数据从编解码器中传入时,您可以将其直接写入所有客户端。缓冲区对于确保快速启动播放非常有用。大多数客户端都需要一些缓冲数据来嗅探流类型和兼容性,并填充自己的播放缓冲区以实现平滑流媒体。
这就是全部内容!