2015-10-28 13 views
27

Qualcuno può spiegare cosa indica l'blob: nell'URL in questo tag video?Cos'è il blob in <video src = 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> 

risposta

10

Questo è un video di YouTube con shaka player che riproduce i contenuti DASH senza plugin del browser mediante Media Source Extensions.

L'url blob viene generato da createObjectURL. ad esempio:

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

Non capisco il codice precedente, il 'assetURL' non viene utilizzato affatto come viene tradotto l'URL blob nell'URL del video vero? – fahadash

+1

Sembra che manchi un passaggio. 'assetURL' è definito una volta e mai usato con' mediaSource'. Tutto quello che posso vedere succedere qui è un video vuoto. E qual è la definizione di 'sourceOpen()'? –

+0

Non penso che dovremmo capire il codice: YouTube evidentemente vuole rendere il più difficile possibile l'accesso ai video al di fuori del browser. Chiamando URL.createObjectURL su un argomento di stringa che sembra essere un URL mette semplicemente "blob:" prima di esso; Non penso che dovremmo sapere perché volevano farlo. –