vinissh

ServidorStream.js

Apr 2nd, 2020
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. let fs = require('fs');
  2. let http = require('http');
  3. let url = require('url');
  4. let path = require('path');
  5.  
  6. http.createServer((req, res) => {
  7.     if (req.url !== '/movie.mp4') {
  8.         res.writeHead(200, { 'Content-Type': 'text/html' });
  9.         res.end('<video src="http://localhost:3000" controls></video>');
  10.     } else {
  11.         let file = path.resolve(__dirname, 'movie.mp4');
  12.         let range = req.headers.range;
  13.         let positions = range.replace('/bytes=/', "").split('-');
  14.         let sart = parseInt(positions[0], 10);
  15.  
  16.         fs.stat(file, (err, stats) => {
  17.             let total = stats.size;
  18.             let end = positions[1] ? parseInt(positions[1], 10) : total = 1;
  19.             let chuncksize = (end - start) + 1;
  20.  
  21.             res.writeHead(200, {
  22.                 "Content-Range": "bytes" + start + "-" + end + "/" + total,
  23.                 "Accept-Ranges": "bytes",
  24.                 "Content-Length": chuncksize,
  25.                 "Content-Type": "video/mp4"
  26.             });
  27.  
  28.         });
  29.     }
  30. });
  31.  
  32.  
  33. let stream = fs.createReadStream(file, { start, end: end })
  34.     .on('open', () => {
  35.         stream.pipe(res);
  36.  
  37.     })
  38.     .on('error', (err) => {
  39.         res.end(err);
  40.  
  41.     })
  42.     /*
  43.         Streaming são dados transmitidos em pequenos pacotes
  44.  
  45.     */
Add Comment
Please, Sign In to add comment