[英]Sending webRTC video stream to server with django channels
我正在尝试创建一个用 django 编写的人脸检测网络应用程序。 该应用程序以这种方式工作。
我知道我不能使用 opencv VideoCapture,因为它只适用于服务器端。 当我在网上阅读时,人们要求我使用 javascript,特别是 webRTC 在客户端开始直播。 所以我找到了这个教程,它解释了如何使用 javascript 在客户端机器上启动网络摄像头。
现在我的问题是如何将每个帧从客户端机器上的 javascript 发送到服务器端的 opencv python?
所有这一切都应该实时发生。 所以我无法保存实时视频,然后在保存的视频上运行 python 代码。
有些站点要求我使用 AJAX 将数据发送到服务器端,但我不确定如何定位要在 javascript 代码中发送的每个帧。
到目前为止,这是我的代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta content="stuff, to, help, search, engines, not" name="keywords">
<meta content="What this page is about." name="description">
<meta content="Display Webcam Stream" name="title">
<title>Display Webcam Stream</title>
<style>
#container {
margin: 0px auto;
width: 500px;
height: 375px;
border: 10px #333 solid;
}
#videoElement {
width: 500px;
height: 375px;
background-color: #666;
}
</style>
</head>
<body>
<div id="container">
<video autoplay="true" id="videoElement">
</video>
</div>
<script>
var video = document.querySelector("#videoElement");
if (navigator.mediaDevices.getUserMedia) {
navigator.mediaDevices.getUserMedia({
video: true
})
.then(function(stream) {
video.srcObject = stream;
// myJson = JSON.stringify(stream)
})
.catch(function(err0r) {
console.log("Something went wrong!");
});
}
console.log(video)
</script>
</body>
</html>
在这段代码中,我如何从网络摄像头访问每一帧。 我尝试使用console.log
打印video
的内容,但这没有帮助。
def index(request):
return render(request, 'cwrtc/index.html', {})
我正在使用 Django 通道,因为我想,要从客户端发送和接收数据,我可能必须使用 Web 套接字。 我使用 python 是因为我计划向应用程序添加更多功能,使用 python 编写代码比使用其他任何语言都更容易。
是否可以将视频流从 javascript 发送到 python?
提前致谢
是的,您可以将视频从 javascript 发送到服务器上的 python,但是,您不能使用 Ajax 或网络套接字发送帧。
这就是你如何做到的。
如果您需要更多帮助,请告诉我。
我认为这不是通过服务器流式传输视频的好方法。 为什么当 webrtc 直接提供 p2p 连接时你甚至想将视频帧发送到服务器。你需要一个套接字库来管理用户并连接它们。你可以将随机生成的 roo_id 传递给 django 通道以创建房间。如果你,我会建议你擅长 nodejs 去 socket.io 库,因为在带有 webrtc 的 django 频道上可用的资源和文档非常少。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.