<video src = blob:url>中的blob是什么?

kul*_*lls 38 youtube url

任何人都可以解释blob:此视频标记中URL中的内容吗?

<video class="" 
       style="width: 640px; height: 360px; left: 0px; top: 0px; transform: none; opacity: 1;" 
       src="blob:https://www.youtube.com/5c42620b-a028-451b-9b64-424996802355">
</video>
Run Code Online (Sandbox Code Playgroud)

apt*_*869 12

这是一个带有shaka播放器的youtube视频,它使用Media Source Extensions在没有浏览器插件的情况下播放DASH内容.

blob url由生成createObjectURL.例如:

var video = document.querySelector('video');

var assetURL = 'frag_bunny.mp4';
// Need to be specific for Blink regarding codecs
// ./mp4info frag_bunny.mp4 | grep Codec
var mimeCodec = 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"';

if ('MediaSource' in window && MediaSource.isTypeSupported(mimeCodec)) {
  var mediaSource = new MediaSource;
  //console.log(mediaSource.readyState); // closed
  video.src = URL.createObjectURL(mediaSource);
  mediaSource.addEventListener('sourceopen', sourceOpen);
} else {
  console.error('Unsupported MIME type or codec: ', mimeCodec);
}
Run Code Online (Sandbox Code Playgroud)

  • 这里似乎缺少一步.`assetURL`定义一次,从不与`mediaSource`一起使用.我在这里看到的只是一个空白视频.`sourceOpen()`的定义是什么? (4认同)
  • 我不明白上面的代码,`assetURL`根本没用到如何将blob URL翻译成实际的视频网址? (2认同)
  • 我认为我们不应该理解这些代码:YouTube 显然想让在浏览器之外访问视频变得尽可能困难。对恰好是 URL 的字符串参数调用 URL.createObjectURL 只是在其前面添加“blob:”;我认为我们不应该知道他们为什么要这样做。 (2认同)