2

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

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

但有些广播不提供此信息

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

4

2 回答 2

0

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

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

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

如果您无法解码流,许多编解码器会将该比特率放入其帧头中。对于 MPEG,帧头中第三个字节的前四位为您提供 bitrate

于 2013-04-12T13:18:07.173 回答
0

Shoutcast 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>

用逗号分割该文本,您将获得:

  • 当前听众
  • 流状态
  • 高峰听众
  • 最大监听数(从服务器启动)
  • 独特的听众
  • 比特率
  • 歌名
于 2015-09-23T10:24:58.197 回答