【发布时间】:2016-04-19 14:06:50
【问题描述】:
我正在使用 HTML5 Media source extensions (MSE) 使用 DASH 流式传输视频。我使用MP4Box 从一个包含两个视频轨道的 MP4 文件创建了我的媒体片段。所以我拥有的是一个带有moov->sidx 框和多个媒体段moof->mdat 的单个初始化段,其中包含两个视频轨道。如果我使用appendBuffer 函数将它们推送到sourceBuffer,MSE 将解码并仅显示第一个视频轨道(我假设来自第二个视频轨道的数据被丢弃)。
以下是我的代码中的相关部分:
sourceBuffer = mediaSource.addSourceBuffer(stats.mimeType); // mime type: video/mp4
...
// after downloading mediasegment append its contents 'data' to sourceBuffer
sourceBuffer.appendBuffer(new Uint8Array(data));
所以我的问题是,是否可以控制 sourceBuffer 以使客户端可以选择要解码的轨道?我想将视频轨道拆分为不同的适配集(创建单独的 mp4 文件,每个文件都有一个视频轨道)可能是一种解决方案,但我对这种方法不感兴趣。
谢谢你们。
【问题讨论】:
标签: javascript html video streaming media-source