ogg无线电流如何工作?

时间:2014-08-13 08:53:30

标签: audio audio-streaming ogg vorbis internet-radio

最近我试图理解ogg vorbis如何在里面工作,所以我为ogg vorbis编写了简单的编码器/解码器。现在,我试图了解所有互联网ogg无线电台是如何工作的。我不明白的事情:如果你需要处理所有3个vorbis标题以了解如何解码音频(频道,速率等),它们如何永久流式传输音频并从轨道的随机位置流式传输音频?

1 个答案:

答案 0 :(得分:3)

Ogg(Vorbis或其他)流通过从轨道中的随机位置流式传输来工作。这使得它成为互联网无线电服务器更难的包装器,以及为什么Ogg不能在SHOUTcast服务器上工作。

要流式传输Ogg,服务器必须解析源流中的初始Ogg帧头。当新客户端连接时,这些帧头在任何新的音频数据之前被发送到客户端。在此之后,服务器开始为流中的当前位置发送帧,但它不是随机开始的。它从正确的框架边界开始。

您可以自己查看此行为。使用带有Vorbis或FLAC的Ogg启动带有源流的Icecast服务器。使用Wireshark从不同时间启动的两个不同客户端连接捕获数据包。然后,比较从服务器获得的初始Ogg帧。您将看到两个设置的帧,然后是流中间的帧。