C# 如何制作音频直播流媒体

C# 如何制作音频直播流媒体,c#,.net,audio,stream,live,C#,.net,Audio,Stream,Live,我需要将音频内容广播到网络,接收并在浏览器“动态”中播放。音频内容只是mp3文件的列表。在客户端,它应该看起来像没有状态的无穷无尽的音频流。比如YouTube直播流。或者smth喜欢在线广播。 但我真的什么都不知道。有人能帮我吗?它是如何工作的,使用哪个协议发送和接收数据?有什么能帮我的吗。 在最好的情况下,我正在为.NET寻找一个解决方案,但如果有任何可以帮助我的东西,我都会很高兴,至少要了解它的总体工作原理。 谢谢。一种方法是借助ffmpeg 您可以使用ffmpeg创建DASH或HLS播放列

我需要将音频内容广播到网络,接收并在浏览器“动态”中播放。音频内容只是mp3文件的列表。在客户端,它应该看起来像没有状态的无穷无尽的音频流。比如YouTube直播流。或者smth喜欢在线广播。 但我真的什么都不知道。有人能帮我吗?它是如何工作的,使用哪个协议发送和接收数据?有什么能帮我的吗。 在最好的情况下,我正在为.NET寻找一个解决方案,但如果有任何可以帮助我的东西,我都会很高兴,至少要了解它的总体工作原理。
谢谢。

一种方法是借助ffmpeg

您可以使用ffmpeg创建DASH或HLS播放列表

FFMPEG还支持其他流媒体解决方案

要调用ffmpeg,必须找到与服务器运行的系统(windows、linux)兼容的二进制文件。下面是如何从C#启动外部进程:

要在浏览器中播放播放列表,可以使用VideoJS。它内置DASH和HLS支持:(也可以播放音频)

建立您的逻辑来管理/更新播放列表,然后您只需要创建可以为您的播放列表文件提供服务的HTTP服务。VideoJS将为您播放

如果您选择HLS,那么您可能应该阅读以下内容:

如果您选择DASH,请阅读以下内容:

另一种方法是使用开箱即用的解决方案,这些解决方案通常不是免费的:


DASH和HLS是流式播放现场音频/视频的最常用技术。这似乎是我真正想要的。谢谢。但万一我想暂停播放任何音频,然后在将来从我停下来的地方继续播放。因此,我需要对我的m3u8播放列表文件执行什么操作来“暂停”流媒体?然后执行恢复?在客户端,流媒体看起来应该正在播放,但没有播放。那么可以用HLS完成吗?另外,我说得对吗,在客户端,如果有任何更改,我需要通过js定期手动下载和更新我的播放列表?这是我需要的录像带,是吗?或者这将由浏览器/操作系统通过一个魔术来完成?是的,VideoJS将定期检查您的播放列表是否已更改。您可以配置videojs和播放列表更新,使其看起来像连续流。“暂停”可以通过多种方式实现,在流媒体服务器或客户端/浏览器上,或两者的某种组合上,可能使用信号器作为浏览器和服务器之间的通信通道。某些浏览器可能不允许您在没有用户交互的情况下使用自动播放功能:但不确定这是否适用于音频