# 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`], [`hass`] and [`onvif`] modules receive a link to a stream. They don't know the protocol in advance. - The [`exec`] and [`ffmpeg`] modules support many formats. They are identical to the [`http`] module. - The [`api`], [`app`], [`debug`], [`ngrok`], [`pinggy`], [`srtp`], [`streams`] are 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 | | | | [`alsa`]: alsa/README.md [`api`]: api/README.md [`app`]: app/README.md [`bubble`]: bubble/README.md [`debug`]: debug/README.md [`doorbird`]: doorbird/README.md [`dvrip`]: dvrip/README.md [`echo`]: echo/README.md [`eseecloud`]: eseecloud/README.md [`exec`]: exec/README.md [`expr`]: expr/README.md [`ffmpeg`]: ffmpeg/README.md [`flussonic`]: flussonic/README.md [`gopro`]: gopro/README.md [`hass`]: hass/README.md [`hls`]: hls/README.md [`homekit`]: homekit/README.md [`http`]: http/README.md [`isapi`]: isapi/README.md [`ivideon`]: ivideon/README.md [`kasa`]: kasa/README.md [`mjpeg`]: mjpeg/README.md [`mp4`]: mp4/README.md [`mpeg`]: mpeg/README.md [`multitrans`]: multitrans/README.md [`nest`]: nest/README.md [`ngrok`]: ngrok/README.md [`onvif`]: onvif/README.md [`pinggy`]: pinggy/README.md [`ring`]: ring/README.md [`roborock`]: roborock/README.md [`rtmp`]: rtmp/README.md [`rtsp`]: rtsp/README.md [`srtp`]: srtp/README.md [`streams`]: streams/README.md [`tapo`]: tapo/README.md [`tuya`]: tuya/README.md [`v4l2`]: v4l2/README.md [`webrtc`]: webrtc/README.md [`webtorrent`]: webtorrent/README.md [`wyoming`]: wyze/README.md [`wyze`]: wyze/README.md [`xiaomi`]: xiaomi/README.md [`yandex`]: yandex/README.md