如何使用 Node JS 流式传输视频并在我的 Django 项目中使用它?

How do I stream video using Node JS and Use it in my Django Project?

我正在从事与视频流相关的 Django 项目。我所有的基本功能(如身份验证、登录等)都是使用 Django 实现的。现在我想在我的 Web 应用程序上流式传输视频。

我没有找到直接使用 Django 流式传输我的视频的解决方案。因此,我决定使用 Node.js 流式传输我的视频,并将此功能集成到我的 Django 项目中。

这里是 Node-Express 代码 我用来在我的前端流式传输我的视频。

    app.get("/video", function (req, res) {
  
  const range = req.headers.range;
  if (!range) {
    res.status(400).send("Requires Range header");
  }

  
  const videoPath = "mySample.mp4";
  const videoSize = fs.statSync("mySample.mp4").size;

  
  const CHUNK_SIZE = 10 ** 6; // 1MB
  const start = Number(range.replace(/\D/g, ""));
  const end = Math.min(start + CHUNK_SIZE, videoSize - 1);

  
  const contentLength = end - start + 1;
  const headers = {
    "Content-Range": `bytes ${start}-${end}/${videoSize}`,
    "Accept-Ranges": "bytes",
    "Content-Length": contentLength,
    "Content-Type": "video/mp4",
  };

  // HTTP Status 206 for Partial Content
  res.writeHead(206, headers);

  
  const videoStream = fs.createReadStream(videoPath, { start, end });

  
  videoStream.pipe(res);
});

如果有人能告诉我如何将它与我的 Django 项目集成。

谢谢:)

您可以在 HTML 模板中简单地使用节点 API 着陆点作为源 URL。

这就是我在我的 ReactJS 应用程序中显示视频的方式,但它也应该在简单的 HTML 页面中工作。

<video controls>
    <source
       id="hi"
       src="http://localhost:5001/****/video" // this url was the node API
     />
 </video>

您可以使用 Django 频道流式传输视频,请参阅 link

https://benwilber.github.io/nginx/rtmp/live/video/streaming/django/2018/10/20/building-a-live-video-streaming-website-part-2-the-applications.html