使用html5从视频到视频的无缝转换

ben*_*ear 17 javascript html5 preload html5-video

我正在尝试创建一个功能,用户可以在多个视频之间进行更改(来回),同时保持单个一致的音频.想想能够从多个角度观看音乐会,但只能听一个音频.我在使用此功能时遇到的麻烦是,视频更改之间不会有延迟,或者音频将不再与视频同步(尤其是在多次更改后).

我尝试了两种方法,都只使用html5(我宁愿不使用闪存,虽然我最终会有一个后备)但没有无缝工作,虽然取决于浏览器和硬件,它可以非常接近.

基本方法:

方法1:使用javascript预加载所有视频并在每次单击时更改视频src路径

方法2:再次预加载视频并使用多个标签,并在每次点击时使用javascript进行更改.

反正是否有这两种方法中的任何一种无缝隙地无缝地工作?我应该使用一些轻微的手法,比如同时播放两个视频一秒钟然后显示第二个并停止第一个?这可不是用html5播放器完成的吗?它可以用闪光灯完成吗?

我已经看过几次这类问题的视频和音频都没有明确的解决方案,但它们已经有几个月了,我希望现在有一个解决方案.谢谢您的帮助.

Dmi*_*ich 6

值得补充一点,谷歌提出的MediaSource API是可行的.此API允许您将任意二进制数据提供给单个视频元素,因此,如果您将视频拆分为块,您可以通过XHR获取这些块并将它们附加到您的视频元素,它们将无间隙地播放.

目前,它的实现只在Chrome和您需要启用Enable Media Source API on <video> elements镀铬:标志使用它.此外,目前仅支持WebM容器.

这是一篇关于HTML5Rocks的文章,它演示了API的工作原理:使用MediaSource API"流式传输"视频.

另一篇讨论分块播放列表的有用文章:分段WebM视频和MediaSource API.

我希望这个实现得到采用并获得更广泛的媒体容器支持.

更新2014年6月浏览器支持正在慢慢好转:(感谢@Hugh Guiney的提示)

  • Chrome稳定
  • FF 25+有一个标志media.mediasource.enabled[ MDN ]
  • Windows 8.1上的IE 11+ [ MSDN ]

  • 对此的支持正在抬头.稳定的Chrome现在默认包含它,FF可以用旗帜做,甚至IE 11也有它:https://developer.mozilla.org/en-US/docs/Web/API/MediaSource (3认同)

lon*_*ngi 0

有可能的。你可以看看: http: //evelyn-interactive.searchingforabby.com/这一切都是用 html5 完成的。他们在开始时预加载所有视频并同时启动它们。还没有时间检查他们是如何准确执行的,但如果你通过 firebug 检查他们的脚本也许会有所帮助