接收视频块并在浏览器中播放

Receive chunks of video and play them in browser

基本想法: 我正在创建一个应用程序。其中用户在输入字段(type="file")中选择本地文件(mp4),然后将视频流式传输给其他用户。 我正在考虑操作 javascript 中的文件。并通过(datachannels webRTC)将其逐块发送给另一个用户,然后在另一端逐块播放。

我知道我可以 "assemble" 块使用 - MediaSource API

问题:如何使用 javascript 将视频分割成块?我已经用谷歌搜索了一段时间,但似乎找不到图书馆(也许我用谷歌搜索了错误的关键字?)。

谢谢!

使用blob#slice分割视频

// simulate a file
blob = new Blob(['ab'])
chunk1 = blob.slice(0, 1)
chunk2 = blob.slice(1, 2)

console.log(blob.size)
console.log(chunk1.size)
console.log(chunk2.size)

我认为您可能感兴趣的另一件事是文件流...

要从 blob 中获取 ReadableStream,您可以使用 hackish why of doing

stream = new Response(blob).body
reader = stream.getReader()
reader.read().then(chunk => spread(chunk)) 

另一个很酷的库,否则你可以使用 Screw-FileReader

来流式传输 blob

没有什么比使用 WebTorrent 分享视频更棒的了...使用 WebRTC...