在 Windows 11 上的 Microsoft Edge 中管理媒体播放问题和设置
一、故障环境
故障网址: https://deepreach.ai/video-qa 设备处理器: Intel Core 5 210H 操作系统: Windows 11 24H2 Build 26100.3194 显卡: Intel(R) Graphics PCI Device ID:0xA7AB Intel 显卡驱动版本: 32.0.101.7088 Microsoft Edge: 152.0.4191.66 Google Chrome: 152.0.7977.83
视频格式: MP4 HEVC / H.265 Main Profile 1920 × 1080 未加密视频
二、故障现象
在 Intel Core 5 210H 设备上访问: https://deepreach.ai/video-qa 网页中的部分 HEVC/H.265 MP4 视频无法在 Microsoft Edge 中正常播放。 同一设备使用 Google Chrome 访问时,同样无法正常播放。 但是在完全相同的电脑、Windows 系统、显卡、驱动、网络环境以及相同网站条件下,使用夸克浏览器可以正常播放视频。 因此,目前已经形成以下对照结果: Microsoft Edge: HEVC 视频播放失败。 Google Chrome: HEVC 视频播放失败。 夸克浏览器: 相同 HEVC 视频可以正常播放。
三、Microsoft Edge GPU 能力检查
首先检查:
edge://gpu
Edge 中硬件加速处于正常启用状态。
Graphics Feature Status 中显示:
Video Decode: Hardware accelerated
Video Encode: Hardware accelerated
Compositing: Hardware accelerated
Intel(R) Graphics 可以被正常识别并处于 Active 状态。
显卡驱动版本为:
32.0.101.7088
同时,在 Edge 的 Video Acceleration Information 中可以看到:
Decode hevc main
Decode hevc main 10
Decode hevc main still-picture
也就是说,Microsoft Edge 本身能够检测到当前 Intel GPU 提供的 HEVC Main / Main10 硬件解码能力。
四、Microsoft Edge 默认状态下的故障日志
在未添加特殊启动参数的 Microsoft Edge 中,通过:
edge://media-internals
抓取故障视频日志。
Edge 可以正常识别视频格式:
codec: hevc
profile: hevc main
coded size: 1920x1080
visible rect: 1920x1080
encryption scheme: Unencrypted
说明 Edge 已经能够识别 MP4 文件中的 HEVC Main 视频轨道。
随后 Edge 开始尝试调用 Windows 硬件视频解码链路,日志出现:
Use MediaFoundationVideoDecoder for DXVA
Starting Initialization of DXVAVDA
Using D3D11 device for DXVA
说明此时 Edge 已经进入视频解码器选择及初始化阶段,并尝试:
MediaFoundationVideoDecoder → DXVA → D3D11 → VDAVideoDecoder
随后出现以下错误:
Cannot select VDAVideoDecoder for video decoding. status=DecoderStatus::Codes::kFailed
其他候选解码器也依次无法接管:
Cannot select DecryptingVideoDecoder for video decoding. status=DecoderStatus::Codes::kUnsupportedEncryptionMode
Cannot select VpxVideoDecoder for video decoding. status=DecoderStatus::Codes::kUnsupportedConfig
Cannot select Dav1dVideoDecoder for video decoding. status=DecoderStatus::Codes::kUnsupportedCodec
Cannot select FFmpegVideoDecoder for video decoding. status=DecoderStatus::Codes::kUnsupportedConfig
最终视频解码器初始化失败:
video decoder initialization failed with DecoderStatus::Codes::kUnsupportedConfig
播放器最终返回:
PipelineStatus::DECODER_ERROR_NOT_SUPPORTED
Error code: 15
最终播放管线进入:
kStopping
kStopped
从此日志可以确认: Edge 可以识别 HEVC Main 视频流; Edge 可以进入 Media Foundation / DXVA 硬件解码流程; Edge 使用 D3D11 初始化 DXVA; 但是 VDAVideoDecoder 初始化失败; 其他解码器也无法接管; 最终返回 DECODER_ERROR_NOT_SUPPORTED。
五、Microsoft Edge Media Foundation Clear Playback 测试
为了进一步排除 Edge 默认 RendererImpl 播放路径的问题,我关闭所有 Edge 进程后,通过独立配置目录启动 Edge: msedge.exe --user-data-dir="C:\EdgeMFTest" --disable-background-mode --enable-features=MediaFoundationClearPlayback "https://deepreach.ai/video-qa"
随后通过: edge://version 确认启动参数确实已经生效。
此时: edge://gpu 仍然显示硬件视频解码正常,并且可以看到: Decode hevc main Decode hevc main 10
在: edge://media-internals 中,播放管线发生了明显变化。
日志显示: kMediaFoundationClearPlayback: Yes MediaFoundationDecisionResult: Yes MFClearWorkaround: Enabled kRendererName: MediaFoundationRenderer
并且: renderer_engine: Media Foundation renderer_type: MediaFoundationRenderer
与默认状态不同,此时 FFmpegDemuxer 可以成功创建 HEVC 视频流: FFmpegDemuxer: created video stream codec: hevc profile: hevc main 1920x1080
随后日志显示: Starting MediaFoundationRenderer: DirectComposition pipeline_state: kPlaying kResolution: 1920x1080 BUFFERING_HAVE_ENOUGH
此时播放器时间进度可以继续运行,但实际视频画面仍然为黑屏。
六、DirectComposition 相关排查 考虑到 MediaFoundationRenderer 已经进入 kPlaying,但实际画面黑屏,因此继续针对 DirectComposition 视频渲染路径进行测试。
测试过: --disable-direct-composition-video-overlays
以及关闭 DirectComposition 相关路径的测试。
测试结果: 视频依然出现黑屏。 播放器进度和时间可以继续变化,但视频画面仍无法正常显示。
因此,仅关闭 DirectComposition Video Overlay 没有解决问题。
七、Google Chrome 测试
同一设备继续使用 Google Chrome 进行测试。 Chrome 硬件加速已开启。 通过: chrome://gpu
确认: Canvas: Hardware accelerated Compositing: Hardware accelerated Video Decode: Hardware accelerated Video Encode: Hardware accelerated WebGL: Hardware accelerated WebGPU: Hardware accelerated
Intel(R) Graphics: PCI Device ID:0xA7AB Driver Version:32.0.101.7088 状态:ACTIVE
但是 Chrome 的: Video Acceleration Information 中仅显示: Decode h264 baseline Decode h264 main Decode h264 high Decode vp9 profile0 Decode vp9 profile2 Decode av1 profile main
没有出现: Decode hevc main Decode hevc main 10
也就是说,与 Microsoft Edge 不同,Google Chrome 当前没有在 Video Acceleration Information 中暴露 HEVC 解码能力。
八、Google Chrome HEVC 播放日志
通过: chrome://media-internals 抓取同一网站的 HEVC 视频播放日志。
Chrome 同样能够识别文件中的视频参数: codec: hevc profile: hevc main coded size: 1920x1080 visible rect: 1920x1080 encryption scheme: Unencrypted
但是 Chrome 在 FFmpegDemuxer 阶段就出现: Warning, FFmpegDemuxer failed to create a valid/supported video decoder configuration from muxed stream
随后: FFmpegDemuxer: skipping invalid or unsupported video track
最终: FFmpegDemuxer: no supported streams
并返回: PipelineStatus::DEMUXER_ERROR_NO_SUPPORTED_STREAMS Error code: 14
随后: pipeline_state: kStopping pipeline_state: kStopped
因此 Chrome 与 Edge 的失败位置并不完全相同。
Chrome 当前表现为: 识别到 HEVC Main → 进行 VideoDecoderConfig 支持能力判断 → 当前 HEVC 配置被判断为不支持 → FFmpegDemuxer 丢弃 HEVC 视频轨 → DEMUXER_ERROR_NO_SUPPORTED_STREAMS → Code 14
Chrome 甚至没有进入后面的 VDAVideoDecoder 初始化阶段。
九、Google Chrome 强制 HEVC / D3D12 测试 为了确认是否可以强制 Chrome 启用 HEVC 平台解码能力,我关闭 Chrome 后使用独立 Profile 启动:
chrome.exe --user-data-dir="C:\ChromeD3D12Test" --enable-features=PlatformHEVCDecoderSupport,D3D12VideoDecoder "https://deepreach.ai/video-qa"
通过: chrome://version 确认参数已经实际加载: --enable-features=PlatformHEVCDecoderSupport,D3D12VideoDecoder
同时确认: Video Decode: Hardware accelerated
Intel Graphics: Driver Version:32.0.101.7088 ACTIVE
系统同时具备 D3D12 Feature Level 12_1。
但是再次检查: chrome://gpu → Video Acceleration Information
依然只存在: H.264 VP9 AV1
仍然没有: HEVC Main HEVC Main10
因此,即使手动启用了: PlatformHEVCDecoderSupport 以及: D3D12VideoDecoder
Chrome 当前仍然没有向媒体管线暴露可用的 HEVC Decoder capability。
十、Windows HEVC 组件检查
排查过程中也检查过 Windows HEVC 视频扩展。 系统中已经安装 Microsoft HEVC Video Extension,并且组件状态正常。 此前也尝试重新安装/注册 HEVC Video Extension。 但是安装 HEVC 扩展后,Google Chrome 的: chrome://gpu 依然没有出现 HEVC Main / Main10 解码能力。 Chrome 的 media-internals 仍然返回: DEMUXER_ERROR_NO_SUPPORTED_STREAMS Code 14
因此,仅安装 Windows HEVC Video Extension 没有解决 Chrome 的问题。
十一、夸克浏览器对照测试
在完全相同设备上使用夸克浏览器访问: https//deepreach.ai/video-qa 相同类型的 HEVC 视频可以正常播放。
夸克媒体日志显示: kMediaPlayer: Apollo
同时可以看到: pipeline_buffering_state: BUFFERING_HAVE_ENOUGH
播放期间能够正常产生: kPlay kPause
例如: Effective playback rate changed from 0 to 3 kPlay kPause
日志中没有出现 Microsoft Edge 的: VDAVideoDecoder kFailed DECODER_ERROR_NOT_SUPPORTED
也没有出现 Google Chrome 的: FFmpegDemuxer: no supported streams DEMUXER_ERROR_NO_SUPPORTED_STREAMS 因此形成了比较明确的浏览器对照。
十二、对照结果
同一台电脑: Intel Core 5 210H
同一套操作系统: Windows 11 24H2 Build 26100.3194
同一 Intel GPU: Intel(R) Graphics PCI Device ID 0xA7AB
同一驱动: 32.0.101.7088
同一网络环境。 同一网站: https://deepreach.ai/video-qa 同类型 HEVC/H.265 Main 1920x1080 MP4 视频。
结果: Microsoft Edge: 无法正常播放。
Microsoft Edge 默认播放链路: HEVC 视频轨识别成功 → MediaFoundationVideoDecoder → DXVA → D3D11 → VDAVideoDecoder 初始化失败 → DECODER_ERROR_NOT_SUPPORTED → Code 15
Google Chrome: 无法正常播放。
Google Chrome 播放链路: HEVC Main 被识别 → VideoDecoderConfig 被判断不支持 → FFmpegDemuxer 跳过视频轨 → DEMUXER_ERROR_NO_SUPPORTED_STREAMS → Code 14 夸克浏览器: 正常播放。 夸克媒体管线: Apollo MediaPlayer → BUFFERING_HAVE_ENOUGH → kPlay → 正常播放
十三、目前已经执行的排查操作
第六: 夸克浏览器使用 Apollo MediaPlayer 可以在同一设备上正常播放相同类型的视频。 说明在另一套媒体播放链路下,该设备具备播放这些 HEVC 视频的能力。 十五、初步判断 根据目前的日志和 A/B 测试结果,暂时不支持将问题简单归因为: “Intel Core 5 210H 不支持 H.265” 或者: “Intel GPU 不支持 HEVC”。 当前更符合现有证据的情况是: Microsoft Edge / Chromium 媒体管线在调用 Windows Media Foundation、DXVA/D3D11 与 Intel Graphics HEVC 硬件解码能力时存在兼容性或初始化异常。 其中 Microsoft Edge 表现为: 平台 HEVC capability 已被识别 但是实际 VDAVideoDecoder 初始化失败。 Google Chrome 表现为: 当前浏览器没有暴露 HEVC Decoder capability 因此 HEVC 视频轨在更早的 FFmpegDemuxer 阶段即被判定为 unsupported。 具体是 Chromium、Microsoft Edge、Windows Media Foundation、Intel Graphics Driver 还是它们之间的交互导致,现有证据还不足以进一步锁定单一责任组件。 十六、希望 Microsoft Edge 团队协助确认 希望 Microsoft Edge 媒体团队协助调查以下问题:
[日志.txt](/api/attachments/1d8e0e38-92f1-4df1-9860-b47ec12018c0?platform=QnA)
在 Windows 11 上的 Microsoft Edge 中管理媒体播放问题和设置