【问题标题】:Distinguish HLS content during stream在流期间区分 HLS 内容
【发布时间】:2015-06-12 06:50:39
【问题描述】:

我想使用 Google 的 ExoPlayer 区分从 HLS 流传入的数据的内容类型。

具体来说,我想区分视频和纯音频内容。

谢谢!

【问题讨论】:

    标签: android exoplayer


    【解决方案1】:

    根据 Exoplayer 文档,播放器目前根本不支持检测媒体格式:

    ExoPlayer (还)不会自动检测正在播放的媒体的格式。应用程序需要知道它希望播放的媒体的格式,以便构建能够播放它的 ExoPlayer。问题 #438 跟踪删除此限制。

    上面提到的问题链接是:https://github.com/google/ExoPlayer/issues/438

    如果您可以访问原始流(未加密),您可以自己查看原始流,并从那里确定它是音频还是视频,但这需要合理的工作量:HLS 是一种“流协议”流 MPEG-2 传输流,分块成段。这些 MPEG-2 传输流中的每一个都可以包含音频和视频。

    MPEG 标准(MPEG 1 和 MPEG 2)使用流 ID 来标识传输流中的每个单独的音频或视频流。音频流编号为 110X XXXX,视频流编号为 1110XXXX - 因此您可以检查 MPEG2 传输流中的所有单个流,看看它是纯音频、纯视频还是混合流。

    【讨论】:

    • 不错的报价。更好的解决方案建议。您能否使用 sn-p 编辑您的答案以测试 MPEG-2 传输流是否包含音频/视频/两者?谢谢
    • 添加了有关如何检查音频和视频流的更多详细信息 - 抱歉,没有任何代码可提供给您!这将是一个合理的工作量 - 可能值得对播放器进行试验,看看是否有一些更简单的技巧可以用来满足您的需求,例如查看如果您尝试播放视频时是否会生成错误没有视频的 HLS 流,然后简单地捕获错误并假设流只是音频。
    • 我会尝试并使用代码 sn-ps 进行更新 - 然后您可以将它们添加到您的答案中,我会选择它 - 谢谢!!
    猜你喜欢
    • 2015-01-17
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多