问题描述
我在 jetson nano 上使用 raspBerry pi 相机 v2。使用 gstreamer 和 python 可以正常工作,但尝试通过 javascript 运行它不起作用。
这是我的一些方法:
方法 1:
使用导航器:
<body>
<div id="container">
<video autoplay="true" id="videoElement"></video>
</div>
<!--<script type="module" src="./picam.js"></script>-->
<script>
var video = document.querySelector("#videoElement");
if (navigator.mediaDevices.getUserMedia) {
navigator.mediaDevices.getUserMedia({ video: true })
.then(function (stream) {
video.srcObject = stream;
})
}
</script>
</body>
有回应:
(index):1 Uncaught (in promise) DOMException: Requested device not 找到
方法 2:
使用: https://www.npmjs.com/package/pi-camera-connect
<body>
<div id="container">
<video autoplay="true" id="videoElement"></video>
</div>
<script>
const { StreamCamera,Codec } = require("pi-camera-connect");
const streamCamera = new StreamCamera({
codec: Codec.H264
});
const writeStream = fs.createWriteStream("video-stream.h264");
const videoStream = streamCamera.createStream();
videoStream.pipe(writeStream);
streamCamera.startCapture().then(() => {
setTimeout(() => streamCamera.stopCapture(),5000);
}); </script>
</body>
</html>
未捕获的 ReferenceError: require 未定义
方法 3:
<body>
<div id="container">
<video autoplay="true" id="videoElement"></video>
</div>
<script type="module">
import { StreamCamera,Codec } from "pi-camera-connect";
import * as fs from "fs";
// Capture 5 seconds of H264 video and save to disk
const runApp = async () => {
const streamCamera = new StreamCamera({
codec: Codec.H264
});
const videoStream = streamCamera.createStream();
const writeStream = fs.createWriteStream("video-stream.h264");
videoStream.pipe(writeStream);
await streamCamera.startCapture();
await new Promise(resolve => setTimeout(() => resolve(),5000));
await streamCamera.stopCapture();
};
runApp();
</script>
</body>
错误:
未捕获的类型错误:无法解析模块说明符 “pi-camera-connect”。
有人用javascript在jetson nano上成功运行过raspBerry pi相机吗?
这个python方法虽然很好用:
import cv2
print(cv2.__version__)
dispW=640
dispH=480
flip=2
camSet='nvarguscamerasrc ! video/x-raw(memory:NVMM),width=3264,height=2464,format=NV12,framerate=21/1 ! nvvidconv flip-method='+str(flip)+' ! video/x-raw,width='+str(dispW)+',height='+str(dispH)+',format=BGRx ! videoconvert ! video/x-raw,format=BGR ! appsink'
cam= cv2.VideoCapture(camSet)
while True:
ret,frame = cam.read()
cv2.imshow('nanoCam',frame)
if cv2.waitKey(1)==ord('q'):
break
cam.release()
cv2.destroyAllWindows()
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)