我指的是此link
上提供的媒体源api演示它对于给定的测试webm文件工作正常但是当我尝试将文件名更改为自定义webm文件时,代码停止工作。
以下代码生成以下错误:Uncaught Error: INVALID_STATE_ERR: DOM Exception 11
:sourceBuffer.append(new Uint8Array(e.target.result));
要检查自定义webm文件是否正常工作,我创建了一个测试页面,其中我定义了一个包含该自定义webm文件源的视频标签。 当我运行代码时它工作正常。
我无法理解这种奇怪行为的原因。
答案 0 :(得分:15)
最可能的问题是您的WebM文件具有不以关键帧开头的群集。
在Chrome开发者频道版本(即Chrome 25或更高版本)中,您可以按照以下步骤进行验证。
如果您看到类似“媒体片段未以关键帧开头”的消息。那么这意味着您的文件具有不以关键帧开头的群集。这与FFmpeg生成的内容很常见。您可以通过以下方式之一修复文件:
答案 1 :(得分:0)
更新:我的案例中没有显示内部错误(接受的答案建议检查)但问题仍然存在
我尝试使用 MediaRecorder API 播放录制的.webm文件时遇到了同样的麻烦媒体资源扩展程序(MSE)。 Chrome(51)录音格式不正确,Firefox(46)似乎没问题。
要使其正常工作,您必须修复.webm文件中的提示:
cmake .
make
./sample_muxer -i original.webm -o fixed.webm
希望它有所帮助。没有DASH关键字谷歌任何信息是很困难的(我不使用DASH,只有相同的基础技术 - MSE):)