为什么使用Ogg封装而不是本机来完成基于HTTP的FLAC流式传输?

Bra*_*rad 5 streaming ogg flac

所有当前的FLAC流实现(例如带有Icecast的Edcast)似乎在流式传输时使用Ogg作为FLAC的容器.

  1. 这是什么原因?
  2. 使用Ogg和流式传输"本机"FLAC流有什么缺点?

我已经完成了一些通过HTTP传输FLAC的测试,它似乎在VLC中运行得很好.FLAC似乎是以这样一种方式构建的,即帧可以独立存在,使其能够抵御流损坏和/或丢帧.鉴于此,我不太明白为什么在Ogg中包装FLAC是必要的.

bla*_*lah 5

FLAC到奥格映射页有它为什么需要使用奥格封装在许多情况下,而不是流本地FLAC了相当详尽的解释:

原始的FLAC格式包括一个非常薄的传输系统,称为“本机FLAC”。...这是非常轻量级的,并且不支持更复杂的传输机制,例如多个逻辑流,...

本地FLAC传输不是标准编解码器设计方式中的传输“层”,因为它无法与有效负载完全分离。...

当试图将FLAC封装在其他真正的传输层中时,这会带来问题

另一种选择是将本地FLAC帧视为Ogg数据包,并接受传输冗余。事实证明,这并没有多大的损失。...冗余度仅为百分之一。

[加重]

有关更多信息,请参见整个页面,但最终结果是,虽然本机FLAC可用于流传输,但它并不十分适合于更复杂的设置,并且Ogg封装的成本非常低。如果本机FLAC可以很好地满足您的特定需求,则可以继续使用它,但是Ogg最终将为您提供更大的灵活性。