- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试使用 MediaSource 播放两个单独的流(音频和视频)。我已经成功地按任意大小的顺序附加了它们的缓冲区(通过 XHR 检索的 ArrayBuffer 类型):
视频和音频播放完美且同步,所有范围均已正确翻译。对于这些测试,我使用我收藏的 YouTube 编码视频、webm 格式和 vp9 编解码器。
然而,问题来自于在加载片段之前搜索播放器的搜索场景,我想从该点或该点之后附近加载它们,而不是这个新片段与任何先前附加的缓冲区顺序排列。
我尝试了一个明显的想法,即简单地假设 MediaSource 会识别新缓冲区应附加到的段位置,因此我的尝试只是获取与查找的时间间隔相关的流数据并将其附加到缓冲区,但是它不起作用并出现以下错误:
Uncaught InvalidStateError: Failed to execute 'appendBuffer' on 'SourceBuffer':
The HTMLMediaElement.error attribute is not null.
我一直在尝试为此寻找解决方案,尝试了 timestampOffset
和 appendWindowStart
+ appendWindowEnd
无济于事。
我在文档中找不到如何将缓冲区附加到顺序顺序以外的位置,我将不胜感激任何帮助,如果可能的话,我将不胜感激对过程本身的简短解释。
最佳答案
似乎我想做的事是可能的,但不是我做事的方式。正确编码的 DASH 流媒体文件应包含 SIDX(片段索引框)信息,这基本上是视频片段详细信息,存在于视频(或音频)本身的文件开头/标题处,或列在独立的 .mpd 文件中以 xml 格式。这些片段中的每一个都包含允许 MSE(MediaSource 扩展)播放未链接到先前附加缓冲区的附加片段的正确信息。
关于javascript - 不同位置的 MediaSource appendBuffer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37106210/
我正在尝试使用 MediaSource 播放两个单独的流(音频和视频)。我已经成功地按任意大小的顺序附加了它们的缓冲区(通过 XHR 检索的 ArrayBuffer 类型): 大小相同的 XXX 字节
如何从以下情况导致的 appendBuffer 错误中恢复? 缺失数据 数据乱序 最佳答案 这里只是猜测...我假设乱序可恢复性取决于正在解码的媒体容器的格式(WebM、Ogg 等)。浏览器的 dec
我尝试使用 MediaSource 播放两个视频,但只有一个有效。两者都将编解码器设置为 avc1.4d401f 和 mp4a.40.2,但其中一个播放得很好,另一个在我调用 SourceBuffer
我们正在使用 VideoJs (6.9.0) 创建 HTML5 网络应用程序以用于智能电视。我们注意到某些电视报告以下错误: 无法在“SourceBuffer”上执行“appendBuffer”:So
编辑:为了帮助说明我不断遇到的错误,我创建了我所看到的问题的 CodePen。打开控制台,您将看到错误。 [ https://codepen.io/FifthCloud/pen/eYpqJLN ] 我
我是一名优秀的程序员,十分优秀!