如何通过分析字节模式来确定音频流类型
Posted
技术标签:
【中文标题】如何通过分析字节模式来确定音频流类型【英文标题】:How to determine the audio stream type by analising byte patterns 【发布时间】:2014-01-27 07:05:42 【问题描述】:我刚刚开始为 android 构建一个 iternet 无线电接收器应用程序,它适用于 .mp3 和 .pls 扩展 URL。
我发现有很多流站只是通过IP地址和端口号(例如//101.102.103.104:8080)给出的。
我的问题是,如果我从此类 URL 接收到大量字节,我如何确定音频流的类型(是 wav 还是 mp3 或 pls 或其他),以便应用解码器?
谢谢
【问题讨论】:
【参考方案1】:文件扩展名在 HTTP 中没有意义。从原始数据中嗅探内容类型很困难,并不总是可靠且效率低下。正确的方法是查看Content-Type
响应标头。以下是流的典型标头:
Cache-Control:no-cache
Content-Type:audio/mpeg
Expires:Mon, 26 Jul 1997 05:00:00 GMT
icy-br:256
icy-genre:Drum and Bass Jungle
icy-name:Drum and Bass - Digitally Imported Premium
icy-notice1:<BR>This stream requires <a href="http://www.winamp.com/">Winamp</a><BR>
icy-notice2:SHOUTcast Distributed Network Audio Server/Linux v1.9.8<BR>
icy-pub:0
icy-url:http://www.di.fm
Pragma:no-cache
Server:Icecast 2.3.3-kh7
内容类型audio/mpeg
表示 MP3(或其他一些 MPEG 音频流,但我只见过 MP3)。还有很多其他的,比如audio/aacp
或者audio/ogg
。
【讨论】:
以上是关于如何通过分析字节模式来确定音频流类型的主要内容,如果未能解决你的问题,请参考以下文章