【问题标题】:IceCast 2.3.2+ chunk encoding MP3 streamsIceCast 2.3.2+ 块编码 MP3 流
【发布时间】:2013-07-27 21:13:49
【问题描述】:

是否有人托管带有块编码 MP3 流的 IceCast 2.3.2+ 服务器,我可以测试吗? 我想测试一下Android Mediaplayer中的小块长度是否会导致任何流停止。

【问题讨论】:

  • 你为什么不试试icecast邮件列表。
  • 我在那里问了一些问题,但没有得到太大帮助。
  • 您使用分块编码这一事实将破坏许多 Android 播放器。块长度本身与问题无关。
  • 但该应用可以运行数小时而不会出错。有时它会突然发生。我在 Web 中看到了与 MediaPlayer 类似的问题,其中有小块,可能会导致停止。在 WireShark 中,当 TCP 段数据达到 5 个字节而不是 ~1000 个字节时会停止。为什么? MediaPlayer 不兼容分块编码吗?有来自 Google 的官方信息吗?
  • 此外,在许多 Windows 浏览器中的其他播放器中也会发生这种情况。

标签: android encoding streaming icecast chunked


【解决方案1】:

Icecast 直到 2.4.1 版(包括版本)根本不支持 HTTP 分块编码。 2.5.0 版本将支持 HTTP PUT 请求(源客户端)的分块编码,但目前支持 GET 请求没有意义。

您可能会将此与 Shoutcast 为 MP3 流引入的元数据破解相混淆。在那里,实际编码的音频数据流以固定的所谓 metadata-interval 中断,并注入元数据。

能够处理此类流的播放器必须通过 HTTP 标头向服务器发出信号,如果支持,流服务器将在响应 HTTP 标头中通知客户端有关元数据间隔和其他参数的信息。然后,播放器必须在接收时从流中删除这些注入的数据,然后再将其交给解码器进行播放。

请注意,此 hack 仅适用于没有具有固有元数据处理的容器的流。 Opus 和 Ogg/Vorbis 流将在流中本地发送元数据,而无需此类 hack。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多