问题描述
使用Azure Media Service 制作视频点播服务,在客户端使用 Azure Media Player 播放器在 Edge 浏览器中播放视频时候遇见无法播放的问题:
错误信息:
The video playback was aborted due to a corruption problem or because the video used features your browser did not support (0x20400003)
视频播放已中止,原因是视频损坏或浏览器不支持视频使用的功能
但是在Google Chrome 浏览器中,它则能够正常播放,对比截图如下:
这是什么情况呢?
问题解答
使用AMP(Azure Media Player)播放器播放视频遇见问题时,可以通过它的诊断日志(Diagnostics)来查看具体的错误消息.
操作步骤(非常简单)
第一步:进入AMP Demo站点(https://ampdemo.azureedge.net/azuremediaplayer.html ), 然后把视频的manifest文件URL放入到 页面中的URL 输入框中,点击Update Player。
第二步:点击Diagnostics按钮,查看其日志输出,并且可以点击Download Verbose Log
在诊断日志中,发现在Edge中不能播放视频的原因为:
[14:06:08.981] verbose: azureHtml5JS: workflowCoordinator: _setVideoElementSrcResolved
[14:06:08.981] verbose: azureHtml5JS: videoElementAdapter: Adapter buffer added: audio/mp4;codecs="mp4a.40.2" Adapter buffer total: 1
[14:06:08.982] error: azureHtml5JS: videoElementAdapter: Failed to add SourceBuffer to MediaSource: NotSupportedError: Failed to execute 'addSourceBuffer' on 'MediaSource': The type provided ('video/mp4;codecs="hev1.1.6.L93.90"') is unsupported.
[14:06:08.982] error: videojs: 2.3.11.2 (CODE:541065219 undefined) presentationWorkflowResolved: Failed to create source buffer for stream video, codec video/mp4;codecs="hev1.1.6.L93.90" [object Object]
[14:06:08.982] verbose: azureHtml5JS: workflowCoordinator: MediaSource.isTypeSupported() for video/mp4;codecs="hev1.1.6.L93.90"= false
而且,查看视频的mainfest文件,其中也可以确认使用的 codecs 正是hev1.1.6.L93.90
据以上日志分析,报错发生在加载 codec hev1.1.6.L93.90,错误信息为“NotSupported”。
播放编解码器(codecs = hev1.1.6.L93.90)需要使用HEVC Video. 因Google Chrome浏览器默认支持HEVC/H.265 video,但是在Edge浏览器中,默认不支持,需要安装插件 HEVC Video Extensions(https://apps.microsoft.com/store/detail/hevc-video-extensions-from-device-manufacturer/9N4WGH0Z6VHQ?hl=en-us&gl=us)
- 此插件旨在利用某些较新设备的硬件功能,以支持 4K 和超高清内容的设备。
- 对于不具备 HEVC 视频硬件支持的设备,提供软件支持,但播放体验可能因视频分辨率和 PC 性能而异。
- 这些扩展还允许您在没有基于硬件的视频编码器的设备上编码 HEVC 内容。
但是,当从Windows Store中安装 HEVC Extensions时,会遇见无法安装的问题:
替代从Windows Store(Windows应用商店)安装HEVC插件的办法是:
1)网络中下载安装源文件,双击本地安装。
2)如还不能播放,需要检查 Edge浏览器设置,是否打开“Use hardware acceleration when available” 配置。
3)重启Edge,播放成功