[翻译] HTML5媒体源扩展(MSE): 将影视制作级别的视频格式带到网络上

电脑杂谈  发布时间:2020-05-19 04:19:41  来源:网络整理

java本地视频播放器_地三鲜做法视频播放_以前看见过一款在手机主界面上播放视频的视频播发器

英文原版: HTML5媒体源扩展: 将制作视频带到网络上

在过去的十年中,Flash和Silverlight等插件为浏览器启用了丰富的视频功能,并增强了YouTube和Netflix等众多视频服务提供商的实力. 但是,近年来,风已经开始转向HTML5.

大约2年前,W3C组织发布了最终的HTML5标准,该标准提供了一组新的HTML元素和API,尤其是对于视频. 其中一些旨在向网页添加更多语义,但不引入新功能. 还有可能扩展网络并增加开发人员在不使用插件的情况下开发本机Web应用程序的可能性,例如Adobe Flash,Microsoft Silverlight或Java.

这对于前端开发非常重要,因为Google宣布废除了NPAPI(插件使用的API),并且Firefox和Microsoft都呼吁不使用插件进行Web浏览. 尽管这些制造商也支持Flash Player,但是将其淘汰似乎只是时间问题. 另外,对于移动浏览器,它们已经通过了此步骤,因为它们不支持插件方法,并且根本没有Flash播放器.

让我们看一下这些新的HTML5元素及其对视频的影响:

实际上,大多数新元素已经很熟悉,并且已经使用了几天. 这时,因为所有主要的浏览器都已经开始支持. 尽管规格现在很稳定,但是W3C仍有很多工作要做.

对我来说,最重要的标准是W3C仍在努力的媒体源扩展标准(MSE). 该标准现已进入“替代建议”状态. 这些JavaScript API将使我们能够解析

另一个值得关注的问题是加密媒体扩展标准,该标准支持使用本机HTML5和JavaScript开发来播放加密视频. 但是,这只是一个研究草案,需要一些时间才能出版.

我们非常欢迎新标准,并希望不再需要安装各种Flash播放器或插件,而只是开发Web版本以在任何设备上享受一天的多媒体内容.

让我简要介绍以下MPEG-DASH格式及其在HTML5中使用的原因. MPEG-DASH(DASH是通过HTTP动态自适应流的缩写)是由MPEG和ISO(ISO / IEC 23009-1)批准的国际浏览器制造商独立标准. 早期的自适应流技术(如Apple HLS,Microsoft Smooth Streaming和Adobe HDS)由软件公司独立发布,并且仅支持其自己的流服务标准或回放客户端. 基于某家公司的标准进行推广显然是不可取的,因此标准化组织促进了各个制造商的协调,这是2012年推出的唯一MPEG-DASH.

再次查看MPEG-DASH的目标和优势:

近年来,MPEG-DASH已被集成到新的标准化工作中,例如HTML5 MSE,MSE可以通过HTML5视频和音频标签以及HTML5加密的多媒体格式扩展来实现DASH回放,即在浏览器中播放多媒体用DRM加密的内容. 另外,MPEG-DASH中的DRM加密方法可以与其他通用加密系统(例如MPEG-CENC)很好地协调. MPEG-DASH还可以通过混合宽带电视轻松集成到不同的纯电视平台,例如HbbTV 1.5和HbbTV 2.0.

此外,DASH工业界和DASH-AVC / 264组织已推荐使用MPEG-DASH标准的方法. .265 / HEVC.

视频流标准的生态圈

视频流标准生态系统(图片: Bitcodin)(点击放大)

如今,MPEG-DASH已被越来越多地部署,并且随着Netflix和Google等服务提供商的不断升级,他们都已开始转向MPEG-DASH标准. 依靠这两个主要的流量来源,MPEG-DASH Advanced已占Internet总流量的50%.

java本地视频播放器_地三鲜做法视频播放_以前看见过一款在手机主界面上播放视频的视频播发器

现在,让我们仔细看看MSE及其开发人员如何使用它们. MSE是HTMLMediaElement元素的扩展规范,通过它可以使JavaScript能够动态处理媒体流,例如视频和音频. 过去无法使用此功能,因为这些媒体标签仅用于加载MP4之类的完整文件. 这种方法也称为渐进流式传输或渐进式下载,因为媒体文件的下载和播放并行进行,从而启用了伪流式传输模式.

但是,这只会带来较差的搜索功能,并且无法根据用户的带宽来调整视频和音频的清晰度. 通过JavaScript处理的媒体数据,然后输入到视频和音频标签,从而使开发人员可以动态地适应与用户环境相对应的视频数据,从而增强媒体播放体验.

如上所述,MPEG-DASH是MSE的媒体传输格式的一种实现. 让我们了解基于HTML5 MSE的视频播放器的工作步骤:

下载并解析配置文件. MPD文件在MPEG-DASH中使用(m3u8文件在HLS中使用). 配置文件提供有关视频流的详细信息,例如视频流的比特率质量类型,分辨率数量和音频数据. 数量,字幕数量等,以及媒体文件数据块的名称,源服务器或CDN信息.

评估客户端设备上的可用带宽,选择适当的视频质量以实现无缓冲的流传输,并使用JavaScript下载后续的媒体剪辑.

JavaScript代码将下载的媒体剪辑传输到MSE缓存进行处理.

底层硬件获得缓存的这一部分之后,它开始解码和渲染视频,并将结果返回给video标签.

这是一种基于Netflix和Youtube都使用的HTML5的自适应媒体播放. 像dash.js和Bitdash HTML5播放器一样,现在已经是相当成熟的解决方案,在DASH-IF项目是开源的情况下,开发人员和视频内容提供商可以轻松地切换到HTML5自适应比特率播放解决方案.

MPEG-DASH支持的格式全部来自x264和MP4Box等开源工具,而某些则来自某些商业编码服务,例如Bitcodin.

但是,MSE不限于支持MPEG-DASH. 越来越多的项目(例如hls.js)和播放器(例如Bitdash)已经实现了HLS格式,以通过H5的MSE支持Apple的HLS格式. 他们将HLS媒体片段(即MPEG2-TS内容)转换为HTML5和MPEG-DASH可以通过复用处理的与ISO5兼容的媒体文件格式.

主要变化发生在DRM市场. 由于减少了Chrome和Firefox中的NPAPI插件,导致了通往Silverlight的方式,DRM系统领导者开始失去其优势. 这使大多数内容提供商的处境非常困难,因为他们必须转换新技术并为未来找到新的解决方案.

流媒体发布者将无法依靠Microsoft的PlayReady DRM技术在PC和Android设备上的Chrome和Firefox上对其内容进行加密. 他们必须重新评估其内容保护和流媒体平台策略,并找到新的解决方案以快速切换到过去.

对于许多视频服务提供商而言,MPEG-DASH已经是最佳技术选择. DASH项目正在以越来越高的速度启动,使用Widevine DRM的MES和EME似乎是最可行的选择. 此外,MPEG-CENC可以支持仅支持相同版本的加密内容的不同DRM系统java本地视频播放器,而EME的内容则基于MSE的MPEG-DASH内容格式.

因此,DRM系统的不同组合,例如适用于Chrome和Android的Widevine Modular,适用于IE和Edge的Microsoft PlayReady和适用于Firefox的Adobe Primetime. 由于每个平台都需要一个版本,因此,内容提供商在流媒体,DRM和CDN方有更好的灵活性,这使内容提供商有更多的动机转向使用MPEG-DASH作为国际标准.

在浏览器制造商对HTML5和MSE进行了多年缓慢的适应之后,我们很高兴看到大多数主流浏览器都受到支持. 尽管每个制造商都有自己的DRM系统,但EME也会发生此过程,这使当前的DRM生态系统有些复杂.

尽管如此,要覆盖99%的用户,我们需要进行视频流兼容的设置,以便不支持MSE的浏览器也可以流畅播放,例如某些较旧的浏览器和iOS Safari. 旧的浏览器可以使用Flash Player提供服务. Flash播放器可以直接播放MSE MPEG-DASH格式的内容,例如Bitdash播放器播放器. 为了支持iOS设备,我们必须使用Apple的HLS流媒体格式,这是Apple强烈采用HTML5的另一种方式. Apple不喜欢支持开放标准(例如MSE),但Mac OSX上的Safari仍支持MSE.

地三鲜做法视频播放_以前看见过一款在手机主界面上播放视频的视频播发器_java本地视频播放器

以下列表描述了由Bitmovin提供的支持MSE和EME的主流浏览器的当前状态:

EnvironmentPlayer TechnologyMediaDRM

Chrome

HTML5 MSE

MPEG-DASH

Widevine模块化

Internet Explorer 11 Windows 8.1

HTML5 MSE

MPEG-DASH

PlayReady

Internet Explorer(其他)

Flash,Silverlight

MPEG-DASH

ClearKey,PlayReady

HTML5 MSE,HTML5 HLS

MPEG-DASH,HLS

以前看见过一款在手机主界面上播放视频的视频播发器_地三鲜做法视频播放_java本地视频播放器

PlayReady,AES HLS

Firefox

HTML5 MSE

MPEG-DASH

Adob​​e

Safari

HTML5 MSE,HTML5 HLS

MPEG-DASH,HLS

公平竞赛,AES

Android: Web> v4.1

HTML5 MSE,HTML5 HLS

MPEG-DASH,HLS

Widevine模块化

Android: 应用

Google的Exoplayer

MPEG-DASH,HLS

java本地视频播放器_以前看见过一款在手机主界面上播放视频的视频播发器_地三鲜做法视频播放

Widevine模块化

iOS: 网络

HTML5 HLS

iOS: 应用

本地HLS支持

公平竞赛,AES

智能电视

原生MPEG-DASH支持或HTML5 MSE(例如Tizen)

MPEG-DASH或HLS

取决于设备

HbbTV(1.5)

原生MPEG-DASH支持

MPEG-DASH

取决于设备

新型媒体正在进入市场,这使得视频压缩更加有效,这对于高质量格式(例如4K和UHD)和移动设备的流媒体尤为重要. 最常见的编是HEVC / h.265,这是到目前为止已使用了十多年的默认编格式(当然,如果他的专利不变). 同时,他还可以使用浏览器内置的MSE来播放和使用MPEG-DASH作为流格式,这显示了此开发标准的灵活性.

视频播放器的开发人员价值需要开始简单的适应,例如在创建SourceBuffer时更改编的属性. 并且,浏览器的底层集成了HEVC解码(很可能是硬件),然后您就可以观看HTML5中基于HEVC MPEG-DASH的流媒体. 我们已经在某些浏览器(例如已经支持HEVC的Microsoft Edge)中成功测试了它. Google的Chromium浏览器也将支持它.

但是,HEVC不能被绝大多数Internet视频资源使用,只有少数设备可以为其硬解码付费. 当然,它不是世界上唯一的编. VP9是一种开放的免版税视频编码格式(VP8的后继格式),旨在提供更好的编码效率. 现在主流的浏览器,例如Google Chrome和Microsoft Edge已经支持VP9,并且VP9可以很好地与MSE兼容. 但是,我们无法预见那些编将来将成为我们的主流. 但是无论是VP8 / 9,AVC还是HEVC,MSE和MPEG-DASH都准备好了!

现在,可通过HTML5直观地观看360度视频. 开发人员可以通过结合一些JavaScript代码或WebGL渲染层,使用MSE的流自适应功能来实现360度视频体验. 最近,我做了一个关于如何使用HTML5,JavaScript,DASH和WebGL来实现类似于Netflix服务的虚拟现实系统的事情.

我希望本文能为您概述视频的现状和未来. MSE和EME是视频迈向开放生态系统的重要一步. 它们取代了Flash和Silverlight. 此外,HTML5技术已被当今各种平台所选择,包括桌面,移动和智能电视平台.

结合诸如MPEG-DASH之类的流媒体标准,视频内容提供商还可以在不同平台和设备之间拥有统一的视频解决方案. 他们可以使用自适应流媒体格式来防止缓冲java本地视频播放器,减少视频加载时间,改善用户观看体验,并根据每个用户自己的带宽和设备条件提供最佳匹配的视频质量.


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/bofangqi/article-214909-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...