Go 接收 RTSP 即時影像

前言

目前因為工作需求要接收RTSP即時影像,並且顯示在前端網頁

使用工具

RTSPtoWebRTC:
https://github.com/deepch/RTSPtoWebRTC

RTSP 測試地址

來源 RTSP 延遲
Nordland rtsp://77.110.228.219/axis-media/media.amp 200ms
Norwich rtsp://37.157.51.30/axis-media/media.amp 250ms
Orlando rtsp://97.68.104.34/axis-media/media.amp 350ms
PriceCenterPlaza rtsp://132.239.12.145:554/axis-media/media.amp 280ms
Vaison-La-Romaine rtsp://176.139.87.16/axis-media/media.amp
VyhladJazero rtsp://stream.strba.sk:1935/strba/VYHLAD_JAZERO.stream 160ms
Western Cape rtsp://196.21.92.82/axis-media/media.amp 450ms
Zeeland rtsp://213.34.225.97/axis-media/media.amp 270ms
Allendale rtsp://71.83.5.156/axis-media/media.amp 270ms
Bedford Hills rtsp://73.114.177.111/axis-media/media.amp 340ms

也可以參考 https://timetickme.com/stream-a-video-over-rtsp-using-live555mediaserver 本地搭建RTSP服務器進行測試

測試流程

下載程式碼

1
git clone https://github.com/deepch/RTSPtoWebRTC  

到資料夾底下

1
cd RTSPtoWebRTC/

調整config.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
{
"server": {
"http_port": ":8083",
"ice_servers": ["stun:stun.l.google.com:19302"]
},
"streams": {
"01": {
"on_demand" : false,
"disable_audio": true,
"url": "rtsp://77.110.228.219/axis-media/media.amp"
},
"02": {
"on_demand" : true,
"disable_audio": true,
"url": "rtsp://37.157.51.30/axis-media/media.amp"
},
"03": {
"on_demand" : false,
"disable_audio": true,
"url": "rtsp://97.68.104.34/axis-media/media.amp"
},
"04": {
"on_demand" : false,
"disable_audio": true,
"url": "rtsp://132.239.12.145:554/axis-media/media.amp"
},
"05": {
"on_demand" : false,
"disable_audio": true,
"url": "rtsp://176.139.87.16/axis-media/media.amp"
},
"06": {
"on_demand" : false,
"disable_audio": true,
"url": "rtsp://stream.strba.sk:1935/strba/VYHLAD_JAZERO.stream"
}
}
}

測試部屬

1
GO111MODULE=on go run *.go

透過瀏覽器打開網頁

1
http://127.0.0.1:8083

image

這邊找到測試用RTSP 就可以看到攝影機畫面

參考資料:https://timetickme.com/rtsp%E6%B5%8B%E8%AF%95%E5%9C%B0%E5%9D%80/