v4l2 -> QByteArray(?) -> QWebsocket -> Интернет -> {ПК, Android, Интернет}
Как можно догадаться по плитке, я хотел бы транслировать поток веб-камеры различным клиентам. Я знаю, что существует много решений (в виде движения), но у меня уже есть работающая инфраструктура, основанная на программном обеспечении Qt-сервера и веб-сокете для связи с внешним миром.
Я прочитал исходный код других приложений Linux, таких как Kopete и Motion, чтобы найти наиболее эффективный способ, но не пришел к хорошему выводу. Другая цель - сохранить поток веб-сокетов в формате, который можно декодировать, например, с помощью javascript в браузере. Источник, устройство v4l2, уже доступен. Существуют разные форматы (YUV, MJPEG, ...), но я не знаю, какой (стандартный) формат выбрать для потоковой передачи. Другое требование - сохранить поток на жесткий диск и обработать его (opencv?), Чтобы найти движение. Так что вопрос в том, должен ли я передать QByteArray, сжатый zlib, или использовать mjpeg, который я не знаю, как использовать. Используемая веб-камера представляет собой устройство uvcvideo:
enter ioctl: VIDIOC_ENUM_FMT
Index : 0
Type : Video Capture
Pixel Format: 'MJPG' (compressed)
Name : MJPEG
Index : 1
Type : Video Capture
Pixel Format: 'YUYV'
Name : YUV 4:2:2 (YUYV)code
Если честно, я не уверен, как движение делает это в деталях, потому что это могут быть способы выбора.
Спасибо маленькое