Javascript NodeJS+;Websockets&x2B;HTML5视频标签和';流媒体';

Javascript NodeJS+;Websockets&x2B;HTML5视频标签和';流媒体';,javascript,html,node.js,websocket,streaming,Javascript,Html,Node.js,Websocket,Streaming,我正在尝试使用WebSocket以标记将一个大视频文件流式传输到浏览器 视频播放效果很好,但它总是等到下载完整个视频后再播放,这会导致很大的延迟。设置autoplay=true和preload=“none”似乎对此没有影响。因此,我研究了将视频分块,然后将其作为blob URL发送到浏览器。对于我正在使用的分块 到目前为止,我的代码是: var chunkingStreams = require('chunking-streams'); var SizeChunker =

我正在尝试使用WebSocket以
标记将一个大视频文件流式传输到浏览器

视频播放效果很好,但它总是等到下载完整个视频后再播放,这会导致很大的延迟。设置
autoplay=true
preload=“none”
似乎对此没有影响。因此,我研究了将视频分块,然后将其作为blob URL发送到浏览器。对于我正在使用的分块

到目前为止,我的代码是:

var chunkingStreams = require('chunking-streams');
            var SizeChunker = chunkingStreams.Chunker;

            var input = fs.createReadStream('src-videos/redcliff450.webm'),
                chunker = new SizeChunker({                       
                    chunkSize: 2000000                         
                }),
                output;

            chunker.on('chunkStart', function(id, done) {
                output = fs.createWriteStream('src-videos/output/' + id + '.webm');
                done();
            });

            chunker.on('chunkEnd', function(id, done) { 
                output.end();
                done();
            });

            chunker.on('data', function(chunk) {
                output.write(chunk.data);
            });               


            input.pipe(chunker);

            //test out the video using just the first chunk
            var smallChunk = fs.createReadStream('src-videos/output/0.webm');              
            client.send(smallChunk);
我的计划是使数据块足够小,以便快速加载(比如~2MB),然后在客户机准备就绪时发送下一个数据块。我的问题是,第一个块(0)只播放3秒钟左右,然后直接跳到末尾并停止。这发生在Chrome和FF中

增加块大小直到它包含整个视频仍然只会导致前3秒播放


如果我在VLC中直接从HDD播放分块视频0.webm,则播放效果良好。如果我从浏览器中下载流并在VLC中播放,它只播放前3秒。描述我希望通过HTTP执行的操作。有人有关于WebSocket的指针吗

移除
输入管道(chunker)解决了这个问题。但我不太清楚原因,所以我会调查原因

我似乎不明白,我需要一些帮助。我试图通过socket.io将视频从getUserMedia发送到服务器,反之,通过socket.io将视频数据从服务器发送到客户端,以放置在html5视频元素中。