ส่วนประกอบที่กำหนดเองของ Home Assistant สำหรับการดูสตรีมกล้องเกือบทุกแบบแบบเรียลไทม์โดยใช้ WebRTC และเทคโนโลยีอื่นๆ
ตั้งแต่เวอร์ชัน 3 เป็นต้นไป เซิร์ฟเวอร์สตรีมมิ่งได้เปลี่ยนจาก RTSPtoWebRTC เป็น go2rtc
go2rtc
การติดตั้ง
การกำหนดค่า
การ์ดที่กำหนดเอง
เทมเพลต
เสียงสองทาง
ภาพรวมไปยังโทรเลข
แคสต์หรือแชร์สตรีม
สตรีมไปที่กล้อง
คำถามที่พบบ่อย
ดีบัก
กล้องทำงานที่รู้จักกัน
ส่วนประกอบนี้ใช้แอปพลิเคชัน go2rtc เป็นเซิร์ฟเวอร์สตรีมมิ่ง:
เวลาแฝงในการสตรีมต่ำที่สุดที่เป็นไปได้สำหรับโปรโตคอลที่รองรับจำนวนมาก
สตรีมมิ่งจาก RTSP, RTMP, HTTP (FLV/MJPEG/JPEG), กล้อง HomeKit, กล้อง USB และแหล่งอื่นๆ
สตรีมมิ่งไปยัง RTSP, WebRTC, MSE/MP4 หรือ MJPEG
รองรับตัวแปลงสัญญาณยอดนิยม H264/H265, AAC, PCMU/PCMA, OPUS
การแปลงรหัสได้ทันทีสำหรับตัวแปลงสัญญาณที่ไม่รองรับผ่าน FFmpeg
เลือกเทคโนโลยีสตรีมมิ่งอัตโนมัติตามตัวแปลงสัญญาณสตรีม ความสามารถของเบราว์เซอร์ การกำหนดค่าเครือข่าย
อ่านเพิ่มเติมในเอกสาร go2rtc!
คุณสามารถติดตั้ง go2rtc ได้หลายวิธี:
ผู้ใช้ขั้นพื้นฐาน - องค์ประกอบนี้จะดาวน์โหลดและรัน go2rtc เวอร์ชันล่าสุดโดยอัตโนมัติ คุณไม่จำเป็นต้องทำอะไรด้วยตัวเอง
ผู้ใช้ขั้นสูง - ติดตั้งส่วนเสริม go2rtc หรือ Frigate 12+
Hakers - ติดตั้ง go2rtc เป็นไบนารี่หรือ Docker บนเซิร์ฟเวอร์ใดก็ได้ใน LAN
คุณสามารถเปลี่ยนการตั้งค่า go2rtc ได้โดยเพิ่มไฟล์ go2rtc.yaml
ลงในโฟลเดอร์การกำหนดค่า Hass
สำคัญ. go2rtc รันเว็บอินเตอร์เฟสของตัวเองบนพอร์ต 1984
โดยไม่ต้องใช้รหัสผ่าน คุณสามารถดูรายการสตรีมกล้องที่ใช้งานอยู่ได้จากที่นั่น ทุกคนใน LAN ของคุณสามารถ เข้าถึงได้โดยไม่ต้องใช้รหัสผ่าน คุณสามารถปิดการใช้งานนี้ได้ในการกำหนดค่า go2rtc
ป.ล. นอกจากนี้ยังมีการ์ดที่ดีอีกใบที่รองรับ go2rtc - การ์ด Frigate Lovelace
วิธีที่ 1. HACS > การรวมระบบ > บวก > WebRTC > ติดตั้ง
วิธีที่ 2. คัดลอกโฟลเดอร์ webrtc
ด้วยตนเองจากรีลีสล่าสุดไปยังโฟลเดอร์ /config/custom_components
custom_card
จะถูกลงทะเบียนโดยอัตโนมัติกับ Home Assistant UI ยกเว้นเมื่อคุณจัดการ UI ในโหมด YAML หากคุณกำลังจัดการ UI ในโหมด YAML ให้เพิ่มสิ่งนี้ลงในทรัพยากร UI ของคุณเพื่อให้ custom:webrtc-camera
card ทำงาน:
URL: /webrtc/webrtc-camera.jstype: โมดูล
รีเฟรชเบราว์เซอร์ของคุณ
การตั้งค่า > อุปกรณ์และบริการ > เพิ่มการผสานรวม > WebRTC
หากการผสานรวมไม่อยู่ในรายการ คุณจะต้องล้างแคชของเบราว์เซอร์
ส่วนประกอบ ไม่ได้สร้างอุปกรณ์และเอนทิตี สร้างเพียงสองบริการและการ์ดแบบกำหนดเองของ lovelace
เป็น url
คุณสามารถใช้:
โปรโตคอลใด ๆ ที่รองรับโดย go2rtc ( rtsp
, rtmp
, http
, onvif
, dvrip
, homekit
, roborock
ฯลฯ )
name
สตรีมจากการกำหนดค่า go2rtc
เทมเพลต Jinja2
(ควรแสดงโปรโตคอลที่รองรับหรือ name
สตรีม)
ในฐานะ entity
คุณสามารถใช้กล้องได้เกือบทุกตัวจาก Hass
ในฐานะ poster
คุณสามารถใช้:
http
-link (ควรเป็นลิงก์ที่เปิดเผยต่อสาธารณะ)
entity
กล้องจาก Hass
name
สตรีมจากการกำหนดค่า go2rtc
เทมเพลต Jinja2
(ควรแสดง entity
กล้องหรือ name
สตรีม)
น้อยที่สุด
ประเภท: 'กำหนดเอง:webrtc-camera'url: 'rtsp://rtsp:[email protected]:554/av_stream/ch0'
หรือ
ประเภท: 'กำหนดเอง: webrtc-cam'url: 'camera1' # ชื่อสตรีมจาก go2rtc.yaml
หรือ
ประเภท: 'กำหนดเอง: webrtc-กล้อง'เอนทิตี: กล้อง.generic_stream # เปลี่ยนเป็นเอนทิตีกล้องของคุณ
หรือ
ประเภท: 'กำหนดเอง: webrtc-cam' สตรีม: - url: go2rtc_stream_hdname: HD # ชื่อเป็นตัวเลือกโหมด: โหมด webrtc # เป็นตัวเลือกสื่อ: วิดีโอ # สื่อเป็นตัวเลือก - URL: go2rtc_stream_sdname: SDmode: msemedia: เสียง
ป.ล. คุณสามารถเปลี่ยนสตรีมที่ใช้งานอยู่ได้โดยคลิกที่ป้ายกำกับ mode
หรือโดยการคลิกที่ name
สตรีมที่เปิดใช้งาน ui: true
เต็ม
การตั้งค่าทั้งหมดเป็นทางเลือก! การตั้งค่าที่จำเป็นเท่านั้น - url
หรือ entity
หรือ streams
ประเภท: 'กำหนดเอง: webrtc-cam'url: 'rtsp://rtsp:[email protected]:554/av_stream/ch0'entity: camera.generic_streammode: webrtc, webrtc/tcp, mse, hls, mjpeg # เทคโนโลยีสตรีม , ตั้งค่าเริ่มต้นของสื่อทั้งหมด: วิดีโอ, เสียง # เลือกเฉพาะวิดีโอหรือแทร็กเสียง ค่าเริ่มต้นของทั้งเซิร์ฟเวอร์: http://192.168.1.123:1984/ # ที่อยู่เซิร์ฟเวอร์ go2rtc ที่กำหนดเอง, Emptyui เริ่มต้น: true # การควบคุมวิดีโอที่กำหนดเอง, เริ่มต้น falsedigital_ptz: # ซูมดิจิตอลและเลื่อนผ่านเมาส์ / สัมผัส, ค่าเริ่มต้น: mouse_drag_pan: จริง mouse_wheel_zoom: จริง mouse_double_click_zoom: จริง touch_drag_pan: จริง touch_pinch_zoom: จริง touch_tap_drag_zoom: จริง คงอยู่: จริง # ปัจจัยการซูมและตำแหน่งวิวพอร์ตอยู่รอดโหลดหน้าใหม่ # digital_ptz: false # เพื่อปิดการใช้งานการซูมแบบดิจิทัลและ pantitle ของเมาส์ / สัมผัสทั้งหมด: กล้องสุดยอดของฉัน # โปสเตอร์ชื่อการ์ดเสริม: https://home-assistant.io/images/cast/ Splash.png # ภาพนิ่งเมื่อมีการโหลดสตรีม: true # สถานะสลับการปิดเสียงเริ่มต้น, ค่าเริ่มต้นคือ false (เปิดเสียง) จุดตัด: 0.75 # หยุดสตรีมอัตโนมัติเมื่อมีองค์ประกอบวิดีโอน้อยกว่า 75% อยู่ในหน้าจอ, 50% โดยค่าเริ่มต้น: true # รันสตรีมเมื่อไม่แสดง (เช่น สำหรับการโหลดวิดีโออย่างรวดเร็ว), falseshortcuts เริ่มต้น: # ทางลัดที่กำหนดเอง, ไม่มีค่าเริ่มต้น - ชื่อ: บันทึก ไอคอน: mdi:record-circle-outline บริการ: switch.toggle service_data:entity_id: switch.กล้อง_บันทึก
การควบคุมการแพน เอียง และซูม: ตัวอย่างการกำหนดค่า PTZ
หยุดชั่วคราวตามค่าเริ่มต้น
ประเภท: กำหนดเอง: webrtc-cameraposter: dahua1-snap # ชื่อสตรีมจาก go2rtc.yaml (http-snapshot) สตรีม: - url: '' # url ว่างเปล่า ดังนั้นจะแสดงเฉพาะโปสเตอร์เท่านั้น - url: dahua1 # ชื่อสตรีมจาก go2rtc.yaml (rtsp-stream)
ปัญหา อัตราส่วนภาพวิดีโอ
สไตล์: "วิดีโอ {อัตราส่วนภาพ: 16/9; พอดีวัตถุ: เติม;}"
การหมุนวิดีโอ
บนไคลเอนต์ (CPU ฟรี):
สไตล์: 'วิดีโอ {แปลง: หมุน (90deg); อัตราส่วนภาพ: 1}'
บนเซิร์ฟเวอร์ - การแปลงรหัส FFmpeg (ต้นทุน CPU สูง)
ซ่อนป้ายกำกับโหมด
สไตล์: '.mode {จอแสดงผล: ไม่มี}'
ซ่อนปุ่มเต็มหน้าจอ
สไตล์: '.fullscreen {จอแสดงผล: ไม่มี}'
ปุ่มซ่อนภาพหน้าจอ
สไตล์: '.ภาพหน้าจอ {แสดง: ไม่มี}'
ซ่อนปุ่ม PIP
สไตล์: '.pictureinpicture {แสดง: ไม่มี}'
ตำแหน่งทางลัด
สไตล์: ".shortcuts {left: unset; top: 25px; right: 5px; display: flex; flex-direction: column}"
ตำแหน่ง PTZ
สไตล์: ".ptz {ขวา: ไม่ได้ตั้งค่า; ซ้าย: 10px}"
ตำแหน่งป้ายกำกับโหมด
สไตล์: '.header {ด้านล่าง: 6px} .mode {ตำแหน่ง: สัมบูรณ์; ด้านล่าง: 0px}'
ตำแหน่งบรรทัดส่วนหัว
สไตล์: '.header {ด้านบน: ไม่ได้ตั้งค่า; ด้านล่าง: 6px}'
ใหม่ในเวอร์ชัน 3.6.0
shortcuts
ลัดตัวเลือกการ์ด style
และ ptz
รองรับเทมเพลต JavaScript
ใน shortcuts
และ style
คุณสามารถใช้เทมเพลตที่เกี่ยวข้องกับ states
ใน ptz
คุณสามารถใช้เทมเพลตที่เกี่ยวข้องกับ streamName
/ streamID
(มีประโยชน์สำหรับการ์ดที่มีหลายเทมเพลต)
ทางลัด: - ชื่อ: Barn Lighticon: ${ state['light.yeelight_lamp'].state === 'on' ? 'mdi:outdoor-lamp':'mdi:lamp' }บริการ: light.toggleservice_data: enter_id: light.yeelight_lamp
ptz: บริการ: notify.persistent_notification data_left:message: ซ้ายสำหรับ ${ this.streamName } คลิกแล้ว data_right:message: คลิก Rigth สำหรับ ${ this.streamID } แล้ว
ใหม่ในเวอร์ชัน 3.4.0
สำหรับแหล่งที่มาที่รองรับใน go2rtc เท่านั้น
สำหรับ Hass ที่มีการเข้าถึง HTTPS เท่านั้น ข้อจำกัดนี้มาจากเบราว์เซอร์
สำหรับโหมด WebRTC เท่านั้น
HTTPS ก็มีความสำคัญสำหรับ Hass Mobile App เช่นกัน!
คุณควรเพิ่ม microphone
ลงในพารามิเตอร์ media
คุณสามารถใช้สองสตรีม: สตรีมหนึ่งมีไมโครโฟน สตรีมที่สองไม่มี:
ประเภท: 'กำหนดเอง: webrtc-cam' สตรีม: - URL: go2rtc_stream - url: go2rtc_streammode: webrtcmedia: วิดีโอ, เสียง, ไมโครโฟน
ป.ล. สำหรับ Hass Mobile App ตรวจสอบให้แน่ใจว่าคุณสามารถใช้ไมโครโฟนที่มี Assist ในตัวได้
อ่านเพิ่มเติม
ส่วนประกอบรองรับการสตรีมไปยังอุปกรณ์ Google Cast Chromecast (รวมถึง Android TV และ Google Smart Screen) อ่านเพิ่มเติมในวิกิ
นอกจากนี้ยังรองรับส่วนประกอบที่สร้างลิงก์ชั่วคราวหรือถาวรไปยังสตรีมโดยไม่ต้องแชร์การเข้าถึงให้กับ Home Assistant ของคุณ อ่านเพิ่มเติมในวิกิ
ใหม่ในเวอร์ชัน 3.1.0
รองรับ go2rtc เล่นไฟล์เสียง (เช่น เพลงหรือ TTS) และสตรีมสด (เช่น วิทยุ) บนกล้องที่รองรับเสียงสองทาง คุณต้อง:
ตรวจสอบว่ากล้องของคุณรองรับแหล่งกำเนิดเสียงสองทางหรือไม่
ตั้งค่าสตรีมกล้องในการกำหนดค่า go2rtc.yaml
ตรวจสอบตัวแปลงสัญญาณเสียงที่กล้องของคุณรองรับ
สร้าง Virtual Media Players สำหรับกล้องของคุณใน configuration.yaml
:
สื่อ_ผู้เล่น: - แพลตฟอร์ม: webrtcname: Dahua Camerastream: dahuaaudio: pcmu/48000 - แพลตฟอร์ม: webrtcname: Tapo Camerastream: tapoaudio: pcma
ถาม การเข้าถึงจากภายนอกด้วย WebRTC ใช้งานไม่ได้
A. อ่านเพิ่มเติมและอย่าสร้างประเด็นใหม่
ถาม เสียงไม่ทำงาน
A. ตรวจสอบตัวแปลงสัญญาณเสียงที่กล้องของคุณส่งออก และใช้เทคโนโลยีอะไรในการดูวิดีโอ เทคโนโลยีที่แตกต่างกันรองรับตัวแปลงสัญญาณที่แตกต่างกัน
เพิ่มใน configuration.yaml
ของคุณ:
คนตัดไม้: ค่าเริ่มต้น: คำเตือน บันทึก: custom_components.webrtc: ดีบัก
ยี่ห้อ | โมเดล | ความคิดเห็น |
---|---|---|
แอคทีฟแคม | เอซี-D2121IR3 | |
แอคทีฟแคม | เอซี-D7121IR1W | รองรับเสียง |
หุ่นยนต์ | ไอพี เว็บแคม โปร | รองรับเสียง rtsp://192.168.1.123:8080/h264_ulaw.sdp |
ซี-ทรอนิกส์ | CTIPC-690C | รองรับเสียง main : rtsp://username:[email protected]:554/11 หรือ onvif://username:[email protected]:8080?subtype=MainStreamProfileToken |
ต้าฮัว | DH-IPC-HDPW1431FP-AS-0280B, VTO2211G-P | รองรับเสียง |
ต้าฮัว | VTO2202F-P-S2 | อ่านเพิ่มเติม |
เอซวิซ | ซี3เอส | rtsp://admin:[email protected]:554/h264/ch01/main/av_stream และ /h264/ch01/sub/av_stream |
เอซวิซ | C3W, C3WN, C6CN, C6T | rtsp://admin:[email protected]:554/h264_stream |
เอซวิซ | C8C | rtsp://admin:[email protected]:554/channel80 |
ฟอสแคม | ค1 | rtsp://user:[email protected]:554/videoMain |
ฟอสแคม | C2M, R2M | rtsp://user:[email protected]:88/videoMain |
จี.วี.ซีเคียวริตี้ | GW5088IP | rtsp://192.168.1.123:554/mpeg4cif?username=admin&password=123456 |
จี.วี.ซีเคียวริตี้ | GW5078IP | rtsp://192.168.1.123:554/stream0?username=admin&password=123456 |
จี.วี.ซีเคียวริตี้ | GW5071IP | ยังใช้งานไม่ได้ บางอย่างคล้ายกับ rtsp://admin:[email protected]:554/live/main หรือ rtsp://192.168.0.207:554/live/main?username=admin&password=123456 |
ฮิควิชั่น | DS-2CD2T47G1-L, DS-2CD1321-I, DS-2CD2143G0-IS | rtsp://user:[email protected]:554/ISAPI/Streaming/Channels/102 |
ฮิควิชั่น | IPC-HDW3849H-AS-PV, IPC-EW5531-AS | ต่อสายเข้ากับ nvr DHI-NVR2108HS-8P-I โดยใช้ส่วนประกอบที่กำหนดเอง |
อิมู | IPC-F42-B2E3 (กระสุน 2C 4MP) | rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0 |
คิวแนป | QUSBCam2 | rtsp://username:[email protected]:554/channel1 เอกสาร |
ราสเบอร์รี่ปี่ | พิแคม | อ่านเพิ่มเติม |
ลิงก์ใหม่ | RLC-410, RLC-410W, RLC-510WA, E1 Pro, ซูม E1, 4505MP | รองรับเสียง RLC-510WA, รองรับเสียง E1 Zoom, PTZ และซูม |
ลิงก์ใหม่ | E1 | rtsp://admin:[email protected]:554/h264Preview_01_main |
ซอนอฟ | GK-200MP2-B | รองรับเสียงและ PTZ, rtsp://rtsp:[email protected]:554/av_stream/ch0 และ /av_stream/ch1 |
ศรีโฮม | SH035 | rtsp://192.168.xxx.xxx:8554/profile0 และ /profile1 และ /profile2 |
ท็อปวิโก้ | rtsp://192.168.1.123:8554/stream0 หรือ rtsp://192.168.1.123:554/ch0_0.264 | |
ทีพี-ลิงค์ | ทาโป C100/C200/C210/C220/C310 | rtsp://user:[email protected]:554/stream1 และ /stream2 |
TVT/ซีคิวเทค | NVR-0808B2-8P | rtsp://user:[email protected]:554/chID=1&streamType=main และ chID=2&streamType=main |
TVT/ซีคิวเทค | IPC5-DF28SN | rtsp://user:[email protected]:554/profile1 และ /profile2 |
ยูนิฟาย | โดม G4, กริ่งประตู G4, G3 กระสุน, G3 Flex | คัดลอกลิงก์ rtsps จากการตั้งค่าของกล้องใน Unifi Protect แต่เปลี่ยนลิงก์เป็น rstp:// (ค่าเริ่มต้นเป็น rstps://) เปลี่ยนพอร์ตเป็น 7447 และลบพารามิเตอร์การสืบค้นใด ๆ |
ไวซ์ | แคม v2/v3, แคมแพน v1/v2 | รองรับเสียง |
เสี่ยวมี่ | ต้าฟาง | ด้วยการแฮ็ก rtsp://192.168.1.123:8554/unicast วิดีโอ: H264 ขนาด: 1920x1080 บิตเรต: 1000 รูปแบบ: VBR อัตราเฟรม: 10 เสียง: PCMU อัตราเป็น: 8000 อัตราออก: 44100 |
เยล | SV-4CFDVR-2 | rtsp://admin:[email protected]/cam/realmonitor?channel=1&subtype=0 |
ยี่ | ชิปเซ็ต Hi3518e | ด้วยการแฮ็ก |
ยี่ | ชิปเซ็ต MStar Infinity | ด้วยการแฮ็ก |