【问题标题】:Media Source Extensions append after reload page重新加载页面后附加媒体源扩展
【发布时间】:2019-07-24 19:26:18
【问题描述】:

我正在编写一个网络研讨会平台,并在演示者的扬声器客户端上使用 MediaRecorder,在听众客户端上使用 Media Source Extensions。初始字节段包含有关视频的所有信息,随后的字节段仅包含时间戳(https://www.w3.org/TR/media-source/#init-segment)。我确保视频从第一个客户端发送到第二个客户端没有失败。但是当我在侦听器的客户端刷新页面时,媒体流立即停止,因为没有开始段。谁能告诉我如何解决这个问题?

【问题讨论】:

    标签: javascript media-source


    【解决方案1】:

    您需要自己对流进行分段。

    如果您使用 WebM,只需将所有内容保留到第一个 Cluster 的开头并将其视为初始化段。然后,您可以在具有关键帧的集群开始处选取流中的任何位置。

    很遗憾,当您使用 MediaRecorder 进行录制时,您无法告诉浏览器在哪里插入关键帧。因此,您要么必须自己确定哪些集群具有关键帧,要么进行一些服务器端转码。无论如何都可能需要后者,除非您计划为所有客户端提供相同的比特率/编码。

    【讨论】:

    • 是的,我使用 webm。 “所以,你要么必须自己确定哪些集群有关键帧”——应该在客户端完成吗?你能提供例子吗?我在服务器端使用 java spring mvc。
    • @stim644 我不知道该怎么做。在 WebM/Mastroska 级别的集群中没有一个标志显示“这个有关键帧!”,因此您需要深入研究集群中的编解码器数据本身。你最好在服务器端转码,然后你可以用一个关键帧来启动每个集群。
    • 在服务器端重新编码到起始帧是可能的,是吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多