Video streaming with HTML 5 via node.js

后端 未结 8 1999
青春惊慌失措
青春惊慌失措 2020-11-30 18:01

I\'m trying to set up a web server that will support streaming video to an HTML5 video tag using node.js. Here\'s my code so far:

var range = request.header         


        
8条回答
  •  醉话见心
    2020-11-30 18:29

    I am using the MVC framework sails.js on top of Node.js and I managed to get it working fine with the following code:

    /**
     * VideoController
     *
     * @module      :: Controller
     * @description :: Contains logic for handling requests.
     */
    
     var fs = require('fs');
    
    module.exports = {
    
      /* e.g.
      sayHello: function (req, res) {
        res.send('hello world!');
      }
      */
    
      /**
       * /video/stream
       */ 
      stream: function (req,res) {
    
        // This will render the view: 
        // C:\Users\sam\Documents\Dev\Fun\mymoviebank/views/video/stream.ejs
        res.view();
    
      },
    
      play: function (req,res) {
    
        fs.readFile('/Users/sam/Videos/big_buck_bunny.mp4', function (err, data) {
          if (err) throw err;
    
          var range = req.headers.range;
            var total = data.length;
    
            var parts = range.replace(/bytes=/, "").split("-");
            var partialstart = parts[0];
            var partialend = parts[1];
    
            var start = parseInt(partialstart, 10);
            var end = partialend ? parseInt(partialend, 10) : total-1;
    
            var chunksize = (end-start)+1;
    
            res.writeHead(206, { "Content-Range": "bytes " + start + "-" + end + "/" + total, "Accept-Ranges": "bytes", "Content-Length": chunksize, "Content-Type": 'video/mp4' });
            res.end(data);
    
        });
    
      }
    
    };
    

    Hope this helps

提交回复
热议问题