📷 Камера
get_frames_from_camera.py
Кадры с камеры и RTSP-поток
camera_examples/get_frames_from_camera.pyБесконечно получает кадры с камеры и публикует их в поток video до Ctrl+C.
Создаёт Camera() и ImageViewer(). В бесконечном цикле получает кадр через get_cv_frame(timeout=5.0) и отправляет его в RTSP-поток video. При Ctrl+C выводится сообщение и ресурсы освобождаются в finally.
Как работает
- Создать
Camera()иImageViewer(). - В цикле получать кадр
camera.get_cv_frame(timeout=5.0). - Если кадр получен —
viewer.imshow("video", frame, fps=30). - При
KeyboardInterruptвывести сообщение об остановке. - В
finallyзакрыть поток и остановить камеру.
Используемые методы SDK
Ключевые параметры
| Параметр | Значение | Описание |
|---|---|---|
timeout | 5.0 с | Ожидание кадра. |
fps | 30 | Частота кадров потока. |
Запуск
cd camera_examples
python3 get_frames_from_camera.pyРезультат
- RTSP-поток
rtsp://10.42.0.1:8889/video/.
Видеопотоки
rtsp://10.42.0.1:8889/video/
Примечания
- Для выхода нажмите
Ctrl+C.
Требования
- Драйвер камеры
gstreamerдля работыImageViewer.
Полный исходный код
Показать get_frames_from_camera.py
from pioneer_sdk2 import Camera, ImageViewer # импортируем классы Camera и ImageViewer из библиотеки pioneer_sdk2
camera = Camera() # создаем экземпляр класса Camera
viewer = ImageViewer() # создаем экземпляр класса ImageViewer
try: # основной код находится внутри блока try
while True: # запускаем бесконечный цикл
frame = camera.get_cv_frame(timeout=5.0) # сохраняем изображение в переменную frame
# timeout=5.0 - время ожидания кадра в секундах
if frame is not None: # проверяем, что изображение получено
viewer.imshow("video", frame, fps=30) # отправляем изображение в RTSP-трансляцию
except KeyboardInterrupt: # если пользователь остановил программу сочетанием Ctrl+C
print("Остановка программы") # выводим сообщение об остановке программы
finally: # блок finally выполнится при завершении программы
viewer.close() # останавливаем RTSP-трансляцию
camera.stop() # закрываем передачу кадров