如何使用 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
我正在从事与视频流相关的 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