#After fuzzing using this code => https://pastebin.com/7MdwVwu2 #will find the path and use it to display video though this below code #with find root password on video stream import sys import cv2 from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout, QDesktopWidget, QComboBox from PyQt5.QtCore import QThread, Qt, pyqtSignal, pyqtSlot from PyQt5.QtGui import QImage, QPixmap class VideoThread(QThread): change_pixmap_signal = pyqtSignal(QImage) def __init__(self, url, resolution): super().__init__() self.url = url self.resolution = resolution self._run_flag = True def run(self): cap = cv2.VideoCapture(self.url) # Set capture parameters for the selected resolution cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('H', '2', '6', '4')) cap.set(cv2.CAP_PROP_FRAME_WIDTH, self.resolution[0]) cap.set(cv2.CAP_PROP_FRAME_HEIGHT, self.resolution[1]) while self._run_flag: ret, cv_img = cap.read() if ret: rgb_image = cv2.cvtColor(cv_img, cv2.COLOR_BGR2RGB) h, w, ch = rgb_image.shape bytes_per_line = ch * w convert_to_qt_format = QImage(rgb_image.data, w, h, bytes_per_line, QImage.Format_RGB888) self.change_pixmap_signal.emit(convert_to_qt_format) cap.release() def stop(self): self._run_flag = False self.wait() class App(QWidget): def __init__(self): super().__init__() self.setWindowTitle("Ultra HD RTSP Player") self.resolutions = { "1080p (1920x1080)": (1920, 1080), "4K (3840x2160)": (3840, 2160), "8K (7680x4320)": (7680, 4320) } self.current_resolution = self.resolutions["4K (3840x2160)"] # Default to 4K self.init_ui() def init_ui(self): self.image_label = QLabel(self) self.image_label.resize(*self.current_resolution) self.resolution_combo = QComboBox(self) self.resolution_combo.addItems(self.resolutions.keys()) self.resolution_combo.setCurrentText("4K (3840x2160)") self.resolution_combo.currentTextChanged.connect(self.change_resolution) vbox = QVBoxLayout() vbox.addWidget(self.resolution_combo) vbox.addWidget(self.image_label) self.setLayout(vbox) self.thread = VideoThread("rtsp://127.0.0.1:554/mpeg4", self.current_resolution) self.thread.change_pixmap_signal.connect(self.update_image) self.thread.start() self.center_window() def center_window(self): qtRectangle = self.frameGeometry() centerPoint = QDesktopWidget().availableGeometry().center() qtRectangle.moveCenter(centerPoint) self.move(qtRectangle.topLeft()) @pyqtSlot(QImage) def update_image(self, qt_img): scaled_img = qt_img.scaled(self.image_label.size(), Qt.KeepAspectRatio, Qt.SmoothTransformation) self.image_label.setPixmap(QPixmap.fromImage(scaled_img)) def change_resolution(self, resolution_text): self.current_resolution = self.resolutions[resolution_text] self.image_label.resize(*self.current_resolution) self.thread.stop() self.thread = VideoThread("rtsp://127.0.0.1:554/mpeg4", self.current_resolution) self.thread.change_pixmap_signal.connect(self.update_image) self.thread.start() self.center_window() def closeEvent(self, event): self.thread.stop() event.accept() if __name__ == "__main__": app = QApplication(sys.argv) a = App() a.show() sys.exit(app.exec_())