README
¶
Notes
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.
Producers (input)
- The initiator of the connection can be go2rtc - Source protocols
- The initiator of the connection can be an external program - Ingress protocols
- Codecs can be incoming - Recevers codecs
- Codecs can be outgoing (two way audio) - Senders codecs
Format | Source protocols | Ingress protocols | Recevers codecs | Senders codecs | Example |
---|---|---|---|---|---|
adts | http,tcp,pipe | http | aac | http: |
|
bubble | http | h264,hevc,pcm_alaw | bubble: |
||
dvrip | tcp | h264,hevc,pcm_alaw,pcm_mulaw | pcm_alaw | dvrip: |
|
flv | http,tcp,pipe | http | h264,aac | http: |
|
gopro | http+udp | TODO | gopro: |
||
hass/webrtc | ws+udp,tcp | TODO | hass: |
||
hls/mpegts | http | h264,h265,aac,opus | http: |
||
homekit | homekit+udp | h264,eld* | homekit: |
||
isapi | http | pcm_alaw,pcm_mulaw | isapi: |
||
ivideon | ws | h264 | ivideon: |
||
kasa | http | h264,pcm_mulaw | kasa: |
||
h264 | http,tcp,pipe | http | h264 | http: |
|
hevc | http,tcp,pipe | http | hevc | http: |
|
mjpeg | http,tcp,pipe | http | mjpeg | http: |
|
mpjpeg | http,tcp,pipe | http | mjpeg | http: |
|
mpegts | http,tcp,pipe | http | h264,hevc,aac,opus | http: |
|
nest/webrtc | http+udp | TODO | nest: |
||
roborock | mqtt+udp | h264,opus | opus | roborock: |
|
rtmp | rtmp | rtmp | h264,aac | rtmp: |
|
rtsp | rtsp+tcp,ws | rtsp+tcp | h264,hevc,aac,pcm*,opus | pcm*,opus | rtsp: |
stdin | pipe | pcm_alaw,pcm_mulaw | stdin: |
||
tapo | http | h264,pcma | pcm_alaw | tapo: |
|
wav | http,tcp,pipe | http | pcm_alaw,pcm_mulaw | http: |
|
webrtc* | TODO | TODO | h264,pcm_alaw,pcm_mulaw,opus | pcm_alaw,pcm_mulaw | webrtc: |
webtorrent | TODO | TODO | TODO | TODO | webtorrent: |
yuv4mpegpipe | http,tcp,pipe | http | rawvideo | http: |
- eld - rare variant of aac codec
- pcm - pcm_alaw pcm_mulaw pcm_s16be pcm_s16le
- webrtc - webrtc/kinesis, webrtc/openipc, webrtc/milestone, webrtc/wyze, webrtc/whep
Consumers (output)
Format | Protocol | Send codecs | Recv codecs | Example |
---|---|---|---|---|
adts | http | aac | GET /api/stream.adts |
|
ascii | http | mjpeg | GET /api/stream.ascii |
|
flv | http | h264,aac | GET /api/stream.flv |
|
hls/mpegts | http | h264,hevc,aac | GET /api/stream.m3u8 |
|
hls/fmp4 | http | h264,hevc,aac,pcm*,opus | GET /api/stream.m3u8?mp4 |
|
homekit | homekit+udp | h264,opus | Apple HomeKit app | |
mjpeg | ws | mjpeg | {"type":"mjpeg"} -> /api/ws |
|
mpjpeg | http | mjpeg | GET /api/stream.mjpeg |
|
mp4 | http | h264,hevc,aac,pcm*,opus | GET /api/stream.mp4 |
|
mse/fmp4 | ws | h264,hevc,aac,pcm*,opus | {"type":"mse"} -> /api/ws |
|
mpegts | http | h264,hevc,aac | GET /api/stream.ts |
|
rtmp | rtmp | h264,aac | rtmp://localhost:1935/{stream_name} |
|
rtsp | rtsp+tcp | h264,hevc,aac,pcm*,opus | rtsp://localhost:8554/{stream_name} |
|
webrtc | TODO | h264,pcm_alaw,pcm_mulaw,opus | pcm_alaw,pcm_mulaw,opus | {"type":"webrtc"} -> /api/ws |
yuv4mpegpipe | http | rawvideo | GET /api/stream.y4m |
- pcm - pcm_alaw pcm_mulaw pcm_s16be pcm_s16le
Snapshots
Format | Protocol | Send codecs | Example |
---|---|---|---|
jpeg | http | mjpeg | GET /api/frame.jpeg |
mp4 | http | h264,hevc | GET /api/frame.mp4 |
Developers
File naming:
pkg/{format}/producer.go
- producer for this format (also if support backchannel)pkg/{format}/consumer.go
- consumer for this formatpkg/{format}/backchanel.go
- producer with only backchannel func
Useful links
Directories
¶
Path | Synopsis |
---|---|
Package bubble, because: Request URL: /bubble/live?ch=0&stream=0 Response Conten-Type: video/bubble https://github.com/Lynch234ok/lynch-git/blob/master/app_rebulid/src/bubble.c
|
Package bubble, because: Request URL: /bubble/live?ch=0&stream=0 Response Conten-Type: video/bubble https://github.com/Lynch234ok/lynch-git/blob/master/app_rebulid/src/bubble.c |
Package h264 - AVCC format related functions
|
Package h264 - AVCC format related functions |
annexb
Package annexb - universal for H264 and H265
|
Package annexb - universal for H264 and H265 |
Package h265 - AVCC format related functions
|
Package h265 - AVCC format related functions |
Package pcm - support raw (verbatim) PCM 16 bit in the FLAC container: - only 1 channel - only 16 bit per sample - only 8000, 16000, 24000, 48000 sample rate
|
Package pcm - support raw (verbatim) PCM 16 bit in the FLAC container: - only 1 channel - only 16 bit per sample - only 8000, 16000, 24000, 48000 sample rate |
v1
Package v1 http://web.archive.org/web/20110719132013/http://hazelware.luggle.com/tutorials/mulawcompression.html
|
Package v1 http://web.archive.org/web/20110719132013/http://hazelware.luggle.com/tutorials/mulawcompression.html |
Click to show internal directories.
Click to hide internal directories.