4

最近我试图了解ogg vorbis内部是如何工作的,所以我为ogg vorbis. 现在我正试图了解所有互联网 ogg 广播电台的工作原理。我不明白的事情是:如果您需要处理所有 3 个vorbis标头以了解如何解码音频(通道、速率等),它们如何永久流式传输音频并从轨道的随机位置流式传输?

4

1 回答 1

3

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

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

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

于 2014-08-13T13:03:20.223 回答