Blob 视频链接在 Chromium 浏览器中不起作用

问题描述 投票:0回答:1

我使用 URL.createObjectURL() 生成本地视频的 blob-url。 它适用于大多数浏览器(经过测试的移动和桌面浏览器)。 但现在我尝试使用 Chromium(用于自动测试目的)。 它确实生成了 blob-url,但它只是空的。 所以我无法将此网址放入视频源。显然,像“loadedmetadata”这样的视频事件不会触发。 此外,blob 链接在其他选项卡中不起作用。

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);
}

示例 https://jsfiddle.net/pwdhs42v/3/ 适用于除 Chromium (122.0.6258.0) 之外的所有浏览器 知道为什么会这样吗?这可能是一些安全限制吗?如果是这样,我可以禁用它吗?

提前致谢!

javascript html5-video blob chromium
1个回答
0
投票

我检查了 chrome://media-internals,并得到了这些错误:

*FFmpegDemuxer:跳过无效或不支持的视频轨道

FFmpegDemuxer:不支持流

“警告,FFmpegDemuxer 无法从复用流创建有效/支持的视频解码器配置,*

Chromium 不支持开箱即用的 h264 编解码器,讽刺的是,我所有的测试视频都是以这种格式编码的。

我应该在这里检查一下: https://www.chromium.org/audio-video/

所以,我必须使用其他视频格式或构建支持 h264 的 Chromium。

© www.soinside.com 2019 - 2024. All rights reserved.