需要:ウェブカメラのビデオフレームを埋め込むことがPyQt5で読みます
解決策1:使用OpenCVの
使用したネットワークカメラフレーム(Local Area Network)を取得した後、タイマーを使用してOpenCVの、画面は定期的に更新されます。
以下は、キーコードです:
import cv2
self.timer_camera = QTimer() # 初始化定时器
self.cap = cv2.VideoCapture() # 初始化摄像头
self.timer_camera.timeout.connect(self.show_camera) #当计时器到了一定的时间调用show_camera函数
def show_camera(self):
flag, self.image = self.cap.read()
show = cv2.resize(self.image, (600, 350))
show = cv2.cvtColor(show, cv2.COLOR_BGR2RGB)
showImage = QImage(show.data, show.shape[1], show.shape[0], QImage.Format_RGB888)
self.cameraLabel.setPixmap(QPixmap.fromImage(showImage)) #在Label标签上显示图像
def openCamera(self):
flag = self.cap.open("rtsp url")
if flag == False:
print("请检测相机与电脑是否连接正确")
else:
self.timer_camera.start(30) #设置计时间隔并启动(1000ms == 1s)
def closeCamera(self):
self.timer_camera.stop() #停止计时器
self.cap.release() #释放camera
self.cameraLabel.clear() #清空画面
本実施の形態と同じローカルカメラを得、ローカルカメラキャップ= cv2.VideoCapture(0)を使用すると同様に、ローカルカメラがテスト中に取得することができるが、RTSPウェブカムストリームを取得していません。問題は、(カメラ自体が恐怖の問題かもしれない)ですそして、ビデオカメラを再生するために使用することができますRTSPアドレスVLCソフトウェアを使用して、私は知りません。。。。。。。また、第二の選択肢と考えられています。
対処方法2:VLCを使用します
参考
VLCをインストールします
python -m pip install python-vlc
if args:
self.instance = vlc.Instance(*args)
self.mediaplayer = self.instance.media_player_new()
else:
self.mediaplayer = vlc.MediaPlayer()
if platform.system() == "Windows":
self.mediaplayer.set_hwnd(self.cameraLabel.winId()) #在cameraLabel显示帧
def openCamera(self):
url = "rtsp url"
self.mediaplayer.set_mrl(url)
self.mediaplayer.play()
def closeCamera(self):
self.mediaplayer.stop()
self.mediaplayer.release()