You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chromium浏览器Blob视频链接失效?实为H.264格式不支持咨询

Chromium中Blob URL视频无法加载的问题:原因与解决方案

经确认,该问题与Blob本身及URL.createObjectURL()的使用无关,根本原因是你所用的Chromium 122.0.6258.0版本不支持H.264视频编码格式。

问题背景与原因解析

多数主流浏览器(包括正式版Chrome)默认支持H.264,但部分用于自动化测试的Chromium定制版本(尤其是未启用商用 codec 的版本)会移除对H.264的支持——因为H.264涉及专利授权,开源的Chromium核心本身并不强制包含该编码支持。

你遇到的「Blob URL生成但无法作为视频源、loadedmetadata事件不触发、新标签页无法打开」等问题,本质是Chromium无法解码H.264视频文件,导致视频资源加载失败,并非安全限制导致。

解决办法

  • 更换视频编码格式:将测试视频转换为Chromium原生支持的开源编码(如VP9/AV1),这类编码无需专利授权,Chromium默认支持。
  • 使用带商用Codec的Chromium版本:如果必须使用H.264,需采用包含H.264支持的Chromium发行版(比如正式版Chrome),而非纯开源的Chromium测试版本。
  • 验证编码支持:可在Chromium控制台执行以下代码确认是否支持H.264:
    MediaSource.isTypeSupported('video/mp4; codecs="avc1.42E01E"')
    
    返回false则说明当前版本不支持H.264编码。

原代码示例

function setVideo(el) 
{
  console.log('inited');
    const file = el.files[0];
  let video = document.querySelector('#video');
  let url = URL.createObjectURL(file);
  let videoSrc = video.querySelector('source');
  videoSrc.src = url;
  videoSrc.setAttribute('type', file.type);
  let metaLoaded = function () {
   console.log('metaloaded');
  };
  
  video.load();

  if ( video.readyState > 0 )
    metaLoaded();
  else
    video.addEventListener('loadedmetadata', metaLoaded, false);
}

内容的提问来源于stack exchange,提问作者Maksim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 20:52:42