繁体   English   中英

在页面上显示视频流块(node.js)

[英]Display video stream chunks on page (node.js)

我仍然是Node.js的新手,试图弄清楚事情,所以如果我听起来不连贯,请原谅。

因此,我已经阅读了一些有关流的初学者说明,目前正在对其进行测试。 我在项目文件(public / images / videos / Seinfeld.S09E07.720p.WebRip.ReEnc-DeeJayAhmed.mkv)中找到了这些Seinfeld情节(.mkv文件),我想在页面上显示它们。 现在,简单的选择就是将其放在我的ejs文件中视频标签的“ src”中。

但是,我想流式传输视频部分,以便不必等待整个文件准备显示该情节。 我以为可以使用.createReadStream。 但是,我不知道如何将这些准备就绪的视频数据小块传输到网页中,以便在视频播放器中显示它们。

index.js服务器端

var express = require('express');
var router = express.Router();
var fs = require('fs');

    /* GET home page. */
router.get('/', function(req, res, next) {
    var myReadStream = fs.createReadStream(__dirname + '/../images/videos/Seinfeld.S09E07.720p.WebRip.ReEnc-DeeJayAhmed.mkv');

    myReadStream.on('data', function (chunk) {
        // no idea what to do from here
    })
    res.render('index', {
        title: 'Express'
        });
});

module.exports = router;

EJS文件

<!DOCTYPE html>
<html>
  <head>
    <title><%= title %></title>
    <link rel='stylesheet' href='/stylesheets/style.css' />
  </head>
  <body>
    <h1><%= title %></h1>
    <video src="" type="video/mkv" autoplay controls></video>
    <p>Welcome to <%= title %></p>
  </body>
</html>

您可以使用fetch()Response.getReader()在客户端返回ReadableStreamMediaSource来读取服务器的响应流,并附加一个或多个ArrayBuffer表示可以在<video>处呈现的一个或多个媒体资源的块。 <video>元素,请参阅HTML5音频流:精确测量延迟?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM