Aplikasi streaming kamera terbaik dengan dukungan RTSP, WebRTC, HomeKit, FFmpeg, RTMP, dll.
aplikasi kecil tanpa ketergantungan dan tanpa konfigurasi untuk semua OS (Windows, macOS, Linux, ARM)
tanpa penundaan untuk banyak protokol yang didukung (latensi streaming serendah mungkin)
streaming dari RTSP, RTMP, DVRIP, HTTP (FLV/MJPEG/JPEG/TS), Kamera USB dan sumber lainnya
streaming dari sumber mana pun, didukung oleh FFmpeg
streaming ke RTSP, WebRTC, MSE/MP4, HomeKit HLS atau MJPEG
publikasikan sumber apa pun ke layanan streaming populer (YouTube, Telegram, dll.)
proyek pertama di Dunia dengan dukungan streaming dari HomeKit Cameras
mendukung H265 untuk WebRTC di browser (khusus Safari, baca selengkapnya)
transcoding dengan cepat untuk codec yang tidak didukung melalui FFmpeg
memutar file audio dan streaming langsung di beberapa kamera dengan speaker
negosiasi codec 2 arah multi-sumber
mencampur trek dari berbagai sumber ke aliran tunggal
codec yang didukung klien pencocokan otomatis
Audio 2 arah untuk beberapa kamera
streaming dari jaringan pribadi melalui ngrok
dapat diintegrasikan ke platform rumah pintar apa pun atau digunakan sebagai aplikasi mandiri
Terinspirasi oleh:
serangkaian proyek streaming dari @deepch
perpustakaan webrtc go dan seluruh tim @pion
ide rtsp-server sederhana dari @aler9
Ide pipeline kerangka kerja GStreamer
Ide perutean kerangka kerja MediaSoup
Protokol Aksesori HomeKit dari @brutella
pencipta logo proyek @v_novoseltsev
Mulai cepat
go2rtc: Biner
go2rtc: buruh pelabuhan
go2rtc: Add-on Asisten Rumah
go2rtc: Integrasi Asisten Rumah
go2rtc: Versi pengembang
Konfigurasi
Audio dua arah
Sumber: RTSP
Sumber: RTMP
Sumber: HTTP
Sumber: ONVIF
Sumber: FFmpeg
Sumber: Perangkat FFmpeg
Sumber: Eksekutif
Sumber: Gema
Sumber: Expr
Sumber: HomeKit
Sumber: Gelembung
Sumber: DVRIP
Sumber: Tapo
Sumber: Kasa
Sumber: GoPro
Sumber: Ivideon
Sumber: Hass
Sumber: ISAPI
Sumber: Sarang
Sumber: Roborock
Sumber: WebRTC
Sumber: WebTorrent
Sumber masuk
Streaming ke kamera
Publikasikan aliran
Modul: Aliran
Modul: API
Modul: RTSP
Modul: RTMP
Modul: WebRTC
Modul: HomeKit
Modul: WebTorrent
Modul: ngrok
Modul: Hass
Modul: MP4
Modul: HLS
Modul: MJPEG
Modul: Log
Keamanan
Filter codec
Kegilaan codec
Negosiasi codec
Proyek menggunakan go2rtc
Pengalaman kamera
TIPS
Pertanyaan Umum
Unduh biner atau gunakan Add-on atau Integrasi Docker atau Home Assistant
Buka antarmuka web: http://localhost:1984/
Secara opsional:
tambahkan aliran Anda ke file konfigurasi
mengatur akses eksternal ke webrtc
Pengembang:
tulis antarmuka web Anda sendiri
mengintegrasikan api web ke platform rumah pintar Anda
Unduh biner untuk OS Anda dari rilis terbaru:
go2rtc_win64.zip
- Windows 10+ 64-bit
go2rtc_win32.zip
- Windows 7+ 32-bit
go2rtc_win_arm64.zip
- Windows ARM 64-bit
go2rtc_linux_amd64
- Linux 64-bit
go2rtc_linux_i386
- Linux 32-bit
go2rtc_linux_arm64
- Linux ARM 64-bit (mis. Raspberry 64-bit OS)
go2rtc_linux_arm
- Linux ARM 32-bit (mis. Raspberry 32-bit OS)
go2rtc_linux_armv6
- Linux ARMv6 (untuk Raspberry 1 dan Zero lama)
go2rtc_linux_mipsel
- Linux MIPS (mis. Xiaomi Gateway 3, kamera Wyze)
go2rtc_mac_amd64.zip
- macOS 10.13+ Intel 64-bit
go2rtc_mac_arm64.zip
- macOS ARM 64-bit
Jangan lupa untuk memperbaiki hak chmod +x go2rtc_xxx_xxx
di Linux dan Mac.
Kontainer Docker alexxit/go2rtc
mendukung banyak arsitektur termasuk amd64
, 386
, arm64
, dan arm
. Kontainer ini menawarkan fungsi yang sama dengan Add-on Home Assistant tetapi dirancang untuk beroperasi secara independen dari Home Assistant. Itu sudah diinstal sebelumnya dengan FFmpeg, ngrok, dan Python.
Instal Tambahan:
Pengaturan > Add-on > Plus > Repositori > Tambahkan https://github.com/AlexxIT/hassio-addons
go2rtc > Instal > Mulai
Integrasi Pengaturan
Komponen khusus Kamera WebRTC dapat digunakan pada instalasi Home Assistant apa pun, termasuk HassWP di Windows. Secara otomatis dapat mengunduh dan menggunakan go2rtc versi terbaru. Atau bisa terhubung ke versi go2rtc yang sudah ada. Instalasi addon dalam hal ini bersifat opsional.
Versi terbaru, tapi mungkin tidak stabil:
Biner: rilis malam terbaru
Docker: versi alexxit/go2rtc:master
atau alexxit/go2rtc:master-hardware
Add-on Hass: versi perangkat keras go2rtc master
atau go2rtc master hardware
secara default go2rtc akan mencari go2rtc.yaml
di direktori kerja saat ini
server api
akan mulai pada port default 1984 (TCP)
server rtsp
akan mulai pada port default 8554 (TCP)
webrtc
akan menggunakan port 8555 (TCP/UDP) untuk koneksi
ffmpeg
akan menggunakan opsi transcoding default
Opsi konfigurasi dan daftar lengkap pengaturan dapat ditemukan di wiki.
Modul yang tersedia:
sungai
api - HTTP API (penting untuk dukungan WebRTC)
rtsp - Server RTSP (penting untuk dukungan FFmpeg)
webrtc - Server WebRTC
mp4 - Server MSE, aliran MP4, dan snapshot MP4
hls - Server aliran HLS TS atau fMP4
mjpeg - Server MJPEG
ffmpeg - Integrasi FFmpeg
ngrok - integrasi ngrok (akses eksternal untuk jaringan pribadi)
hass - Integrasi Asisten Rumah
log - mencatat konfigurasi
go2rtc mendukung berbagai jenis sumber aliran. Anda dapat mengonfigurasi satu atau beberapa tautan jenis apa pun sebagai sumber aliran.
Jenis sumber yang tersedia:
rtsp - Kamera RTSP
dan RTSPS
dengan dukungan audio dua arah
rtmp - aliran RTMP
http - HTTP-FLV
, MPEG-TS
, JPEG
(snapshot), aliran MJPEG
onvif - dapatkan tautan RTSP
kamera dan tautan snapshot menggunakan protokol ONVIF
ffmpeg - Integrasi FFmpeg ( HLS
, files
, dan banyak lainnya)
ffmpeg:device - Kamera USB atau Webcam lokal
exec - dapatkan media dari keluaran aplikasi eksternal
echo - dapatkan tautan streaming dari bash atau python
expr - dapatkan tautan streaming melalui bahasa ekspresi bawaan
homekit - streaming dari Kamera HomeKit
gelembung - streaming dari ESeeCloud/dvr163 NVR
dvrip - streaming dari DVR-IP NVR
tapo - Kamera TP-Link Tapo dengan dukungan audio dua arah
kasa - Kamera TP-Link Kasa
gopro - kamera GoPro
ivideon - kamera publik dari layanan Ivideon
hass - Integrasi Asisten Rumah
isapi - audio dua arah untuk kamera Hikvision (ISAPI).
roborock - Penyedot debu Roborock dengan kamera
webrtc - Sumber WebRTC/WHEP
webtorrent - Sumber WebTorrent dari go2rtc lain
Baca lebih lanjut tentang sumber masuk
Didukung untuk sumber:
Kamera RTSP dengan ONVIF Profile T (koneksi saluran belakang)
kamera DVRIP
Kamera TP-Link Tapo
Kamera Hikvision ISAPI
Model penyedot debu Roborock dengan kamera
Jalankan audio di server
Browser apa pun sebagai kamera IP
Audio dua arah dapat digunakan di browser dengan teknologi WebRTC. Browser akan memberikan akses ke mikrofon hanya untuk situs HTTPS (baca selengkapnya).
go2rtc juga mendukung pemutaran file audio dan streaming langsung di kamera ini.
streaming: sonoff_camera: rtsp://rtsp:[email protected]/av_stream/ch0 dahua_kamera: - rtsp://admin:[email protected]/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif- rtsp://admin:[email protected]/cam/realmonitor?channel=1&subtype=1 amcrest_bel pintu: - rtsp://nama pengguna:[email protected]:554/cam/realmonitor?channel=1&subtype=0#backchannel=0 unifi_kamera: rtspx://192.168.1.123:7441/fD6ouM72bWoFijxK glichy_camera: ffmpeg:rtsp://nama pengguna:kata [email protected]/live/ch00_1
Rekomendasi
Pengguna Amcrest Doorbell mungkin ingin menonaktifkan audio dua arah, karena dengan streaming aktif Anda tidak akan memiliki tombol panggil yang berfungsi. Anda perlu menambahkan #backchannel=0
di akhir tautan RTSP Anda di file konfigurasi YAML
Pengguna Dahua Doorbell mungkin ingin mengubah codec audio saluran belakang
Pengguna Reolink mungkin ingin TIDAK menggunakan protokol RTSP sama sekali, beberapa model kamera memiliki implementasi streaming yang sangat buruk dan tidak dapat digunakan
Pengguna Ubiquiti UniFi mungkin ingin menonaktifkan verifikasi HTTPS. Gunakan awalan rtspx://
alih-alih rtsps://
. Dan jangan gunakan akhiran ?enableSrtp
Pengguna TP-Link Tapo mungkin melewatkan login dan kata sandi, karena go2rtc mendukung login tanpa login dan kata sandi tersebut
Jika kamera Anda memiliki dua link RTSP - Anda dapat menambahkan keduanya sebagai sumber. Ini berguna bila streaming memiliki codec yang berbeda, misalnya audio AAC dengan streaming utama dan audio PCMU/PCMA dengan streaming kedua
Jika streaming dari kamera Anda bermasalah, coba gunakan sumber ffmpeg. Itu tidak akan menambah beban CPU jika Anda tidak menggunakan transcoding
Jika streaming dari kamera Anda sangat bermasalah, coba gunakan transcoding dengan sumber ffmpeg
Pilihan lain
Format: rtsp...#{param1}#{param2}#{param3}
Tambahkan batas waktu khusus #timeout=30
(dalam detik)
Abaikan audio - #media=video
atau abaikan video - #media=audio
Abaikan API audio dua arah #backchannel=0
- penting untuk beberapa kamera yang bermasalah
Gunakan transportasi WebSocket #transport=ws...
RTSP melalui WebSocket
aliran: # WebSocket dengan otorisasi, RTSP - tanpa sumbu-rtsp-ws: rtsp://192.168.1.123:4567/axis-media/media.amp?overview=0&camera=1&solving=1280x720&videoframeskipmode=empty&Axis-Orig-Sw=true#transport=ws://user:[email protected]:4567/ rtsp-over-websocket # WebSocket tanpa otorisasi, RTSP - dengan dahua-rtsp-ws: rtsp://user:[email protected]/cam/realmonitor?channel=1&subtype=1&proto=Private3#transport=ws://192.168.1.123/rtspoverwebsocket
Anda bisa mendapatkan streaming dari server RTMP, misalnya Nginx dengan nginx-rtmp-module.
aliran: rtmp_stream: rtmp://192.168.1.123/live/camera1
Mendukung Tipe Konten:
HTTP-FLV ( video/x-flv
) - sama seperti RTMP, tetapi melalui HTTP
HTTP-JPEG ( image/jpeg
) - tautan snapshot kamera, dapat dikonversi oleh go2rtc ke aliran MJPEG
HTTP-MJPEG ( multipart/x
) - aliran MJPEG sederhana melalui HTTP
MPEG-TS ( video/mpeg
) - format streaming lama
Sumber juga mendukung aliran HTTP dan TCP dengan deteksi otomatis untuk berbagai format: MJPEG , bitstream H.264/H.265 , MPEG-TS .
streaming: # streaming [HTTP-FLV] dalam format video/x-flv http_flv: http://192.168.1.123:20880/api/camera/stream/780900131155/657617 # Snapshot [JPEG] dari kamera Dahua, akan dikonversi ke aliran MJPEG dahua_snap: http://admin:[email protected]/cgi-bin/snapshot.cgi?channel=1 # Aliran [MJPEG] akan diproksi tanpa modifikasi http_mjpeg: https://mjpeg.sanford.io/count.mjpeg # [bitstream MJPEG atau H.264/H.265 atau MPEG-TS] tcp_magic: tcp://192.168.1.123:12345 # Tambahkan tajuk khusus custom_header: "https://mjpeg.sanford.io/count.mjpeg#header=Otorisasi: Pembawa XXX"
PS. Kamera Dahua memiliki bug: jika Anda memilih codec MJPEG untuk streaming kedua RTSP - snapshot tidak akan berfungsi.
Baru di v1.5.0
Sumbernya tidak terlalu berguna jika Anda sudah mengetahui RTSP dan link snapshot untuk kamera Anda. Tapi itu bisa berguna jika Anda tidak melakukannya.
WebUI > Tambahkan dukungan halaman web penemuan otomatis ONVIF. Server Anda harus berada di subnet yang sama dengan kamera. Jika Anda menggunakan buruh pelabuhan, Anda harus menggunakan "host jaringan".
streaming: dahua1: onvif://admin:[email protected] reolink1: onvif://admin:[email protected]:8000 tapo1: onvif://admin:[email protected]:2020
Anda bisa mendapatkan aliran atau file atau perangkat apa pun melalui FFmpeg dan mendorongnya ke go2rtc. Aplikasi akan secara otomatis memulai FFmpeg dengan argumen yang tepat ketika seseorang mulai menonton streaming.
FFmpeg telah diinstal sebelumnya untuk pengguna Docker dan Hass Add-on
Pengguna Hass Add-on dapat menargetkan file dari folder /media
Format: ffmpeg:{input}#{param1}#{param2}#{param3}
. Contoh:
stream: # [FILE] semua trek akan disalin tanpa transcoding codec file1: ffmpeg:/media/BigBuckBunny.mp4 # Video [FILE] akan ditranskode ke H264, audio akan dilewati file2: ffmpeg:/media/BigBuckBunny.mp4#video=h264 # Video [FILE] akan disalin, audio akan ditranskode ke pcmu file3: ffmpeg:/media/BigBuckBunny.mp4#video=copy#audio=pcmu # Video [HLS] akan disalin, audio akan dilewati jam: ffmpeg:https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_16x9/gear5/prog_index.m3u8#video=copy # Video [MJPEG] akan ditranskode ke H264 mjpeg: ffmpeg:http://185.97.122.128/cgi-bin/faststream.jpg#video=h264 # Video [RTSP] dengan rotasi, harus ditranskode, jadi pilih H264 putar: ffmpeg:rtsp://rtsp:[email protected]/av_stream/ch0#video=h264#rotate=90
Semua format trascoding memiliki templat bawaan: h264
, h265
, opus
, pcmu
, pcmu/16000
, pcmu/48000
, pcma
, pcma/16000
, pcma/48000
, aac
, aac/16000
.
Namun Anda dapat menggantinya melalui konfigurasi YAML. Anda juga dapat menambahkan format Anda sendiri untuk dikonfigurasi dan menggunakannya dengan parameter sumber.
ffmpeg: bin: ffmpeg # jalur ke biner ffmpeg h264: "-codec:v libx264 -g:v 30 -preset:v supercepat -tune:v zerolatency -profile:v main -level:v 4.1" mycodec: "-argumen apa pun yang didukung oleh ffmpeg..." masukan saya: "-fflags nobuffer -flags low_delay -timeout 5000000 -i {input}" myraw: "-ss 00:00:20"
Anda dapat menggunakan nama streaming go2rtc sebagai input ffmpeg (mis. ffmpeg:camera1#video=h264
)
Anda dapat menggunakan parameter video
dan audio
beberapa kali (mis. #video=copy#audio=copy#audio=pcmu
)
Anda dapat menggunakan parameter rotate
dengan nilai 90
, 180
, 270
atau -90
, penting dengan transcoding (mis. #video=h264#rotate=90
)
Anda dapat menggunakan parameter width
dan/atau height
, yang penting dalam transcoding (mis. #video=h264#width=1280
)
Anda dapat menggunakan drawtext
untuk menambahkan stempel waktu (mis. drawtext=x=2:y=2:fontsize=12:fontcolor=white:box=1:boxcolor=black
)
Ini akan meningkatkan CPU server secara signifikan, bahkan dengan akselerasi perangkat keras
Anda dapat menggunakan param raw
untuk argumen FFmpeg tambahan apa pun (mis. #raw=-vf transpose=1
)
Anda dapat menggunakan parameter input
untuk mengganti template input default (mis. #input=rtsp/udp
akan mengubah transport RTSP dari TCP ke UDP+TCP)
Anda dapat menggunakan nilai masukan mentah (mis. #input=-timeout 5000000 -i {input}
)
Anda dapat menambahkan templat masukan Anda sendiri
Baca lebih lanjut tentang akselerasi perangkat keras.
PS. Disarankan untuk memeriksa perangkat keras yang tersedia di halaman tambahkan WebUI.
Anda bisa mendapatkan video dari kamera USB atau Webcam apa pun sebagai aliran RTSP atau WebRTC. Ini adalah bagian dari integrasi FFmpeg.
periksa perangkat yang tersedia di antarmuka Web
video_size
dan framerate
harus didukung oleh kamera Anda!
untuk Linux hanya mendukung video untuk saat ini
untuk macOS Anda dapat melakukan streaming kamera Facetime atau seluruh Desktop!
untuk macOS penting untuk mengatur framerate yang tepat
Format: ffmpeg:device?{input-params}#{param1}#{param2}#{param3}
streaming: linux_usbcam: ffmpeg:device?video=0&video_size=1280x720#video=h264 windows_webcam: ffmpeg:perangkat?video=0#video=h264 macos_facetime: ffmpeg:device?video=0&audio=1&video_size=1280x720&framerate=30#video=h264#audio=pcma
PS. Disarankan untuk memeriksa perangkat yang tersedia di halaman tambahkan WebUI.
Sumber Exec dapat menjalankan aplikasi eksternal apa pun dan mengharapkan data darinya. Dua transportasi didukung - pipa ( dari v1.5.0 ) dan RTSP .
Jika Anda ingin menggunakan transportasi RTSP - perintah harus berisi argumen {output}
di sembarang tempat. Saat diluncurkan, alamat tersebut akan diganti dengan alamat lokal server RTSP.
pipa membaca data dari aplikasi stdout dalam format berbeda: MJPEG , H.264/H.265 bitstream , MPEG-TS . Pipa juga dapat menulis data ke aplikasi stdin dalam dua format: PCMA dan PCM/48000 .
Sumbernya dapat digunakan dengan:
FFmpeg - go2rtc ffmpeg source hanyalah jalan pintas ke sumber exec
FFplay - memutar audio di server Anda
GStreamer
Kamera Raspberry Pi
perangkat lunak Anda sendiri
Parameter dukungan perintah pipa (format: exec:{command}#{param1}#{param2}
):
killsignal
- sinyal yang akan dikirim untuk menghentikan proses (bentuk numerik)
killtimeout
- waktu dalam hitungan detik untuk penghentian paksa dengan sigkill
backchannel
- mengaktifkan saluran belakang untuk audio dua arah
aliran: aliran: exec:ffmpeg -re -i /media/BigBuckBunny.mp4 -c copy -rtsp_transport tcp -f rtsp {output} picam_h264: exec:libcamera-vid -t 0 --inline -o - picam_mjpeg: exec:libcamera-vid -t 0 --codec mjpeg -o - pi5cam_h264: exec:libcamera-vid -t 0 --libav-format h264 -o - kanon: exec:gphoto2 --capture-movie --stdout#killsignal=2#killtimeout=5 play_pcma: exec:ffplay -fflags nobuffer -f alaw -ar 8000 -i -#backchannel=1 play_pcm48k: exec:ffplay -fflags nobuffer -f s16be -ar 48000 -i -#backchannel=1
Beberapa sumber mungkin memiliki tautan dinamis. Dan Anda harus mendapatkannya menggunakan skrip bash atau python. Skrip Anda harus menampilkan tautan ke sumbernya. RTSP, FFmpeg atau sumber apa pun yang didukung.
Pengguna Docker dan Hass Add-on telah menginstal python3
, curl
, jq
.
Periksa contoh di wiki.
aliran: apple_hls: echo:python3 hls.py https://developer.apple.com/streaming/examples/basic-stream-osx-ios5.html
Baru di v1.8.2
Seperti sumber echo
, tetapi menggunakan bahasa ekspresi expr bawaan (baca selengkapnya).
Penting:
Anda dapat menggunakan Kamera HomeKit tanpa perangkat Apple (iPhone, iPad, dll.), itu hanyalah protokol lain
Perangkat HomeKit hanya dapat dipasangkan dengan satu ekosistem. Jadi, jika Anda telah memasangkannya ke iPhone (Apple Home) - Anda tidak dapat memasangkannya dengan Home Assistant atau go2rtc. Atau jika Anda telah memasangkannya ke go2rtc - Anda tidak dapat memasangkannya dengan iPhone
Perangkat HomeKit harus berada di jaringan yang sama dengan mDNS yang berfungsi antara perangkat dan go2rtc
go2rtc mendukung impor perangkat HomeKit yang dipasangkan dari Home Assistant. Jadi Anda bisa menggunakan kamera HomeKit dengan Hass dan go2rtc secara bersamaan. Jika Anda menggunakan Hass, saya sarankan memasangkan perangkat dengannya, ini akan memberi Anda lebih banyak opsi.
Anda dapat memasangkan perangkat dengan go2rtc di halaman HomeKit. Jika Anda tidak dapat melihat perangkat Anda - muat ulang halaman. Coba juga reboot perangkat HomeKit Anda (matikan). Jika Anda masih tidak dapat melihatnya, berarti Anda memiliki masalah dengan mDNS.
Jika Anda melihat perangkat tetapi tidak memiliki tombol pasangan - perangkat tersebut dipasangkan ke beberapa ekosistem (Apple Home, Home Assistant, HomeBridge, dll). Anda perlu menghapus perangkat dari ekosistem itu, dan perangkat akan tersedia untuk dipasangkan. Jika Anda tidak dapat memutuskan pemasangan perangkat, Anda harus mengatur ulang perangkat tersebut.
Penting:
Audio HomeKit menggunakan codec AAC-ELD yang sangat non-standar dengan parameter dan pelanggaran spesifikasi yang sangat non-standar
Audio tidak dapat diputar di VLC
dan mungkin pemutar lainnya
Audio harus ditranskode untuk digunakan dengan MSE, WebRTC, dll.
Pengaturan yang disarankan untuk menggunakan Kamera HomeKit dengan WebRTC, MSE, MP4, RTSP:
streams: aqara_g3: - hass:Camera-Hub-G3-AB12 - ffmpeg:aqara_g3#audio=aac#audio=opus
Tautan RTSP dengan audio "normal" untuk pemutar mana pun: rtsp://192.168.1.123:8554/aqara_g3?video&audio=aac
Sumber ini sedang dalam pengembangan aktif! Diuji hanya dengan Aqara Camera Hub G3 (versi UE dan CN).
Baru di v1.6.1
Nama lain: ESeeCloud, dvr163.
Anda dapat melewati username
, password
, port
, ch
dan stream
jika itu default
mengatur aliran terpisah untuk saluran dan aliran berbeda
streaming: kamera1: bubble://username:[email protected]:34567/bubble/live?ch=0&stream=0
Baru di v1.2.0
Nama lain: DVR-IP, NetSurveillance, protokol Sofia (plugin NETsurveillance ActiveX XMeye SDK).
Anda dapat melewati username
, password
, port
, channel
, dan subtype
jika itu default
mengatur aliran terpisah untuk saluran yang berbeda
gunakan subtype=0
untuk aliran Utama, dan subtype=1
untuk aliran Extra1
hanya protokol TCP yang didukung
aliran: only_stream: dvrip://nama pengguna:kata [email protected]:34567?channel=0&subtype=0 only_tts: dvrip://nama pengguna:[email protected]:34567?backchannel=1 audio_dua arah: - dvrip://nama pengguna:[email protected]:34567?channel=0&subtype=0- dvrip://nama pengguna:[email protected]:34567?backchannel=1
Baru di v1.2.0
Protokol kamera milik TP-Link Tapo dengan dukungan audio dua arah .
kualitas streaming sama dengan protokol RTSP
gunakan kata sandi cloud , ini bukan kata sandi RTSP! Anda tidak perlu menambahkan login!
Anda juga dapat menggunakan hash UPPERCASE MD5 dari kata sandi cloud Anda dengan nama pengguna admin
beberapa firmware kamera baru memerlukan SHA256, bukan MD5
stream: # kata sandi cloud tanpa nama pengguna kamera1: tapo://[email protected] # nama pengguna admin dan hash kata sandi cloud UPPERCASE MD5 kamera2: tapo://admin:[email protected] # nama pengguna admin dan hash kata sandi cloud UPPERCASE SHA256 kamera3: tapo://admin:[email protected]
echo -n "kata sandi awan" | md5 | awk '{print toupper($0)}'echo -n "kata sandi cloud" | shasum -a 256 | awk '{cetak toupper($0)}'
Baru di v1.7.0
Info lebih lanjut protokol non-standar TP-Link Kasa.
username
- email urlsafe, [email protected]
-> alex%40gmail.com
password
- kata sandi base64, secret1
-> c2VjcmV0MQ==
streaming: kc401: kasa://nama pengguna:kata [email protected]:19443/https/stream/mixed
Diuji: KD110, KC200, KC401, KC420WS, EC71.
Baru di v1.8.3
Mendukung streaming dari kamera GoPro, terhubung melalui USB atau Wi-Fi ke Linux, Mac, Windows. Baca selengkapnya.
Mendukung kamera publik dari layanan Ivideon.
streaming: kamera puyuh: ivideon:100-tu5dkUPct39cTp9oNEN2B6/0
Mendukung impor tautan kamera dari file konfigurasi Home Assistant:
Kamera Generik, pengaturan melalui GUI
Kamera HomeKit
ONVIF
Penyedot debu Roborock dengan kamera
hass: config: "/config" # lewati pengaturan ini jika Anda Hass Add-on userstreams: generic_camera: hass:Camera1 # Pengaturan > Integrasi > Nama Integrasi aqara_g3: hass:Hub-Kamera-G3-AB12
Kamera WebRTC ( dari v1.6.0 )
Kamera apa pun dalam format WebRTC didukung. Namun saat ini Home Assistant hanya mendukung beberapa kamera Nest dalam format ini.
Penting. Nest API hanya memungkinkan Anda mendapatkan link ke streaming selama 5 menit. Jangan gunakan ini dengan Frigate! Jika streaming berakhir, Frigate akan menggunakan semua ram yang tersedia di mesin Anda dalam hitungan detik. Disarankan untuk menggunakan sumber Nest - sumber ini mendukung perluasan streaming.
streaming: # tautan ke Asisten Rumah Diawasi hass-webrtc1: hass://supervisor?entity_id=camera.nest_doorbell # tautan ke Hass eksternal dengan Token Akses Berumur Panjang hass-webrtc2: hass://192.168.1.123:8123?entity_id=camera.nest_doorbell&token=eyXYZ...
Kamera RTSP
Secara default, Home Assistant API tidak mengizinkan Anda mendapatkan tautan RTSP dinamis ke aliran kamera. Jadi lebih banyak kamera, seperti Tuya, dan mungkin lainnya juga dapat diimpor dengan menggunakan metode ini.
Baru di v1.3.0
Jenis sumber ini hanya mendukung audio saluran belakang untuk protokol Hikvision ISAPI. Jadi sebaiknya digunakan sebagai sumber kedua selain protokol RTSP.
aliran: hikvision1: - rtsp://admin:[email protected]:554/Streaming/Channels/101- isapi://admin:[email protected]:80/
Baru di v1.6.0
Saat ini hanya kamera WebRTC yang didukung.
Untuk mempermudah, disarankan untuk menghubungkan kamera Nest/WebRTC ke Home Assistant. Tetapi jika Anda bisa mendapatkan parameter di bawah ini - sumber Nest/WebRTC akan berfungsi tanpa Hass.
aliran: sarang-bel pintu: sarang:?client_id=***&client_secret=***&refresh_token=***&project_id=***&device_id=***
Baru di v1.3.0
Jenis sumber ini mendukung penyedot debu Roborock dengan kamera. Model kerja yang dikenal:
Roborock S6 MaxV - hanya video (vakum tidak memiliki mikrofon)
Roborock S7 MaxV - video dan audio dua arah
Roborock Qrevo MaxV - video dan audio dua arah
Dukungan sumber memuat kredensial Roborock dari integrasi khusus Home Assistant atau integrasi inti. Jika tidak, Anda harus masuk ke akun Roborock Anda (akun MiHome tidak didukung). Buka: go2rtc WebUI > Tambahkan halaman web. Salin sumber roborock://...
untuk penyedot debu Anda dan tempelkan ke konfigurasi go2rtc.yaml
.
Jika Anda memiliki pin grafis untuk penyedot debu - tambahkan sebagai pin numerik (baris: 123, 456, 789) di akhir tautan roborock.
Baru di v1.3.0
Jenis sumber ini mendukung empat format koneksi.
wah
WebRTC/WHEP - digantikan oleh standar WebRTC/WISH untuk pemirsa video/audio WebRTC. Namun mungkin sudah didukung di beberapa perangkat lunak pihak ketiga. Ini didukung di go2rtc.
pergi2rtc
Format ini hanya didukung di go2rtc. Tidak seperti WHEP, ini mendukung koneksi WebRTC asinkron dan audio dua arah.
openipc ( dari v1.7.0 )
Mendukung koneksi ke kamera OpenIPC.
wyze ( dari v1.6.1 )
Mendukung koneksi ke kamera Wyze, menggunakan protokol WebRTC. Anda dapat menggunakan proyek docker-wyze-bridge untuk mendapatkan kredensial koneksi.
kinesis ( dari v1.6.1 )
Mendukung Amazon Kinesis Video Streams, menggunakan protokol WebRTC. Anda perlu menentukan URL WebSocket sinyal dengan semua kredensial dalam parameter kueri, daftar client_id
dan ice_servers
dalam format JSON.
aliran: webrtc-whep: webrtc:http://192.168.1.123:1984/api/webrtc?src=camera1 webrtc-go2rtc: webrtc:ws://192.168.1.123:1984/api/ws?src=camera1 webrtc-openipc: webrtc:ws://192.168.1.123/webrtc_ws#format=openipc#ice_servers=[{"urls":"stun:stun.kinesisvideo.eu-north-1.amazonaws.com:443"}] webrtc-wyze: webrtc:http://192.168.1.123:5000/signaling/camera1?kvs#format=wyze webrtc-kinesis: webrtc:wss://...amazonaws.com/?...#format=kinesis#client_id=...#ice_servers=[{...},{...}]
PS. Untuk sumber kinesis
Anda dapat menggunakan echo untuk mendapatkan parameter koneksi menggunakan bash
/ python
atau bahasa skrip lainnya.
Baru di v1.3.0
Sumber ini bisa mendapatkan streaming dari go2rtc lain melalui protokol WebTorrent.
aliran: webtorrent1: webtorrent:?share=huofssuxaty00izc&pwd=k3l2j9djeg8v8r7e
Secara default, go2rtc membuat koneksi ke sumber ketika ada klien yang memintanya. Go2rtc memutus koneksi ke sumber ketika tidak ada klien tersisa.
Go2rtc juga dapat menerima sumber masuk dalam format RTSP, RTMP, HTTP dan WebRTC/WHIP
Go2rtc tidak akan menghentikan sumber tersebut jika tidak memiliki klien
Anda dapat mengirim data hanya ke aliran yang ada (buat aliran dengan sumber kosong di konfigurasi)
Anda dapat mendorong beberapa sumber masuk ke aliran yang sama
Anda dapat memasukkan data ke aliran yang tidak kosong, sehingga akan ada codec tambahan di dalamnya
Contoh
RTSP dengan codec apa pun
ffmpeg -re -i BigBuckBunny.mp4 -c salin -rtsp_transport tcp -f rtsp rtsp://localhost:8554/camera1
HTTP-MJPEG dengan codec MJPEG
ffmpeg -re -i BigBuckBunny.mp4 -c mjpeg -f mpjpeg http://localhost:1984/api/stream.mjpeg?dst=camera1
HTTP-FLV dengan H264, codec AAC
ffmpeg -re -i BigBuckBunny.mp4 -c copy -f flv http://localhost:1984/api/stream.flv?dst=camera1
MPEG-TS dengan codec H264
ffmpeg -re -i BigBuckBunny.mp4 -c salin -f mpegts http://localhost:1984/api/stream.ts?dst=camera1
Baru di v1.3.0
Anda dapat mengubah browser PC atau ponsel mana pun menjadi kamera IP dengan dukungan video dan audio dua arah. Atau bahkan menyiarkan layar PC Anda:
Buat aliran kosong di go2rtc.yaml
Buka WebUI go2rtc
Buka halaman links
untuk streaming Anda
Pilih opsi camera+microphone
atau display+speaker
Buka halaman lokal webrtc
(go2rtc Anda seharusnya berfungsi melalui HTTPS! ) atau share link
melalui teknologi WebTorrent (berfungsi melalui HTTPS secara default)
Baru di v1.3.0
Anda dapat menggunakan OBS Studio atau perangkat lunak siaran lainnya dengan dukungan protokol WHIP. Standar ini belum disetujui. Tetapi Anda dapat mengunduh versi pengembang OBS Studio:
Pengaturan > Aliran > Layanan: WHIP > http://192.168.1.123:1984/api/webrtc?dst=camera1
Baru di v1.3.0
dukungan go2rtc memutar file audio (mis. musik atau TTS) dan streaming langsung (mis. radio) pada kamera dengan dukungan audio dua arah (kamera RTSP/ONVIF, TP-Link Tapo, Hikvision ISAPI, penyedot debu Roborock, Browser apa pun).
Contoh API:
POST http://localhost:1984/api/streams?dst=camera1&src=ffmpeg:http://example.com/song.mp3#audio=pcma#input=file
Anda dapat melakukan streaming: file lokal, file web, streaming langsung, atau format apa pun, yang didukung oleh FFmpeg
Anda harus menggunakan sumber ffmpeg untuk mentranskode audio ke codec, yang didukung kamera Anda
Anda dapat memeriksa codec kamera di halaman info WebUI go2rtc saat streaming aktif
beberapa kamera hanya mendukung codec PCMA/8000
kualitas rendah (mis. Tapo)
disarankan untuk memilih format kualitas lebih tinggi jika kamera Anda mendukungnya (misal PCMA/48000
untuk beberapa kamera Dahua)
jika Anda memutar file melalui http-link, Anda perlu menambahkan parameter #input=file
untuk transcoding, sehingga file akan ditranskode dan diputar secara real time
kalau main live streaming sebaiknya lewati #input
param, karena sudah real time
Anda dapat menghentikan pemutaran aktif dengan memanggil API dengan parameter src
kosong
Anda akan melihat satu produsen aktif dan satu konsumen aktif di halaman info WebUI go2rtc selama streaming
Baru di v1.8.0
Anda dapat mempublikasikan streaming apa pun ke layanan streaming (YouTube, Telegram, dll.) melalui RTMP/RTMPS. Penting:
Codec yang didukung: H264 untuk video dan AAC untuk audio
Audio AAC diperlukan untuk YouTube, video tanpa audio tidak akan berfungsi
Anda tidak perlu mengaktifkan modul RTMP yang mendengarkan tugas ini
Anda dapat menggunakan API:
POST http://localhost:1984/api/streams?src=camera1&dst=rtmps://...
Atau file konfigurasi:
publikasikan: # publikasikan streaming "video_audio_transcode" ke Telegram video_audio_transkode: - rtmps://xxx-x.rtmp.t.me/s/xxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxx # publikasikan streaming "audio_transcode" ke Telegram dan YouTube audio_transkode: - rtmps://xxx-x.rtmp.t.me/s/xxxxxxxxxx:xxxxxxxxxxxxxxxxxxx- rtmp://xxx.rtmp.youtube.com/live2/xxxx-xxxx-xxxx-xxxx-xxxxstreams: video_audio_transcode: - ffmpeg:rtsp://pengguna:[email protected]/stream1#video=h264#hardware#audio=aac audio_transkode: - ffmpeg:rtsp://pengguna:[email protected]/stream1#video=copy#audio=aac
Aplikasi Desktop Telegram > Saluran atau grup publik atau pribadi apa pun (tempat Anda mengelolanya) > Streaming langsung > Mulai dengan... > Mulai streaming.
YouTube > Buat > Tayangkan > Latensi streaming: Latensi sangat rendah > Salin: URL Streaming + Kunci streaming.
HTTP API adalah bagian utama untuk berinteraksi dengan aplikasi. Alamat bawaan: http://localhost:1984/
.
Penting! go2rtc meneruskan permintaan dari localhost dan dari soket unix tanpa otorisasi HTTP, meskipun Anda telah mengonfigurasinya! Anda bertanggung jawab untuk menyiapkan akses eksternal yang aman ke API. Jika tidak dikonfigurasi dengan benar, penyerang dapat memperoleh akses ke kamera Anda dan bahkan server Anda.
Deskripsi API.
Konfigurasi modul
Anda dapat menonaktifkan API HTTP dengan listen: ""
dan menggunakan, misalnya, hanya protokol klien/server RTSP
Anda dapat mengaktifkan HTTP API hanya di localhost dengan pengaturan listen: "127.0.0.1:1984"
Anda dapat mengubah API base_path
dan menghosting go2rtc di pinggiran server web aplikasi utama Anda
semua file dari static_dir
dihosting di jalur root: /
Anda dapat menggunakan konten sertifikat/kunci TLS mentah atau jalur ke file
api: dengarkan: ":1984" # default ":1984", port HTTP API ("" - dinonaktifkan) nama pengguna: "admin" # default "", autentikasi dasar untuk WebUI kata sandi: "lulus" # default "", autentikasi dasar untuk WebUI base_path: "/rtc" # default "", awalan API untuk servis di pinggiran kota (/api => /rtc/api) static_dir: "www" # default "", folder untuk file statis (antarmuka web khusus) asal: "*" # default "", izinkan permintaan CORS (hanya * didukung) tls_listen: ":443" # default "", aktifkan server HTTPS tls_cert: | # default "", sertifikat rantai penuh berkode PEM untuk HTTPS -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- tls_key: | # default "", kunci pribadi yang dikodekan PEM untuk HTTPS -----BEGIN PRIVATE KEY----- ... -----END PRIVATE KEY----- unix_listen: "/tmp/go2rtc.sock " # default "", pendengar soket unix untuk API
PS:
MJPEG melalui WebSocket berfungsi lebih baik daripada MJPEG asli karena bug Chrome
MP4 melalui WebSocket dibuat hanya untuk Apple iOS karena tidak mendukung MSE dan MP4 asli
Anda bisa mendapatkan aliran apa pun sebagai aliran RTSP: rtsp://192.168.1.123:8554/{stream_name}
Anda dapat mengaktifkan perlindungan kata sandi eksternal untuk aliran RTSP Anda. Perlindungan kata sandi selalu dinonaktifkan untuk panggilan localhost (mis. FFmpeg atau Hass di server yang sama).
rtsp: dengarkan: ":8554" # Port TCP Server RTSP, default - 8554 nama pengguna: "admin" # opsional, default - dinonaktifkan kata sandi: "lulus" # opsional, default - dinonaktifkan default_query: "video & audio" <sp