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);
}
Non capisco il codice precedente, il 'assetURL' non viene utilizzato affatto come viene tradotto l'URL blob nell'URL del video vero? – fahadash
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()'? –
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. –