Как использовать полученный stream в теге video MinioJS

minioClient.getObject("busket", "name.mp4", function(
  err,
  stream
) {
  if (err) {
    return console.log(err);
  }
  console.log("stream", stream);
  stream.on("data", function(chunk) {
    size += chunk.length;
  });
  stream.on("end", function() {
    console.log("End. Total size = " + size);
  });
  stream.on("error", function(err) {
    console.log(err);
  });
});

let player = document.getElementById("introduction");

Как использовать полученный stream в player?


Ответы (2 шт):

Автор решения: Vasily

Если Вы работаете только с современными браузерами, то:

// если #introduction являеться тегом <video />

player.setAttribute("src", stream)

// если это обертка над <video />

player.querySelector("video").setAttribute("src", stream)

По состоянию на 2020 год даже в iOS добавили поддержку VP8 через WebRTC, а новые iPad'ы стали поддерживать Media Source Extensions.

→ Ссылка
Автор решения: Alex_Verizhnikov

Спасибо огромное за ответ. Но мне кажется тут будет что то другое. Вот похожий ответ нашел на просторах интернета. Но он тоже не работает.(((

function startVideo() { player = document.getElementById("player")

const mediaSource = new MediaSource()
const url = URL.createObjectURL(mediaSource)

player.src = url

mediaSource.addEventListener('sourceopen', sourceOpen)

}

async function sourceOpen() { let mediaSource = this

const videoSourceBuffer = mediaSource.addSourceBuffer('video/mp4; codecs="avc1.42E01E, mp4a.40.2"')

let fetchResult = await fetch(`/asset/video/${videoLocation}`)
let videoData = await fetchResult.arrayBuffer()

videoSourceBuffer.appendBuffer(videoData)

}

→ Ссылка