gpt4 book ai didi

audio - 互联网广播如何传输声音?

转载 作者:行者123 更新时间:2023-12-03 01:54:29 25 4
gpt4 key购买 nike

我将制作互联网广播播放器程序,但要做到这一点,我需要知道声音是如何流式传输的。我在Wikipedia上发现UDP协议(protocol)可用于流式传输。我还发现可以使用http,但是我不确定这是否正确。

流音频的常用方法/协议(protocol)有哪些?在哪里可以查看互联网广播电台如何传输音频? (http://radio17.pl/sluchaj)

最佳答案

I found on Wikipedia that UDP protocol can be used for streaming. I've also discovered that it's possible to use http



是的,这是真的。传统的电话应用程序使用UDP,因为它避免了确保可靠连接的开销,从而稍微降低了网络开销。电话技术要求低延迟和有效利用带宽,但并不要求通过有线发送的每个比特都是准确的。 (如果语音破裂一秒钟,我们仍然可以理解有人说的话,因为单词分散在许多音频帧中。对于较长时间的腐败或辍学,我们仍然可以根据上下文线索进行交流。降低延迟,而不是确保声音能够100%准确地再现。)

但是,互联网广播式流传输不需要极低的延迟。实际上,在没有听众注意的情况下,最终用户在编码​​器和播放之间延迟20秒或更长时间并不少见。这不是双向对话,因此延迟无关紧要。音质确实如此。

像MP3这样的常见音乐编解码器不能很好地容忍流损坏。此外,我们不希望我们的音乐经常消失或出现毛刺现象。在这种情况下,TCP连接是最好的,它可以确保按顺序传送所有数据包,并有合理的保证不会在此过程中发生数据损坏。

HTTP是在TCP上运行的非常常见的协议(protocol)。它具有足够的通用性,使其非常适合承载流数据……就像其他任何单向数据一样。在90年代后期,Nullsoft的开发人员在被黑客入侵的,某种程度上与HTTP兼容的服务器SHOUTcast上实现了流传输。与开源替代程序Icecast一起,它变得非常流行。开发人员发现,这比当时的专有替代产品(例如RealPlayer)要容易得多。我怀疑这是SHOUTcast / Icecast如此受欢迎的原因之一。如今,有许多与HTTP兼容的服务器。

What are the commonly used methods/protocols to stream audio?



最常见的是HTTP,RTMP和HLS。我们在上面讨论了HTTP。

RTMP是为Flash开发的协议(protocol),但现在已由许多服务器实现。 RTMP提供了更多的流功能,例如自适应比特率。这些功能是以复杂性为代价的。此外,浏览器本身不支持RTMP。要在浏览器中播放RTMP流,您需要基于Flash的播放器或MediaSourceExtensions支持,您可以在其中从JavaScript中的RTMP对音频流进行解复用。 (可以在许多可以购买的现成JavaScript播放器中实现,但与HTTP相比,它限制了浏览器的兼容性。)

HLS(HTTP实时流)实际上不是网络协议(protocol),而是更多用于使用HTTP的架构。 HLS无需使用特殊的流HTTP服务器,而是通过记录块(例如每次3秒钟)并将其通过任何常规方式(例如SFTP)上传到正常的Web服务器来工作。除了这些块之外,还有一个播放列表文件(标准M3U8格式,注释中有一些其他信息)指向最新的块。播放器就像下载其他文件一样下载这些块,然后端对端播放它们。 HLS的优点是您可以使用任何HTTP CDN,并且在流式传输时会自动记录该流。此外,类似于RTMP的自适应比特率,客户端可以选择不同的比特率中间流来适应不断变化的网络条件。最大的缺点是开销。 HTTP请求中有很多浪费的数据。同样,像RTMP一样,HLS在大多数浏览器中都不是本机可播放的,因此必须使用Flash或MediasourceExtensions对其进行修改。

And where can I check how the audio is streamed by internet radio station?



最简单的方法是启动Fiddler之类的工具,以拦截浏览器和服务器之间的所有请求。您可以使用浏览器开发工具,但是如果站点使用Flash,则不一定准确。 Fiddler将拦截HTTP和HLS请求。

要查看所有请求数据,请使用Wireshark之​​类的工具。这将显示通过网络发送的所有流量。缺点是解码HTTPS困难,因此您可能会错过一些东西。 (幸运的是,目前大多数流媒体都不使用HTTPS。)

关于audio - 互联网广播如何传输声音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36670382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com