从shoutcast获取比特率

yquo 发布于 2019-03-09 audio 最后更新 2019-03-09 14:39 0 浏览

为了获得shoutcast的比特率,人们习惯从元数据头中获取比特率,如下例所示:

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不提供这些信息 我的问题是如何从shoutcast获得比特率?
已邀请:

ysunt

赞同来自:

获得比特率的唯一真正方法是解码音频流。 虽然SHOUTcast服务器在其标头中提供此提示,但由于比特率可能会发生变化,因此无法保证其准确性。正如您所见,通过HTTP发送流的其他服务器并不总是遵循SHOUTcast所做的标头模式。 您不能简单地测量接收数据的速度,因为许多服务器最初发送大缓冲区以填充客户端缓冲区并测试连接速度。 如果您无法对流进行解码,则许多编解码器会将该比特率放入其帧头中。对于MPEG,the first four bits of the third byte in the frame header give you the bitrate

xnam

赞同来自:

Shoutcast V1有一个包含比特率(和其他)信息的特殊页面。 让我们说你的shoutcast正在运行 http://some-streaming-server:8000 然后这个页面的网址将是: 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>
用逗号分隔该文本,您将获得:
  • 当前听众
  • 流状态
  • 高峰听众
  • 最大侦听器数(从服务器启动)
  • 独特的听众
  • 比特率
  • 歌曲标题