About Multi-camera viewer optimized for RTSP streams
1import os
2import sys
3
4os.environ['OPENCV_FFMPEG_LOGLEVEL'] = '-8'
5os.environ['OPENCV_LOG_LEVEL'] = 'SILENT'
6os.environ['AV_LOG_FORCE_NOCOLOR'] = '1'
7os.environ['AV_LOG_FORCE_LEVEL'] = '-8'
8os.environ['OPENCV_FFMPEG_CAPTURE_OPTIONS'] = 'rtsp_transport;tcp|loglevel;quiet'
9
10import cv2
11from PyQt6.QtWidgets import QApplication
12
13from main_window import MainWindow
14
15
16def main():
17 # Try to reduce OpenCV logging noise if the function exists in this build
18 try:
19 cv2.setLogLevel(0)
20 except AttributeError:
21 # Older Fedora/OpenCV builds may not provide setLogLevel; ignore in that case
22 pass
23
24 app = QApplication(sys.argv)
25 app.setStyle('Fusion')
26
27 # Dark Theme (optional)
28 app.setStyleSheet("""
29 QMainWindow, QWidget {
30 background-color: #2b2b2b;
31 color: #e0e0e0;
32 }
33 QGroupBox {
34 border: 1px solid #555;
35 border-radius: 5px;
36 margin-top: 10px;
37 padding-top: 10px;
38 }
39 QGroupBox::title {
40 subcontrol-origin: margin;
41 left: 10px;
42 padding: 0 5px 0 5px;
43 }
44 QPushButton {
45 background-color: #404040;
46 border: 1px solid #555;
47 padding: 5px 15px;
48 border-radius: 3px;
49 }
50 QPushButton:hover {
51 background-color: #4a4a4a;
52 }
53 QPushButton:pressed {
54 background-color: #353535;
55 }
56 QLineEdit, QSpinBox {
57 background-color: #353535;
58 border: 1px solid #555;
59 padding: 5px;
60 border-radius: 3px;
61 }
62 """)
63
64 window = MainWindow()
65 window.show()
66 sys.exit(app.exec())
67
68
69if __name__ == '__main__':
70 main()