接收视频块并在浏览器中播放
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...
基本想法: 我正在创建一个应用程序。其中用户在输入字段(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...