NodeJS将MJPEG流式传输到浏览器,一些图像未显示

时间:2013-02-19 23:56:23

标签: node.js http video buffer mjpeg

我只是向浏览器发送5个jpeg。 (实际上下面的代码可能更优雅,但它只是为了显示这个想法)

    im[0] = fs.readFileSync("banner1.jpg");
    im[1] = fs.readFileSync("banner2.jpg");
    im[2] = fs.readFileSync("banner3.jpg");
    im[3] = fs.readFileSync("banner4.jpg");
    im[4] = fs.readFileSync("banner5.jpg");

    app.get("/image", function(req,res){
        res.setHeader('Content-type', 'multipart/x-mixed-replace; boundary=--myboundary');
        res.write("Content-Type: image/jpeg\r\n\r\n");
        res.write(im[0]);
        res.write("\r\n--myboundary\r\n");
        var time = 1000;
        setTimeout(function(){
            res.write("Content-Type: image/jpeg\r\n\r\n");
            res.write(im[1]);
            res.write("\r\n--myboundary\r\n");
        },time*1);
        setTimeout(function(){
            res.write("Content-Type: image/jpeg\r\n\r\n");
            res.write(im[2]);
            res.write("\r\n--myboundary\r\n");
        },time*2);
        setTimeout(function(){
            res.write("Content-Type: image/jpeg\r\n\r\n");
            res.write(im[3]);
            res.write("\r\n--myboundary\r\n");
        },time*3);
        setTimeout(function(){
            res.write("Content-Type: image/jpeg\r\n\r\n");
            res.write(im[4]);
            res.write("\r\n--myboundary\r\n");
            res.end();
        },time*4);
    });

但问题是它没有显示im[3],即使我改变了时间,那么问题是什么? Chrome是缓冲数据还是NodeJS?

0 个答案:

没有答案