78ef8fc064
Replace time.Now() calls in hot path with frame-based timing: - Pre-compute triggerLevel (integer comparison instead of float division) - Calibrate hold/cooldown budgets from FPS (default 30fps) - Periodic FPS recalibration every 150 frames for accuracy - Active motion path: 47ns → 3.6ns (13x faster) Update schema.json with detect mode and motion_threshold. Add threshold tuning guide to README.
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 |