从广播中获取比特率

本文关键字:比特率 获取 广播 | 更新日期: 2023-09-27 18:08:36

要从广播中获取比特率,人们过去常常从元数据头中获取比特率,如下例所示:

icy-notice1: This stream requires 
<A href="http://www.winamp.com/" target=_blank>Winamp</A> 
icy-notice2: SHOUTcast Distributed Network Audio Server/Linux v1.9.5
icy-name: RadioABF.net - Paris Electro Spirit Live From FRANCE
icy-genre: Techno House Electronic
icy-url: <A href="http://www.radioabf.net/" target=blank>http://www.radioabf.net/</A>
content-type: audio/mpeg
icy-pub: 1
icy-metaint: 32768

icy-br: 160

但是有些广播没有给出这个信息

我的问题是如何从广播中获得比特率

从广播中获取比特率

获得比特率的唯一方法是解码音频流。

虽然SHOUTcast服务器在它们的报头中给出了这个提示,但不能保证它是准确的,因为比特率可能会改变。如您所见,其他通过HTTP发送流的服务器并不总是遵循SHOUTcast的报头模式。

您也不能简单地测量接收数据的速度,因为许多服务器最初发送大缓冲区以填充客户端缓冲区并测试连接速度。

如果你不能解码流,许多编解码器将把比特率在他们的帧头。对于MPEG,帧报头中第三个字节的前四位给出了比特率。

shooutcast V1有一个包含比特率(和其他)信息的特殊页面。让我们假设你的广播正在播放http://some-streaming-server:8000那么这个页面的url将是:http://some-streaming-server: 8000/7.html

该页面的正文看起来像这样:

 <HTML><meta http-equiv="Pragma" content="no-cache"></head<body>4,1,36,80,4,64,Artist - title</body></html>

用逗号分隔文本,你将得到:

  • 当前听众
  • <
  • 流状态/gh>
  • 峰值听众
  • 监听器的最大数目(从服务器开始)
  • 独特的听众
  • 比特率
  • 歌曲标题