Html 用于录制用户视频的Web应用程序';s网络摄像机

Html 用于录制用户视频的Web应用程序';s网络摄像机,html,nginx,web-applications,webcam,video-recording,Html,Nginx,Web Applications,Webcam,Video Recording,我感兴趣的是构建一个web应用程序,它将由nginx提供服务,它将要求用户访问其web摄像头,记录给定的时间段,可能会将其重播给用户,并将其存储在服务器中 我也在考虑一个基本的用户界面。这可能是纯HTML+PHP吗?。那会是python吗 这里的类似问题似乎不太相关/有用 您有什么建议?没有。通过浏览器访问用户的网络摄像头需要 服务器端程序不在用户的计算机上运行,因此无法访问其硬件(Python和PHP不能从网页运行客户端)。否。通过浏览器访问用户的网络摄像头需要 服务器端程序不在用户的计算机上

我感兴趣的是构建一个web应用程序,它将由
nginx
提供服务,它将要求用户访问其web摄像头,记录给定的时间段,可能会将其重播给用户,并将其存储在服务器中

我也在考虑一个基本的用户界面。这可能是纯HTML+PHP吗?。那会是python吗

这里的类似问题似乎不太相关/有用


您有什么建议?

没有。通过浏览器访问用户的网络摄像头需要


服务器端程序不在用户的计算机上运行,因此无法访问其硬件(Python和PHP不能从网页运行客户端)。

否。通过浏览器访问用户的网络摄像头需要

服务器端程序不在用户的计算机上运行,因此无法访问其硬件(Python和PHP不能从网页运行客户端)。

您可以使用网络摄像头录制视频

录制视频并将其数据保存到录制的blob中:

函数句柄数据可用(事件){
如果(event.data&&event.data.size>0){
recordedBlobs.push(事件数据);
}
}
函数startRecording(){
recordedBlobs=[];
let options={mimeType:'video/webm;codecs=vp8'};
let types=['video/webm;codecs=vp9','video/webm\;codecs=h264','video/webm','video/mpeg','';
for(让我输入类型){
试一试{
if(MediaRecorder.isTypeSupported(类型[i])){
选项={mimeType:types[i]};
打破
}
}
捕获(e){
log('创建MediaRecorder时出现异常:${JSON.stringify(e)}');
}
}
试一试{
mediaRecorder=新的mediaRecorder(window.stream,选项);
}捕获(e){
错误('创建MediaRecorder时出现异常:${JSON.stringify(e)}');
返回;
}
mediaRecorder.onstop=(事件)=>{
日志('记录器停止:',事件);
};
mediaRecorder.ondataavailable=handleDataAvailable;
mediaRecorder.start(10);//收集10ms的数据
}
函数stopRecording(){
mediaRecorder.stop();
}
将视频数据上载到您的操作页面:

函数上传(){
constblob=newblob(recordedblob,{type:'video/webm'});
var formData=new formData();
append(“video”、blob、fileName+“.webm”);
var xhr=new XMLHttpRequest();
xhr.open(“POST”、“upload.aspx”);
xhr.onreadystatechange=函数(){
if(xhr.readyState==4){
如果(xhr.status==200){
} 
}
};
xhr.onerror=函数(){
警报(`networkerror`);
};
xhr.send(formData);
}
您可以用任何编程语言(PHP、Java、Python或C#)实现操作页面。

您可以使用它从网络摄像头录制视频

录制视频并将其数据保存到录制的blob中:

函数句柄数据可用(事件){
如果(event.data&&event.data.size>0){
recordedBlobs.push(事件数据);
}
}
函数startRecording(){
recordedBlobs=[];
let options={mimeType:'video/webm;codecs=vp8'};
let types=['video/webm;codecs=vp9','video/webm\;codecs=h264','video/webm','video/mpeg','';
for(让我输入类型){
试一试{
if(MediaRecorder.isTypeSupported(类型[i])){
选项={mimeType:types[i]};
打破
}
}
捕获(e){
log('创建MediaRecorder时出现异常:${JSON.stringify(e)}');
}
}
试一试{
mediaRecorder=新的mediaRecorder(window.stream,选项);
}捕获(e){
错误('创建MediaRecorder时出现异常:${JSON.stringify(e)}');
返回;
}
mediaRecorder.onstop=(事件)=>{
日志('记录器停止:',事件);
};
mediaRecorder.ondataavailable=handleDataAvailable;
mediaRecorder.start(10);//收集10ms的数据
}
函数stopRecording(){
mediaRecorder.stop();
}
将视频数据上载到您的操作页面:

函数上传(){
constblob=newblob(recordedblob,{type:'video/webm'});
var formData=new formData();
append(“video”、blob、fileName+“.webm”);
var xhr=new XMLHttpRequest();
xhr.open(“POST”、“upload.aspx”);
xhr.onreadystatechange=函数(){
if(xhr.readyState==4){
如果(xhr.status==200){
} 
}
};
xhr.onerror=函数(){
警报(`networkerror`);
};
xhr.send(formData);
}

您可以用任何编程语言(PHP、Java、Python或C#)实现操作页面。

好的,非常感谢您的回复。那么,这是否意味着使用JS可以做到这一点?记录并保存到服务器?这种情况下需要烧瓶吗?抱歉,我在这个领域几乎没有任何经验,我正在考虑一个应用程序在ML中进行实验。再次感谢。好的,非常感谢您的回复。那么,这是否意味着使用JS可以做到这一点?记录并保存到服务器?这种情况下需要烧瓶吗?抱歉,我在这个领域几乎没有任何经验,我正在考虑一个应用程序来进行ML实验。再次感谢。谢谢你的回答。但是,您能添加一个在HTML中使用此代码的最小示例吗?你看,我绝对是新手:/再次感谢。@nullgeppetto你可以参考。@nullgeppetto如果我的代码可以帮助你,不要忘记接受我的答案。谢谢,谢谢你的回答。但是,您能添加一个在HTML中使用此代码的最小示例吗?你看,我绝对是新手:/再次感谢。@nullgeppetto你可以参考。@nullgeppetto如果我的代码可以帮助你,不要忘记接受我的答案。谢谢