当我开始接收实时音频(无线电)流(例如 MP3 或 AAC)时,我认为接收到的数据不是原始比特流(即原始编码器输出),但它们总是被包装成某种容器格式。如果这个假设是正确的,那么我想我无法从流的任意位置开始流式传输,但我必须等待某个同步字节。是对的吗?通常会有一些同步字节吗?同步字节后面是否有任何标头,我可以从中猜测使用的编解码器、通道数、采样率等?
当我连接到实时流时,我会收到从最近的同步字节开始的数据,还是会从实际位置获取数据,并且我必须首先检查同步字节?
像icecast这样的一些流在HTTP响应中使用标头,其中包含与流相关的信息,但我认为我可以跳过它们并直接处理steam格式。
那是对的吗?
问候,
STeN
当您查看 SHOUTcast/Icecast 时,遇到的数据是纯 MPEG Layer III 音频数据,仅此而已。 (前提是您没有请求元数据。)
It can在任意位置被剪切,因此需要同步到流。这通常是通过查找潜在的标头并使用该标头中的数据来查找顺序标头来完成的。一旦找到一些帧头,您就可以安全地假设您已同步到流并开始解码以进行播放。
同样,这些没有“容器格式”。这只是原始数据。
现在,如果您想要元数据,则必须从服务器请求它。然后,数据每隔一段时间就被注入到流中x
字节数。看http://www.smackfu.com/stuff/programming/shoutcast.html http://www.smackfu.com/stuff/programming/shoutcast.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)