我一直在挖掘互联网上的媒体源扩展示例,并没有找到一种方法来适应我的需求.
我正在寻找一个本地缓存的MP4 / WebM视频(具有100%关键帧和1:1的簇/原子与关键帧的比率)并且非顺序地解码/显示它们(即帧10,400,2,100)等等,并且能够以0-60fps的速率按需渲染这些非连续帧.由于设置此属性和显示框架的延迟,使用currentTime属性的简单非MSE方法失败.
我意识到这完全超出了视频播放的正常期望,但我的应用程序需要这种类型的非连续高速播放.理想情况下,我可以使用h264进行GPU加速,但我意识到可能有一些特定于平台的GPU缓冲区可以应对,尽管看起来零帧缓冲区应该是可能的(见here).我希望MSE可以完成这种非连续的高帧率低延迟播放,但我知道我要求很多.
问题:
> appendBuffer是否会接受由单个关键帧组成的单个WebM群集/ MP4 Atom,并且还能够以高频率(60fps)进行解码?
>你认为我想在浏览器中做什么是可能的吗?
任何帮助,见解或代码建议/示例将不胜感激.
谢谢!
2016年4月5日更新
我能够让MSE主要使用Firefox,Edge和Chrome中的单帧MP4片段.但是,Chrome似乎遇到了上面链接的帧缓冲问题,我还没有找到预处理MP4来调用这种“低延迟”模式的方法.如果可以使用像MP4Box这样的现有工具创建这样的文件,任何人都有任何线索吗?
Firefox和Edge可以在很短的时间内解码/显示各个帧,但是当我将这个视频加载到Three.js WebGL项目中时(无视频输出,没有错误),当然会出现问题.我现在忽略了这一点,因为我更倾向于在Chrome上运行,因为我也会将Android作为目标.