📷 Камера
camera_stream.py
Поток камеры в течение 30 секунд
camera_examples/camera_stream.pyПубликует поток video ограниченное время (30 с), затем корректно закрывает его.
Упрощённый пример трансляции: запоминается время старта, и пока не истекли cycle_time = 30 секунд, кадры публикуются в поток video. После цикла поток закрывается.
Как работает
- Создать
ImageViewer()иCamera(). - Запомнить время старта
my_time = time.time(). - Пока прошло меньше 30 секунд — получать кадр и вызывать
imshow("video", frame, fps=30). - После цикла вызвать
viewer.close().
Используемые методы SDK
Ключевые параметры
| Параметр | Значение | Описание |
|---|---|---|
cycle_time | 30 с | Длительность трансляции. |
fps | 30 | Частота кадров. |
Запуск
cd camera_examples
python3 camera_stream.pyРезультат
- RTSP-поток
rtsp://10.42.0.1:8889/video/в течение 30 секунд.
Видеопотоки
rtsp://10.42.0.1:8889/video/
Примечания
- Камера здесь не останавливается через
stop()— программа завершается после цикла.
Требования
- Драйвер камеры
gstreamer.
Полный исходный код
Показать camera_stream.py
from pioneer_sdk2 import ImageViewer, Camera # импортируем классы из библиотеки pioneer_sdk2
import time # библиотека time содержит функции для работы со временем
viewer = ImageViewer() # создаем экземпляр класса ImageViewer
camera = Camera() # создаем экземпляр класса Camera
my_time = time.time() # объявляем переменную my_time, присваиваем текущее время (в секундах с 1970 года)
cycle_time = 30 # объявляем переменную cycle_time, присваиваем желаемую длительность цикла
while time.time() - my_time < cycle_time: # запускаем цикл, код будет повторяться, пока условие верно
frame = camera.get_cv_frame() # получаем кадр и присваиваем данные переменной frame
viewer.imshow("video", frame, fps=30) # запускаем трансляцию, содержит аргументы:
# video - название трансляции
# frame - переменная с ранее полученным кадром
# fps=30 - количество кадров в секунду при передаче видео
# трансляция выполняется по адресу: 10.42.0.1:8889/video
# ip - по умолчанию 10.42.0.1 или скопировать из раздела хот-спот на компьютере
# 8889 - порт трансляции
# name - название трансляции
# при подключения квадрокоптера к вашей сети:
# трансляция выполняется по адресу: ваш ip:8889/video
viewer.close() # останавливаем видеопоток