สุดยอดแอพพลิเคชั่นสตรีมมิ่งกล้องที่รองรับ RTSP, WebRTC, HomeKit, FFmpeg, RTMP ฯลฯ
แอปขนาดเล็กที่ไม่ต้องพึ่งพาและกำหนดค่าเป็นศูนย์สำหรับระบบปฏิบัติการทั้งหมด (Windows, macOS, Linux, ARM)
ความล่าช้าเป็นศูนย์สำหรับโปรโตคอลที่รองรับจำนวนมาก (เวลาแฝงในการสตรีมต่ำสุดที่เป็นไปได้)
สตรีมมิ่งจาก RTSP, RTMP, DVRIP, HTTP (FLV/MJPEG/JPEG/TS), กล้อง USB และแหล่งอื่นๆ
สตรีมมิ่งจากแหล่งใด ๆ ที่สนับสนุนโดย FFmpeg
สตรีมมิ่งไปยัง RTSP, WebRTC, MSE/MP4, HomeKit HLS หรือ MJPEG
เผยแพร่แหล่งใด ๆ ไปยังบริการสตรีมมิ่งยอดนิยม (YouTube, Telegram ฯลฯ )
โปรเจ็กต์แรกในโลกที่รองรับการสตรีมจากกล้อง HomeKit
รองรับ H265 สำหรับ WebRTC ในเบราว์เซอร์ (Safari เท่านั้น อ่านเพิ่มเติม)
การแปลงรหัสได้ทันทีสำหรับตัวแปลงสัญญาณที่ไม่รองรับผ่าน FFmpeg
เล่นไฟล์เสียงและสตรีมสดบนกล้องบางรุ่นพร้อมลำโพง
การเจรจาตัวแปลงสัญญาณ 2 ทางแบบหลายแหล่ง
ผสมแทร็กจากแหล่งต่าง ๆ ให้เป็นสตรีมเดียว
ตัวแปลงสัญญาณที่รองรับไคลเอนต์จับคู่อัตโนมัติ
เสียง 2 ทิศทางสำหรับกล้องบางรุ่น
สตรีมมิ่งจากเครือข่ายส่วนตัวผ่าน ngrok
สามารถรวมเข้ากับแพลตฟอร์มบ้านอัจฉริยะหรือใช้เป็นแอปแบบสแตนด์อโลนได้
แรงบันดาลใจจาก:
ซีรีย์โปรเจ็กต์สตรีมมิ่งจาก @deepch
webrtc go Library และทีมงาน @pion ทั้งหมด
แนวคิด rtsp-simple-server จาก @aler9
แนวคิดไปป์ไลน์ของเฟรมเวิร์ก GStreamer
แนวคิดการกำหนดเส้นทางกรอบงาน MediaSoup
โปรโตคอลอุปกรณ์เสริม HomeKit จาก @brutella
ผู้สร้างโลโก้ของโครงการ @v_novoseltsev
เริ่มต้นอย่างรวดเร็ว
go2rtc: ไบนารี
go2rtc: นักเทียบท่า
go2rtc: โปรแกรมเสริมผู้ช่วยในบ้าน
go2rtc: การรวมผู้ช่วยในบ้าน
go2rtc: เวอร์ชันที่กำลังพัฒนา
การกำหนดค่า
เสียงสองทาง
ที่มา: RTSP
ที่มา: RTMP
ที่มา: HTTP
ที่มา: ONVIF
ที่มา: FFmpeg
ที่มา: อุปกรณ์ FFmpeg
ที่มา: Exec
ที่มา: เอคโค่
ที่มา: EXPR
ที่มา: HomeKit
ที่มา: บับเบิ้ล
ที่มา: DVRIP
ที่มา: ตะโพ
ที่มา: Kasa
ที่มา: GoPro
ที่มา: Ivideon
ที่มา: ฮัส
ที่มา: ISAPI
ที่มา: เนสท์
ที่มา: Roborock
ที่มา: WebRTC
ที่มา: เว็บทอร์เรนต์
แหล่งที่มาที่เข้ามา
สตรีมไปที่กล้อง
เผยแพร่สตรีม
โมดูล: สตรีม
โมดูล: API
โมดูล: RTSP
โมดูล: RTMP
โมดูล: WebRTC
โมดูล: HomeKit
โมดูล: WebTorrent
โมดูล: ngrok
โมดูล: Hass
โมดูล: MP4
โมดูล: HLS
โมดูล: MJPEG
โมดูล: บันทึก
ความปลอดภัย
ตัวกรองตัวแปลงสัญญาณ
ความบ้าคลั่งของตัวแปลงสัญญาณ
การเจรจาต่อรองตัวแปลงสัญญาณ
โปรเจ็กต์ที่ใช้ go2rtc
ประสบการณ์กล้อง
เคล็ดลับ
คำถามที่พบบ่อย
ดาวน์โหลดไบนารีหรือใช้ Docker หรือ Home Assistant Add-on หรือ Integration
เปิดเว็บอินเตอร์เฟส: http://localhost:1984/
ทางเลือก:
เพิ่มสตรีมของคุณไปยังไฟล์กำหนดค่า
ตั้งค่าการเข้าถึง webrtc ภายนอก
นักพัฒนา:
เขียนเว็บอินเตอร์เฟสของคุณเอง
รวม web api เข้ากับแพลตฟอร์มสมาร์ทโฮมของคุณ
ดาวน์โหลดไบนารีสำหรับระบบปฏิบัติการของคุณจากรุ่นล่าสุด:
go2rtc_win64.zip
- Windows 10+ 64 บิต
go2rtc_win32.zip
- Windows 7+ 32 บิต
go2rtc_win_arm64.zip
- Windows ARM 64 บิต
go2rtc_linux_amd64
- ลินุกซ์ 64 บิต
go2rtc_linux_i386
- ลินุกซ์ 32 บิต
go2rtc_linux_arm64
- Linux ARM 64 บิต (เช่น ระบบปฏิบัติการ Raspberry 64 บิต)
go2rtc_linux_arm
- Linux ARM 32 บิต (เช่น ระบบปฏิบัติการ Raspberry 32 บิต)
go2rtc_linux_armv6
- Linux ARMv6 (สำหรับ Raspberry 1 และ Zero เก่า)
go2rtc_linux_mipsel
- Linux MIPS (เช่น Xiaomi Gateway 3, กล้อง Wyze)
go2rtc_mac_amd64.zip
- macOS 10.13+ Intel 64 บิต
go2rtc_mac_arm64.zip
- macOS ARM 64 บิต
อย่าลืมแก้ไขสิทธิ์ chmod +x go2rtc_xxx_xxx
บน Linux และ Mac
คอนเทนเนอร์ Docker alexxit/go2rtc
รองรับสถาปัตยกรรมหลายแบบ รวมถึง amd64
, 386
, arm64
และ arm
คอนเทนเนอร์นี้มีฟังก์ชันการทำงานเหมือนกับ Add-on ของ Home Assistant แต่ได้รับการออกแบบมาให้ทำงานโดยไม่ขึ้นอยู่กับ Home Assistant มันมาพร้อมกับ FFmpeg, ngrok และ Python ที่ติดตั้งไว้ล่วงหน้า
ติดตั้งส่วนเสริม:
การตั้งค่า > ส่วนเสริม > บวก > ที่เก็บ > เพิ่ม https://github.com/AlexxIT/hassio-addons
go2rtc > ติดตั้ง > เริ่ม
ตั้งค่าการรวม
ส่วนประกอบที่กำหนดเองของกล้อง WebRTC สามารถใช้กับการติดตั้ง Home Assistant ใดก็ได้ รวมถึง HassWP บน Windows สามารถดาวน์โหลดและใช้ go2rtc เวอร์ชันล่าสุดได้โดยอัตโนมัติ หรือสามารถเชื่อมต่อกับ go2rtc เวอร์ชันที่มีอยู่ได้ การติดตั้ง Addon ในกรณีนี้เป็นทางเลือก
เวอร์ชันล่าสุด แต่อาจไม่เสถียร:
ไบนารี่: เปิดตัวทุกคืนล่าสุด
นักเทียบท่า: เวอร์ชัน alexxit/go2rtc:master
หรือ alexxit/go2rtc:master-hardware
Hass Add-on: เวอร์ชันฮาร์ดแวร์ go2rtc master
หรือ go2rtc master hardware
โดยค่าเริ่มต้น go2rtc จะค้นหา go2rtc.yaml
ในไดเร็กทอรีงานปัจจุบัน
เซิร์ฟเวอร์ api
จะเริ่มทำงานบน พอร์ตเริ่มต้น 1984 (TCP)
เซิร์ฟเวอร์ rtsp
จะเริ่มทำงานบน พอร์ตเริ่มต้น 8554 (TCP)
webrtc
จะใช้พอร์ต 8555 (TCP/UDP) สำหรับการเชื่อมต่อ
ffmpeg
จะใช้ตัวเลือกการแปลงรหัสเริ่มต้น
ตัวเลือกการกำหนดค่าและรายการการตั้งค่าทั้งหมดสามารถพบได้ในวิกิ
โมดูลที่มี:
ลำธาร
api - HTTP API (สำคัญสำหรับการรองรับ WebRTC)
rtsp - เซิร์ฟเวอร์ RTSP (สำคัญสำหรับการรองรับ FFmpeg)
webrtc - เซิร์ฟเวอร์ WebRTC
mp4 - เซิร์ฟเวอร์ MSE, สตรีม MP4 และสแน็ปช็อต MP4
hls - HLS TS หรือเซิร์ฟเวอร์สตรีม fMP4
mjpeg - เซิร์ฟเวอร์ MJPEG
ffmpeg - การรวม FFmpeg
ngrok - บูรณาการ ngrok (การเข้าถึงภายนอกสำหรับเครือข่ายส่วนตัว)
hass - บูรณาการผู้ช่วยในบ้าน
บันทึก - กำหนดค่าบันทึก
go2rtc รองรับแหล่งสตรีมประเภทต่างๆ คุณสามารถกำหนดค่าลิงก์หนึ่งหรือหลายลิงก์ประเภทใดก็ได้เป็นแหล่งสตรีม
ประเภทแหล่งที่มาที่มีอยู่:
rtsp - กล้อง RTSP
และ RTSPS
พร้อมรองรับเสียงสองทาง
rtmp - สตรีม RTMP
http - HTTP-FLV
, MPEG-TS
, JPEG
(สแนปชอต), สตรีม MJPEG
onvif - รับลิงก์ RTSP
ของกล้องและลิงก์สแน็ปช็อตโดยใช้โปรโตคอล ONVIF
ffmpeg - การรวม FFmpeg ( HLS
files
และอื่น ๆ อีกมากมาย)
ffmpeg:อุปกรณ์ - กล้อง USB หรือเว็บแคมในเครื่อง
exec - รับสื่อจากเอาต์พุตแอปภายนอก
echo - รับลิงก์สตรีมจาก bash หรือ python
expr - รับลิงก์สตรีมผ่านภาษานิพจน์ในตัว
homekit - สตรีมมิ่งจากกล้อง HomeKit
ฟอง - สตรีมมิ่งจาก ESeeCloud/dvr163 NVR
dvrip - สตรีมมิ่งจาก DVR-IP NVR
tapo - กล้อง TP-Link Tapo พร้อมรองรับเสียงสองทาง
คำถาม - กล้อง TP-Link Kasa
โกโปร - กล้องโกโปร
ivideon - กล้องสาธารณะจากบริการ Ivideon
hass - บูรณาการผู้ช่วยในบ้าน
isapi - เสียงสองทางสำหรับกล้อง Hikvision (ISAPI)
roborock - เครื่องดูดฝุ่น Roborock พร้อมกล้อง
webrtc - แหล่งที่มาของ WebRTC/WHEP
webtorrent - แหล่ง WebTorrent จาก go2rtc อื่น
อ่านเพิ่มเติมเกี่ยวกับแหล่งที่มาที่เข้ามา
รองรับแหล่งที่มา:
กล้อง RTSP พร้อม ONVIF Profile T (การเชื่อมต่อช่องด้านหลัง)
กล้อง DVRIP
กล้อง TP-Link Tapo
กล้อง Hikvision ISAPI
Roborock เครื่องดูดฝุ่นรุ่นพร้อมกล้อง
เสียง Exec บนเซิร์ฟเวอร์
เบราว์เซอร์ใด ๆ ที่เป็นกล้อง IP
สามารถใช้เสียงสองทางในเบราว์เซอร์ด้วยเทคโนโลยี WebRTC เบราว์เซอร์จะให้สิทธิ์การเข้าถึงไมโครโฟนสำหรับไซต์ HTTPS เท่านั้น (อ่านเพิ่มเติม)
go2rtc ยังรองรับการเล่นไฟล์เสียงและสตรีมสดบนกล้องนี้
สตรีม: sonoff_camera: rtsp://rtsp:[email protected]/av_stream/ch0 dahua_กล้อง: - 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_doorbell: - rtsp://username:[email protected]:554/cam/realmonitor?channel=1&subtype=0#backchannel=0 unifi_กล้อง: rtspx://192.168.1.123:7441/fD6ouM72bWoFijxK glichy_camera: ffmpeg:rtsp://username:[email protected]/live/ch00_1
ข้อแนะนำ
ผู้ใช้ Amcrest Doorbell อาจต้องการปิดการใช้งานเสียงสองทาง เนื่องจากเมื่อใช้สตรีม คุณจะใช้งานปุ่มโทรไม่ได้ คุณต้องเพิ่ม #backchannel=0
ต่อท้ายลิงก์ RTSP ของคุณในไฟล์กำหนดค่า YAML
ผู้ใช้ Dahua Doorbell อาจต้องการเปลี่ยนตัวแปลงสัญญาณเสียงช่องสัญญาณด้านหลัง
ผู้ใช้ Reolink อาจไม่ต้องการใช้โปรโตคอล RTSP เลย กล้องบางรุ่นมีการใช้งานสตรีมที่แย่มาก
ผู้ใช้ Ubiquiti UniFi อาจต้องการปิดใช้งานการตรวจสอบ HTTPS ใช้คำนำหน้า rtspx://
แทน rtsps://
และอย่าใช้ ?enableSrtp
ต่อท้าย
ผู้ใช้ TP-Link Tapo อาจข้ามการเข้าสู่ระบบและรหัสผ่านได้ เนื่องจาก go2rtc รองรับการเข้าสู่ระบบโดยไม่ต้องใช้พวกเขา
หากกล้องของคุณมีลิงก์ RTSP สองลิงก์ คุณสามารถเพิ่มทั้งสองลิงก์เป็นแหล่งได้ สิ่งนี้มีประโยชน์เมื่อสตรีมมีตัวแปลงสัญญาณที่แตกต่างกัน เช่น เสียง AAC พร้อมสตรีมหลัก และเสียง PCMU/PCMA พร้อมสตรีมที่สอง
หากสตรีมจากกล้องของคุณผิดพลาด ให้ลองใช้แหล่ง ffmpeg จะไม่เพิ่มภาระของ CPU หากคุณจะไม่ใช้การแปลงรหัส
หากสตรีมจากกล้องของคุณผิดพลาดมาก ให้ลองใช้การแปลงรหัสกับแหล่ง ffmpeg
ตัวเลือกอื่นๆ
รูปแบบ: rtsp...#{param1}#{param2}#{param3}
เพิ่มการหมดเวลาที่กำหนดเอง #timeout=30
(เป็นวินาที)
ละเว้นเสียง - #media=video
หรือละเว้นวิดีโอ - #media=audio
ละเว้น API เสียงสองทาง #backchannel=0
- สำคัญสำหรับกล้องที่มีข้อบกพร่องบางตัว
ใช้การขนส่ง WebSocket #transport=ws...
RTSP ผ่าน WebSocket
สตรีม: # WebSocket ที่ได้รับอนุญาต RTSP - ไม่มี แกน rtsp-ws: rtsp://192.168.1.123:4567/axis-media/media.amp?overview=0&cam=1&solution=1280x720&videoframeskipmode=empty&Axis-Orig-Sw=true#transport=ws://user:[email protected]:4567/ rtsp-over-websocket # WebSocket โดยไม่ได้รับอนุญาต RTSP - ด้วย dahua-rtsp-ws: rtsp://user:[email protected]/cam/realmonitor?channel=1&subtype=1&proto=Private3#transport=ws://192.168.1.123/rtspoverwebsocket
คุณสามารถรับสตรีมจากเซิร์ฟเวอร์ RTMP เช่น Nginx ด้วย nginx-rtmp-module
สตรีม: rtmp_stream: rtmp://192.168.1.123/live/camera1
สนับสนุนเนื้อหา-ประเภท:
HTTP-FLV ( video/x-flv
) - เหมือนกับ RTMP แต่ผ่าน HTTP
HTTP-JPEG ( image/jpeg
) - ลิงก์สแน็ปช็อตของกล้อง สามารถแปลงโดย go2rtc เป็นสตรีม MJPEG
HTTP-MJPEG ( multipart/x
) - สตรีม MJPEG อย่างง่ายผ่าน HTTP
MPEG-TS ( video/mpeg
) - รูปแบบการสตรีมแบบเดิม
Source ยังรองรับสตรีม HTTP และ TCP พร้อมการตรวจจับอัตโนมัติสำหรับรูปแบบที่แตกต่างกัน: MJPEG , H.264/H.265 bitstream , MPEG-TS
สตรีม: # [HTTP-FLV] สตรีมในรูปแบบวิดีโอ/x-flv http_flv: http://192.168.1.123:20880/api/camera/stream/780900131155/657617 # สแนปช็อต [JPEG] จากกล้อง Dahua จะถูกแปลงเป็นสตรีม MJPEG dahua_snap: http://admin:[email protected]/cgi-bin/snapshot.cgi?channel=1 # สตรีม [MJPEG] จะถูกพร็อกซีโดยไม่มีการแก้ไข http_mjpeg: https://mjpeg.sanford.io/count.mjpeg # [MJPEG หรือ H.264/H.265 บิตสตรีมหรือ MPEG-TS] tcp_magic: tcp://192.168.1.123:12345 # เพิ่มส่วนหัวที่กำหนดเอง custom_header: "https://mjpeg.sanford.io/count.mjpeg#header=การอนุญาต: ผู้ถือ XXX"
ป.ล. กล้อง Dahua มีข้อบกพร่อง: หากคุณเลือกตัวแปลงสัญญาณ MJPEG สำหรับการสตรีม RTSP ครั้งที่สอง - สแนปช็อตจะไม่ทำงาน
ใหม่ในเวอร์ชัน 1.5.0
แหล่งที่มาจะไม่มีประโยชน์มากนักหากคุณทราบ RTSP และลิงก์สแนปช็อตสำหรับกล้องของคุณอยู่แล้ว แต่มันจะมีประโยชน์ถ้าคุณไม่ทำ
WebUI > เพิ่ม หน้าเว็บรองรับการค้นหาอัตโนมัติ ONVIF เซิร์ฟเวอร์ของคุณต้องอยู่บนเครือข่ายย่อยเดียวกันกับกล้อง หากคุณใช้นักเทียบท่า คุณต้องใช้ "โฮสต์เครือข่าย"
สตรีม: dahua1: onvif://admin:[email protected] reolink1: onvif://admin:[email protected]:8000 tapo1: onvif://admin:[email protected]:2020
คุณสามารถรับสตรีมหรือไฟล์หรืออุปกรณ์ผ่าน FFmpeg และพุชไปที่ go2rtc แอปจะเริ่ม FFmpeg โดยอัตโนมัติพร้อมข้อโต้แย้งที่เหมาะสมเมื่อมีคนเริ่มดูสตรีม
FFmpeg ได้รับการติดตั้งล่วงหน้าสำหรับผู้ใช้ Docker และ Hass Add-on
ผู้ใช้ Hass Add-on สามารถกำหนดเป้าหมายไฟล์จากโฟลเดอร์ /media
รูปแบบ: ffmpeg:{input}#{param1}#{param2}#{param3}
ตัวอย่าง:
สตรีม: # [FILE] แทร็กทั้งหมดจะถูกคัดลอกโดยไม่มีตัวแปลงรหัสแปลงรหัส ไฟล์ที่ 1: ffmpeg:/media/BigBuckBunny.mp4 # [FILE] วิดีโอจะถูกแปลงเป็น H264 เสียงจะถูกข้าม file2: ffmpeg:/media/BigBuckBunny.mp4#video=h264 # [FILE] วิดีโอจะถูกคัดลอก เสียงจะถูกแปลงเป็น pcmu file3: ffmpeg:/media/BigBuckBunny.mp4#video=copy#audio=pcmu # [HLS] วิดีโอจะถูกคัดลอก เสียงจะถูกข้าม hls: ffmpeg:https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_16x9/gear5/prog_index.m3u8#video=copy # วิดีโอ [MJPEG] จะถูกแปลงเป็น H264 mjpeg: ffmpeg:http://185.97.122.128/cgi-bin/faststream.jpg#video=h264 # [RTSP] วิดีโอที่มีการหมุนควรแปลงรหัส ดังนั้นให้เลือก H264 หมุน: ffmpeg:rtsp://rtsp:[email protected]/av_stream/ch0#video=h264#rotate=90
รูปแบบการแปลงรหัสทั้งหมดมีเทมเพลตในตัว: h264
, h265
, opus
, pcmu
, pcmu/16000
, pcmu/48000
, pcma
, pcma/16000
, pcma/48000
, aac
, aac/16000
แต่คุณสามารถแทนที่มันได้ผ่านการกำหนดค่า YAML คุณยังสามารถเพิ่มรูปแบบของคุณเองเพื่อกำหนดค่าและใช้กับพารามิเตอร์ต้นทางได้
ffmpeg: bin: ffmpeg # เส้นทางไปยังไบนารี ffmpeg h264: "-codec:v libx264 -g:v 30 -preset:v superfast -tune:v zerolatency -profile:v main -level:v 4.1" mycodec: "-args ใด ๆ ที่สนับสนุนโดย ffmpeg ... " myinput: "-fflags nobuffer -flags low_delay -timeout 5000000 -i {อินพุต}" myraw: "-ss 00:00:20"
คุณสามารถใช้ชื่อสตรีม go2rtc เป็นอินพุต ffmpeg (เช่น ffmpeg:camera1#video=h264
)
คุณสามารถใช้พารามิเตอร์ video
และ audio
ได้หลายครั้ง (เช่น #video=copy#audio=copy#audio=pcmu
)
คุณสามารถใช้พารามิเตอร์ rotate
ที่มีค่า 90
, 180
, 270
หรือ -90
ซึ่งสำคัญกับการแปลงรหัส (เช่น #video=h264#rotate=90
)
คุณสามารถใช้พารามิเตอร์ width
และ/หรือ height
ได้ ซึ่งสำคัญกับการแปลงรหัส (เช่น #video=h264#width=1280
)
คุณสามารถใช้ drawtext
เพื่อเพิ่มการประทับเวลา (เช่น drawtext=x=2:y=2:fontsize=12:fontcolor=white:box=1:boxcolor=black
)
ซึ่งจะช่วยเพิ่ม CPU ของเซิร์ฟเวอร์ได้อย่างมาก แม้ว่าจะเร่งด้วยฮาร์ดแวร์ก็ตาม
คุณสามารถใช้พารามิเตอร์ raw
สำหรับอาร์กิวเมนต์ FFmpeg เพิ่มเติม (เช่น #raw=-vf transpose=1
)
คุณสามารถใช้พารามิเตอร์ input
เพื่อแทนที่เทมเพลตอินพุตเริ่มต้น (เช่น #input=rtsp/udp
จะเปลี่ยนการขนส่ง RTSP จาก TCP เป็น UDP+TCP)
คุณสามารถใช้ค่าอินพุตดิบ (เช่น #input=-timeout 5000000 -i {input}
)
คุณสามารถเพิ่มเทมเพลตอินพุตของคุณเองได้
อ่านเพิ่มเติมเกี่ยวกับการเร่งด้วยฮาร์ดแวร์
ป.ล. ขอแนะนำให้ตรวจสอบฮาร์ดแวร์ที่มีอยู่ในหน้าเพิ่ม WebUI
คุณสามารถรับวิดีโอจากกล้อง USB หรือเว็บแคมเป็นสตรีม RTSP หรือ WebRTC นี่เป็นส่วนหนึ่งของการรวม FFmpeg
ตรวจสอบอุปกรณ์ที่มีอยู่ในอินเทอร์เฟซเว็บ
กล้องของคุณต้องรองรับ video_size
และ framerate
!
สำหรับ Linux รองรับเฉพาะวิดีโอในตอนนี้
สำหรับ macOS คุณสามารถสตรีมกล้อง Facetime หรือทั้งเดสก์ท็อปได้!
สำหรับ macOS สิ่งสำคัญคือต้องตั้งค่าเฟรมเรทให้เหมาะสม
รูปแบบ: ffmpeg:device?{input-params}#{param1}#{param2}#{param3}
สตรีม: linux_usbcam: ffmpeg:device?video=0&video_size=1280x720#video=h264 windows_webcam: ffmpeg:device?video=0#video=h264 macos_facetime: ffmpeg:device?video=0&audio=1&video_size=1280x720&framerate=30#video=h264#audio=pcma
ป.ล. ขอแนะนำให้ตรวจสอบอุปกรณ์ที่มีอยู่ในหน้าเพิ่ม WebUI
แหล่งที่มาของ Exec สามารถเรียกใช้แอปพลิเคชันภายนอกและคาดหวังข้อมูลจากแอปพลิเคชันนั้นได้ รองรับการขนส่งสองแบบ - ไปป์ ( จาก v1.5.0 ) และ RTSP
หากคุณต้องการใช้การขนส่ง RTSP คำสั่งจะต้องมีอาร์กิวเมนต์ {output}
อยู่ที่ใดก็ได้ เมื่อเปิดตัว จะถูกแทนที่ด้วยที่อยู่ในเครื่องของเซิร์ฟเวอร์ RTSP
ไปป์ อ่านข้อมูลจาก app stdout ในรูปแบบที่แตกต่างกัน: MJPEG , H.264/H.265 bitstream , MPEG-TS นอกจากนี้ไปป์ยังสามารถเขียนข้อมูลไปยังแอป stdin ในสองรูปแบบ: PCMA และ PCM/48000
แหล่งที่มาสามารถใช้กับ:
FFmpeg - แหล่ง go2rtc ffmpeg เพียงทางลัดไปยังแหล่ง exec
FFplay - เล่นเสียงบนเซิร์ฟเวอร์ของคุณ
GStreamer
กล้องราสเบอร์รี่ Pi
ซอฟต์แวร์ของคุณเอง
คำสั่งไปป์รองรับพารามิเตอร์ (รูปแบบ: exec:{command}#{param1}#{param2}
):
killsignal
- สัญญาณที่จะถูกส่งเพื่อหยุดกระบวนการ (รูปแบบตัวเลข)
killtimeout
- เวลาเป็นวินาทีสำหรับการบังคับยุติด้วย sigkill
backchannel
- เปิดใช้งาน backchannel สำหรับเสียงสองทาง
สตรีม: สตรีม: 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 รูปแบบ h264 -o - canon: 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
แหล่งข้อมูลบางแห่งอาจมีลิงก์แบบไดนามิก และคุณจะต้องได้รับมันโดยใช้สคริปต์ทุบตีหรือหลาม สคริปต์ของคุณควรสะท้อนลิงก์ไปยังแหล่งที่มา RTSP, FFmpeg หรือแหล่งที่มาที่รองรับ
ผู้ใช้ Docker และ Hass Add-on ได้ติดตั้ง python3
, curl
, jq
ไว้ล่วงหน้าแล้ว
ตรวจสอบตัวอย่างในวิกิ
สตรีม: apple_hls: echo:python3 hls.py https://developer.apple.com/streaming/examples/basic-stream-osx-ios5.html
ใหม่ในเวอร์ชัน 1.8.2
เช่นเดียวกับแหล่งที่มา echo
แต่ใช้ภาษานิพจน์ expr ในตัว (อ่านเพิ่มเติม)
สำคัญ:
คุณสามารถใช้กล้อง HomeKit ได้ โดยไม่ต้องมีอุปกรณ์ Apple (iPhone, iPad ฯลฯ) ซึ่งเป็นเพียงโปรโตคอลอื่น
อุปกรณ์ HomeKit สามารถจับคู่กับระบบนิเวศเดียวเท่านั้น ดังนั้น หากคุณจับคู่กับ iPhone (Apple Home) คุณจะไม่สามารถจับคู่กับ Home Assistant หรือ go2rtc ได้ หรือหากคุณจับคู่กับ go2rtc คุณจะไม่สามารถจับคู่กับ iPhone ได้
อุปกรณ์ HomeKit ควรอยู่ในเครือข่ายเดียวกันกับ mDNS ที่ใช้งานได้ระหว่างอุปกรณ์และ go2rtc
go2rtc รองรับการนำเข้าอุปกรณ์ HomeKit ที่จับคู่จาก Home Assistant คุณจึงใช้กล้อง HomeKit กับ Hass และ go2rtc ได้พร้อมกัน หากคุณใช้ Hass ฉันแนะนำให้จับคู่อุปกรณ์ด้วย ซึ่งจะทำให้คุณมีทางเลือกมากขึ้น
คุณสามารถจับคู่อุปกรณ์กับ go2rtc ได้ที่หน้า HomeKit หากคุณไม่เห็นอุปกรณ์ของคุณ - โหลดหน้านี้ซ้ำ ลองรีบูทอุปกรณ์ HomeKit ของคุณ (ปิดเครื่อง) หากคุณยังไม่เห็น - คุณมีปัญหากับ mDNS
หากคุณเห็นอุปกรณ์ แต่ไม่มีปุ่มจับคู่ อุปกรณ์ดังกล่าวจะจับคู่กับระบบนิเวศบางอย่าง (Apple Home, Home Assistant, HomeBridge ฯลฯ) คุณต้องลบอุปกรณ์ออกจากระบบนิเวศนั้น และจะพร้อมสำหรับการจับคู่ หากคุณไม่สามารถยกเลิกการจับคู่อุปกรณ์ คุณจะต้องรีเซ็ตอุปกรณ์
สำคัญ:
เสียง HomeKit ใช้ตัวแปลงสัญญาณ AAC-ELD ที่ไม่ได้มาตรฐานอย่างมาก โดยมีพารามิเตอร์ที่ไม่ได้มาตรฐานและการละเมิดข้อมูลจำเพาะ
ไม่สามารถเล่นเสียงใน VLC
และอาจเป็นเครื่องเล่นอื่น
ควรแปลงเสียงเพื่อใช้กับ MSE, WebRTC ฯลฯ
การตั้งค่าที่แนะนำสำหรับการใช้ HomeKit Camera กับ WebRTC, MSE, MP4, RTSP:
streams: aqara_g3: - hass:Camera-Hub-G3-AB12 - ffmpeg:aqara_g3#audio=aac#audio=opus
ลิงก์ RTSP พร้อมเสียง "ปกติ" สำหรับเครื่องเล่นใดๆ: rtsp://192.168.1.123:8554/aqara_g3?video&audio=aac
แหล่งที่มานี้อยู่ระหว่างการพัฒนา! ทดสอบกับ Aqara Camera Hub G3 เท่านั้น (ทั้งเวอร์ชัน EU และ CN)
ใหม่ในเวอร์ชัน 1.6.1
ชื่ออื่นๆ: ESeeCloud, dvr163.
คุณสามารถข้าม username
, password
, port
, ch
และ stream
ได้หากเป็นค่าเริ่มต้น
ตั้งค่าสตรีมแยกสำหรับช่องและสตรีมต่างๆ
สตรีม: camera1: bubble://username:[email protected]:34567/bubble/live?ch=0&stream=0
ใหม่ในเวอร์ชัน 1.2.0
ชื่ออื่น ๆ: DVR-IP, NetSurveillance, โปรโตคอลโซเฟีย (ปลั๊กอิน NETsurveillance ActiveX XMeye SDK)
คุณสามารถข้าม username
, password
, port
, channel
และ subtype
หากเป็นค่าเริ่มต้น
ตั้งค่าสตรีมแยกสำหรับช่องต่างๆ
ใช้ subtype=0
สำหรับสตรีมหลัก และ subtype=1
สำหรับสตรีม Extra1
รองรับเฉพาะโปรโตคอล TCP เท่านั้น
กระแส: only_stream: dvrip://username:[email protected]:34567?channel=0&subtype=0 only_tts: dvrip://username:[email protected]:34567?backchannel=1 two_way_audio: - dvrip://username:[email protected]:34567?channel=0&subtype=0- dvrip://username:[email protected]:34567?backchannel=1
ใหม่ในเวอร์ชัน 1.2.0
โปรโตคอลกล้องที่เป็นกรรมสิทธิ์ของ TP-Link Tapo พร้อมการรองรับ เสียงสองทาง
คุณภาพการสตรีมจะเหมือนกับโปรโตคอล RTSP
ใช้ รหัสผ่านคลาวด์ นี่ไม่ใช่รหัสผ่าน RTSP! คุณไม่จำเป็นต้องเพิ่มการเข้าสู่ระบบ!
คุณยังสามารถใช้แฮช UPPERCASE MD5 จากรหัสผ่านคลาวด์ของคุณด้วยชื่อผู้ใช้ admin
เฟิร์มแวร์กล้องใหม่บางตัวต้องใช้ SHA256 แทน MD5
สตรีม: # รหัสผ่านคลาวด์ที่ไม่มีชื่อผู้ใช้ กล้อง1: tapo://[email protected] # ชื่อผู้ใช้ของผู้ดูแลระบบและแฮชรหัสผ่านคลาวด์ MD5 ตัวพิมพ์ใหญ่ กล้อง2: tapo://admin:[email protected] # ชื่อผู้ใช้ของผู้ดูแลระบบและแฮชรหัสผ่านคลาวด์ SHA256 ตัวพิมพ์ใหญ่ camera3: tapo://admin:[email protected]
echo -n "รหัสผ่านคลาวด์" | md5 | awk '{พิมพ์ toupper($0)}'echo -n "รหัสผ่านคลาวด์" | ชาซุม -a 256 | awk '{พิมพ์ topper ($0)}'
ใหม่ในเวอร์ชัน 1.7.0
ข้อมูลเพิ่มเติม โปรโตคอลที่ไม่ได้มาตรฐาน TP-Link Kasa
username
- อีเมล urlsafe, [email protected]
-> alex%40gmail.com
password
- base64password, secret1
-> c2VjcmV0MQ==
สตรีม: kc401: kasa://username:[email protected]:19443/https/stream/mixed
ผ่านการทดสอบแล้ว: KD110, KC200, KC401, KC420WS, EC71
ใหม่ในเวอร์ชัน 1.8.3
รองรับการสตรีมจากกล้อง GoPro เชื่อมต่อผ่าน USB หรือ Wi-Fi ไปยัง Linux, Mac, Windows อ่านเพิ่มเติม
รองรับกล้องสาธารณะจากบริการ Ivideon
สตรีม: นกกระทา: ivideon:100-tu5dkUPct39cTp9oNEN2B6/0
รองรับการนำเข้าลิงก์กล้องจากไฟล์กำหนดค่า Home Assistant:
กล้องทั่วไป ตั้งค่าผ่าน GUI
กล้องโฮมคิท
ONVIF
เครื่องดูดฝุ่น Roborock พร้อมกล้อง
hass: config: "/config" # ข้ามการตั้งค่านี้หากคุณ Hass Add-on userstreams: generic_camera: hass:Camera1 # การตั้งค่า > การรวมระบบ > ชื่อการรวมระบบ aqara_g3: มี:กล้อง-Hub-G3-AB12
กล้อง WebRTC ( จาก v1.6.0 )
รองรับกล้องทุกตัวในรูปแบบ WebRTC แต่ในขณะนี้ Home Assistant รองรับเฉพาะกล้อง Nest บางรุ่นในรูปแบบนี้เท่านั้น
สำคัญ. Nest API อนุญาตให้คุณรับลิงก์ไปยังสตรีมเป็นเวลา 5 นาทีเท่านั้น อย่าใช้สิ่งนี้กับเรือรบ! หากสตรีมหมดอายุ Frigate จะใช้ RAM ทั้งหมดที่มีอยู่ในเครื่องของคุณภายในไม่กี่วินาที ขอแนะนำให้ใช้แหล่งที่มาของ Nest - รองรับการขยายสตรีม
สตรีม: # ลิงก์ไปยัง Home Assistant Supervised hass-webrtc1: hass://supervisor?entity_id=camera.nest_doorbell # ลิงก์ไปยัง Hass ภายนอกพร้อมโทเค็นการเข้าถึงแบบ Long-Lived hass-webrtc2: hass://192.168.1.123:8123?entity_id=camera.nest_doorbell&token=eyXYZ...
กล้อง RTSP
ตามค่าเริ่มต้น Home Assistant API ไม่อนุญาตให้คุณรับลิงก์ RTSP แบบไดนามิกไปยังสตรีมของกล้อง ดังนั้นจึงสามารถนำเข้ากล้องอื่นๆ เช่น Tuya และกล้องอื่นๆ ได้มากขึ้นโดยใช้วิธีนี้
ใหม่ในเวอร์ชัน 1.3.0
ประเภทแหล่งที่มานี้รองรับเฉพาะเสียงแบ็คแชนเนลสำหรับโปรโตคอล Hikvision ISAPI ดังนั้นจึงควรใช้เป็นแหล่งที่สองนอกเหนือจากโปรโตคอล RTSP
สตรีม: hikvision1: - rtsp://admin:[email protected]:554/Streaming/Channels/101- isapi://admin:[email protected]:80/
ใหม่ในเวอร์ชัน 1.6.0
ปัจจุบันรองรับเฉพาะกล้อง WebRTC เท่านั้น
เพื่อความง่าย ขอแนะนำให้เชื่อมต่อกล้อง Nest/WebRTC กับ Home Assistant แต่ถ้าคุณสามารถรับพารามิเตอร์ด้านล่างได้ - แหล่งที่มาของ Nest/WebRTC จะทำงานโดยไม่มี Hass
สตรีม: รังนกประตู: รัง:?client_id=***&client_secret=***&refresh_token=***&project_id=***&device_id=***
ใหม่ในเวอร์ชัน 1.3.0
แหล่งที่มาประเภทนี้รองรับเครื่องดูดฝุ่น Roborock พร้อมกล้อง รูปแบบการทำงานที่รู้จัก:
Roborock S6 MaxV - วิดีโอเท่านั้น (เครื่องดูดฝุ่นไม่มีไมโครโฟน)
Roborock S7 MaxV - วิดีโอและเสียงสองทาง
Roborock Qrevo MaxV - วิดีโอและเสียงสองทาง
แหล่งที่มาของการสนับสนุนโหลดข้อมูลรับรอง Roborock จากการรวมระบบ Home Assistant แบบกำหนดเองหรือการรวมระบบหลัก มิฉะนั้น คุณจะต้องลงชื่อเข้าใช้บัญชี Roborock ของคุณ (ไม่รองรับบัญชี MiHome) ไปที่: go2rtc WebUI > เพิ่มหน้าเว็บ คัดลอกแหล่งที่ roborock://...
สำหรับสุญญากาศของคุณและวางลงในการกำหนดค่า go2rtc.yaml
หากคุณมีพินกราฟิกสำหรับเครื่องดูดฝุ่นของคุณ ให้เพิ่มเป็นพินตัวเลข (เส้น: 123, 456, 789) ที่ส่วนท้ายของ roborock-link
ใหม่ในเวอร์ชัน 1.3.0
แหล่งที่มาประเภทนี้รองรับรูปแบบการเชื่อมต่อสี่รูปแบบ
เฆี่ยนตี
WebRTC/WHEP - ถูกแทนที่ด้วยมาตรฐาน WebRTC/WISH สำหรับผู้ดูวิดีโอ/เสียง WebRTC แต่อาจได้รับการรองรับแล้วในซอฟต์แวร์บุคคลที่สามบางตัว รองรับใน go2rtc
go2rtc
รูปแบบนี้รองรับใน go2rtc เท่านั้น ต่างจาก WHEP ที่รองรับการเชื่อมต่อ WebRTC แบบอะซิงโครนัสและเสียงสองทาง
openipc ( จาก v1.7.0 )
รองรับการเชื่อมต่อกับกล้อง OpenIPC
ไวซ์ ( จาก v1.6.1 )
รองรับการเชื่อมต่อกับกล้อง Wyze โดยใช้โปรโตคอล WebRTC คุณสามารถใช้โปรเจ็กต์ docker-wyze-bridge เพื่อรับข้อมูลรับรองการเชื่อมต่อ
ไคเนซิส ( จากเวอร์ชัน 1.6.1 )
รองรับ Amazon Kinesis Video Streams โดยใช้โปรโตคอล WebRTC คุณต้องระบุ URL การส่งสัญญาณ WebSocket ด้วยข้อมูลประจำตัวทั้งหมดในพารามิเตอร์การสืบค้น รายการ client_id
และ ice_servers
ในรูปแบบ JSON
สตรีม: 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=[{...},{...}]
ป.ล. สำหรับแหล่งที่มา kinesis
คุณสามารถใช้ echo เพื่อรับพารามิเตอร์การเชื่อมต่อโดยใช้ bash
/ python
หรือภาษาสคริปต์อื่น ๆ
ใหม่ในเวอร์ชัน 1.3.0
แหล่งที่มานี้สามารถรับสตรีมจาก go2rtc อื่นผ่านโปรโตคอล WebTorrent
สตรีม: webtorrent1: webtorrent:?share=huofssuxaty00izc&pwd=k3l2j9djeg8v8r7e
ตามค่าเริ่มต้น go2rtc จะสร้างการเชื่อมต่อกับต้นทางเมื่อไคลเอ็นต์ร้องขอ Go2rtc ยกเลิกการเชื่อมต่อกับต้นทางเมื่อไม่มีไคลเอ็นต์เหลืออยู่
Go2rtc ยังยอมรับแหล่งที่มาที่เข้ามาในรูปแบบ RTSP, RTMP, HTTP และ WebRTC/WHIP
Go2rtc จะไม่หยุดแหล่งที่มาดังกล่าวหากไม่มีไคลเอ็นต์
คุณสามารถส่งข้อมูลไปยังสตรีมที่มีอยู่เท่านั้น (สร้างสตรีมด้วยแหล่งว่างในการกำหนดค่า)
คุณสามารถพุชแหล่งที่เข้ามาหลายแหล่งไปยังสตรีมเดียวกันได้
คุณสามารถส่งข้อมูลไปยังสตรีมที่ไม่ว่างได้ ดังนั้นข้อมูลจึงมีตัวแปลงสัญญาณเพิ่มเติมอยู่ภายใน
ตัวอย่าง
RTSP พร้อมตัวแปลงสัญญาณใด ๆ
ffmpeg -re -i BigBuckBunny.mp4 -c คัดลอก -rtsp_transport tcp -f rtsp rtsp://localhost:8554/camera1
HTTP-MJPEG พร้อมตัวแปลงสัญญาณ MJPEG
ffmpeg -re -i BigBuckBunny.mp4 -c mjpeg -f mpjpeg http://localhost:1984/api/stream.mjpeg?dst=กล้อง1
HTTP-FLV พร้อมตัวแปลงสัญญาณ H264, AAC
ffmpeg -re -i BigBuckBunny.mp4 -c คัดลอก -f flv http://localhost:1984/api/stream.flv?dst=camera1
MPEG-TS พร้อมตัวแปลงสัญญาณ H264
ffmpeg -re -i BigBuckBunny.mp4 -c คัดลอก -f mpegts http://localhost:1984/api/stream.ts?dst=camera1
ใหม่ในเวอร์ชัน 1.3.0
คุณสามารถเปลี่ยนเบราว์เซอร์ของพีซีหรือมือถือให้เป็นกล้อง IP พร้อมรองรับวิดีโอและเสียงสองทาง หรือแม้แต่ออกอากาศหน้าจอพีซีของคุณ:
สร้างสตรีมว่างใน go2rtc.yaml
ไปที่ go2rtc WebUI
เปิดหน้า links
เพื่อให้คุณสตรีม
เลือกตัวเลือก camera+microphone
หรือ display+speaker
เปิดเพจท้องถิ่น webrtc
(go2rtc ของคุณ ควรทำงานบน HTTPS! ) หรือ share link
ผ่านเทคโนโลยี WebTorrent (ทำงานบน HTTPS เป็นค่าเริ่มต้น)
ใหม่ในเวอร์ชัน 1.3.0
คุณสามารถใช้ OBS Studio หรือซอฟต์แวร์ออกอากาศอื่นๆ ที่รองรับโปรโตคอล WHIP มาตรฐานนี้ยังไม่ได้รับการอนุมัติ แต่คุณสามารถดาวน์โหลดเวอร์ชันผู้พัฒนา OBS Studio ได้:
การตั้งค่า > สตรีม > บริการ: WHIP > http://192.168.1.123:1984/api/webrtc?dst=camera1
ใหม่ในเวอร์ชัน 1.3.0
go2rtc รองรับการเล่นไฟล์เสียง (เช่น เพลงหรือ TTS) และสตรีมสด (เช่น วิทยุ) บนกล้องที่รองรับเสียงสองทาง (กล้อง RTSP/ONVIF, TP-Link Tapo, Hikvision ISAPI, เครื่องดูดฝุ่น Roborock และเบราว์เซอร์ใดก็ได้)
ตัวอย่าง API:
POST http://localhost:1984/api/streams?dst=camera1&src=ffmpeg:http://example.com/song.mp3#audio=pcma#input=file
คุณสามารถสตรีม: ไฟล์ในเครื่อง ไฟล์เว็บ สตรีมสด หรือรูปแบบใดๆ ที่ FFmpeg รองรับ
คุณควรใช้แหล่ง ffmpeg เพื่อแปลงรหัสเสียงเป็นตัวแปลงสัญญาณที่กล้องของคุณรองรับ
คุณสามารถตรวจสอบตัวแปลงสัญญาณของกล้องได้ที่หน้าข้อมูล go2rtc WebUI เมื่อสตรีมทำงานอยู่
กล้องบางตัวรองรับเฉพาะตัวแปลงสัญญาณ PCMA/8000
คุณภาพต่ำ (เช่น Tapo)
ขอแนะนำให้เลือกรูปแบบคุณภาพสูงกว่าหากกล้องของคุณรองรับ (เช่น PCMA/48000
สำหรับกล้อง Dahua บางรุ่น)
หากคุณเล่นไฟล์ผ่าน http-link คุณจะต้องเพิ่ม #input=file
params สำหรับการแปลงไฟล์ ดังนั้นไฟล์จะถูกแปลงและเล่นแบบเรียลไทม์
หากคุณเล่นสตรีมสด คุณควรข้าม #input
param เนื่องจากเป็นแบบเรียลไทม์อยู่แล้ว
คุณสามารถหยุดการเล่นที่ใช้งานอยู่ได้โดยการเรียก API ด้วยพารามิเตอร์ src
ที่ว่างเปล่า
คุณจะเห็นผู้ผลิตที่ใช้งานอยู่หนึ่งรายและผู้บริโภคที่ใช้งานอยู่หนึ่งรายในหน้าข้อมูล go2rtc WebUI ระหว่างการสตรีม
ใหม่ในเวอร์ชัน 1.8.0
คุณสามารถเผยแพร่สตรีมไปยังบริการสตรีมมิ่ง (YouTube, Telegram ฯลฯ) ผ่านทาง RTMP/RTMPS สำคัญ:
ตัวแปลงสัญญาณที่รองรับ: H264 สำหรับวิดีโอและ AAC สำหรับเสียง
YouTube ต้องใช้เสียง AAC วิดีโอที่ไม่มีเสียงจะไม่ทำงาน
คุณไม่จำเป็นต้องเปิดใช้งานการฟังโมดูล RTMP สำหรับงานนี้
คุณสามารถใช้ API:
POST http://localhost:1984/api/streams?src=camera1&dst=rtmps://...
หรือไฟล์กำหนดค่า:
เผยแพร่: # เผยแพร่สตรีม "video_audio_transcode" ไปยัง Telegram video_audio_transcode: - rtmps://xxx-x.rtmp.t.me/s/xxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxx # เผยแพร่สตรีม "audio_transcode" ไปยัง Telegram และ YouTube เสียง_ทรานส์โค้ด: - rtmps://xxx-x.rtmp.t.me/s/xxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxx- rtmp://xxx.rtmp.youtube.com/live2/xxxx-xxxx-xxxx-xxxx-xxxxstreams: video_audio_transcode: - ffmpeg:rtsp://user:[email protected]/stream1#video=h264#hardware#audio=aac เสียง_ทรานส์โค้ด: - ffmpeg:rtsp://user:[email protected]/stream1#video=copy#audio=aac
แอพ Telegram Desktop > ช่องหรือกลุ่มสาธารณะหรือส่วนตัว (ที่คุณเป็นผู้ดูแล) > สตรีมสด > เริ่มต้นด้วย... > เริ่มการสตรีม
YouTube > สร้าง > ถ่ายทอดสด > เวลาแฝงของสตรีม: เวลาแฝงต่ำมาก > คัดลอก: URL ของสตรีม + คีย์สตรีม
HTTP API เป็นส่วนหลักสำหรับการโต้ตอบกับแอปพลิเคชัน ที่อยู่เริ่มต้น: http://localhost:1984/
สำคัญ! go2rtc ส่งคำขอจาก localhost และจากซ็อกเก็ต unix โดยไม่ได้รับอนุญาต HTTP แม้ว่าคุณจะกำหนดค่าไว้ก็ตาม! คุณมีหน้าที่รับผิดชอบในการตั้งค่าการเข้าถึง API จากภายนอกอย่างปลอดภัย หากไม่ได้รับการกำหนดค่าอย่างเหมาะสม ผู้โจมตีจะสามารถเข้าถึงกล้องของคุณและแม้แต่เซิร์ฟเวอร์ของคุณได้
คำอธิบาย API
การกำหนดค่าโมดูล
คุณสามารถปิดการใช้งาน HTTP API ด้วย listen: ""
และใช้เฉพาะโปรโตคอลไคลเอ็นต์/เซิร์ฟเวอร์ RTSP เท่านั้น
คุณสามารถเปิดใช้งาน HTTP API ได้เฉพาะบน localhost ด้วยการตั้ง listen: "127.0.0.1:1984"
คุณสามารถเปลี่ยน API base_path
และโฮสต์ go2rtc บน suburl ของเว็บเซิร์ฟเวอร์แอปหลักของคุณได้
ไฟล์ทั้งหมดจาก static_dir
โฮสต์บนเส้นทางรูท: /
คุณสามารถใช้เนื้อหาใบรับรอง TLS/คีย์ดิบหรือเส้นทางไปยังไฟล์ได้
api: ฟัง: ":1984" # default ":1984", พอร์ต HTTP API ("" - ปิดการใช้งาน) ชื่อผู้ใช้: "admin" # default "", การตรวจสอบสิทธิ์ขั้นพื้นฐานสำหรับ WebUI รหัสผ่าน: "pass" # default "", การตรวจสอบสิทธิ์ขั้นพื้นฐานสำหรับ WebUI base_path: "/rtc" # default "", คำนำหน้า API สำหรับการให้บริการบน suburl (/api => /rtc/api) static_dir: "www" # default "", โฟลเดอร์สำหรับไฟล์คงที่ (เว็บอินเตอร์เฟสแบบกำหนดเอง) ต้นกำเนิด: "*" # default "" อนุญาตคำขอ CORS (รองรับ * เท่านั้น) tls_listen: ":443" # default "", เปิดใช้งานเซิร์ฟเวอร์ HTTPS tls_cert: | # ค่าเริ่มต้น "", ใบรับรอง fullchain ที่เข้ารหัสด้วย PEM สำหรับ HTTPS -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- tls_key: | # ค่าเริ่มต้น "" ซึ่งเป็นคีย์ส่วนตัวที่เข้ารหัส PEM สำหรับ HTTPS -----BEGIN PRIVATE KEY----- ... -----END PRIVATE KEY----- unix_listen: "/tmp/go2rtc.sock " # default "", ตัวฟังซ็อกเก็ตยูนิกซ์สำหรับ API
ป.ล.:
MJPEG ผ่าน WebSocket เล่นได้ดีกว่า MJPEG ดั้งเดิมเนื่องจากข้อผิดพลาดของ Chrome
MP4 บน WebSocket สร้างขึ้นสำหรับ Apple iOS เท่านั้น เนื่องจากไม่รองรับ MSE และ MP4 ดั้งเดิม
คุณสามารถรับสตรีมใด ๆ ที่เป็น RTSP-stream: rtsp://192.168.1.123:8554/{stream_name}
คุณสามารถเปิดใช้งานการป้องกันด้วยรหัสผ่านภายนอกสำหรับสตรีม RTSP ของคุณได้ การป้องกันด้วยรหัสผ่านจะถูกปิดใช้งานเสมอสำหรับการโทรในพื้นที่ (เช่น FFmpeg หรือ Hass บนเซิร์ฟเวอร์เดียวกัน)
rtsp: ฟัง: ":8554" # พอร์ต TCP เซิร์ฟเวอร์ RTSP ค่าเริ่มต้น - 8554 ชื่อผู้ใช้: "ผู้ดูแลระบบ" # ตัวเลือก ค่าเริ่มต้น - ปิดการใช้งาน รหัสผ่าน: "ผ่าน" # ตัวเลือก ค่าเริ่มต้น - ปิดใช้งาน default_query: "วิดีโอและเสียง" <sp