8a21809f18
- implement ONVIF motion watcher to handle motion events - add configuration options for motion hold time and ONVIF URL - remap motion mode from "onvif" to "api" for compatibility - log ONVIF motion watcher activity for better debugging feat(onvif): implement event subscription for motion detection - create PullPoint subscription to receive motion events - implement methods for pulling messages and renewing subscriptions - handle event requests and responses specific to motion detection test(onvif): add unit tests for motion event parsing and subscription - create tests for parsing various motion event XML responses - verify correct handling of multiple notifications and edge cases - test resolving event addresses for ONVIF clients fix(hksv): improve motion detection logging - log warnings when accessory or character not found during motion detection - log number of listeners notified during motion state changes feat(hap): add listener count method - introduce method to retrieve the number of listeners for a character feat(onvif): enhance ONVIF client with event URL handling - extract event URL from ONVIF device response for subscription management
Modules
go2rtc tries to name formats, protocols and codecs the same way they are named in FFmpeg. Some formats and protocols go2rtc supports exclusively. They have no equivalent in FFmpeg.
- The
echo,expr,hassandonvifmodules receive a link to a stream. They don't know the protocol in advance. - The
execandffmpegmodules support many formats. They are identical to thehttpmodule. - The
api,app,debug,ngrok,pinggy,srtp,streamsare supporting modules.
Modules implement communication APIs: authorization, encryption, command set, structure of media packets.
Formats describe the structure of the data being transmitted.
Protocols implement transport for data transmission.
| module | formats | protocols | input | output | ingest | two-way |
|---|---|---|---|---|---|---|
alsa |
pcm |
ioctl |
yes | |||
bubble |
- | http |
yes | |||
doorbird |
mulaw |
http |
yes | yes | ||
dvrip |
- | tcp |
yes | yes | ||
echo |
* | * | yes | |||
eseecloud |
rtp |
http |
yes | |||
exec |
* | pipe, rtsp |
yes | yes | ||
expr |
* | * | yes | |||
ffmpeg |
* | pipe, rtsp |
yes | |||
flussonic |
mp4 |
ws |
yes | |||
gopro |
mpegts |
udp |
yes | |||
hass |
* | * | yes | |||
hls |
mpegts, mp4 |
http |
yes | |||
homekit |
srtp |
hap |
yes | yes | no | |
http |
adts |
http, tcp |
yes | |||
http |
flv |
http, tcp |
yes | |||
http |
h264 |
http, tcp |
yes | |||
http |
hevc |
http, tcp |
yes | |||
http |
hls |
http, tcp |
yes | |||
http |
mjpeg |
http, tcp |
yes | |||
http |
mpjpeg |
http |
yes | |||
http |
mpegts |
http, tcp |
yes | |||
http |
wav |
http, tcp |
yes | |||
http |
yuv4mpegpipe |
http, tcp |
yes | |||
isapi |
alaw, mulaw |
http |
yes | |||
ivideon |
mp4 |
ws |
yes | |||
kasa |
h264, mulaw |
http |
yes | |||
mjpeg |
ascii |
http |
yes | |||
mjpeg |
jpeg |
http |
yes | |||
mjpeg |
mpjpeg |
http |
yes | yes | ||
mjpeg |
yuv4mpegpipe |
http |
yes | |||
mp4 |
mp4 |
http, ws |
yes | |||
mpeg |
adts |
http |
yes | |||
mpeg |
mpegts |
http |
yes | yes | ||
multitrans |
rtp |
tcp |
yes | |||
nest |
srtp |
rtsp, webrtc |
yes | no | ||
onvif |
rtp |
* | yes | yes | ||
ring |
srtp |
webrtc |
yes | yes | ||
roborock |
srtp |
webrtc |
yes | yes | ||
rtmp |
flv |
rtmp |
yes | yes | yes | |
rtmp |
flv |
http |
yes | yes | ||
rtsp |
rtsp |
rtsp |
yes | yes | yes | yes |
tapo |
mpegts |
http |
yes | yes | ||
tuya |
srtp |
webrtc |
yes | yes | ||
v4l2 |
rawvideo |
ioctl |
yes | |||
webrtc |
srtp |
webrtc |
yes | yes | yes | yes |
webtorrent |
srtp |
webrtc |
yes | yes | ||
wyoming |
pcm |
tcp |
yes | |||
wyze |
- | tutk |
yes | yes | ||
xiaomi |
- | cs2, tutk |
yes | yes | ||
yandex |
srtp |
webrtc |
yes |