pkg/

directory
v1.9.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 11, 2024 License: MIT

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 format
  • pkg/{format}/backchanel.go - producer with only backchannel func

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
flv
amf
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
hap
pcm
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
iot
tcp

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL