·華為云最近正在舉辦 828 B2B 企業(yè)節(jié),F(xiàn)lexus X 實例的促銷力度非常大,特別適合那些對算力性能有高要求的小伙伴。如果你有自建 MySQL、Redis、Nginx 等服務(wù)的需求,一定不要錯過這個機會。趕緊去看看吧!
什么是華為云 Flexus X 實例
·華為云 Flexus X 實例云服務(wù)是新一代開箱即用、體驗躍級、面向中小企業(yè)和開發(fā)者打造的高品價比云服務(wù)產(chǎn)品。
·Flexus 云服務(wù)器 X 實例是新一代面向中小企業(yè)和開發(fā)者打造的柔性算力云服務(wù)器,可智能感知業(yè)務(wù)負載,適用于電商直播、企業(yè)建站、開發(fā)測試環(huán)境、游戲服務(wù)器、音視頻服務(wù)等中低負載場景。
開始接觸華為云 Flexus X 實例
·獲取華為云 Flexus X 實例后第一步就是先去華為云上重置服務(wù)器密碼
·重置完畢后用 ssh 工具登錄華為云服務(wù)器,這里我用的是 finalshell,也可以用其他工具登陸比如 xshell 或者 Putty 都可以
·登錄上去查看硬盤大小,可以看到是 100g 硬盤,硬盤總大小是正常的
root@flexusx-ebe8:~# df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 1.2G 1.1M 1.2G 1% /run
/dev/vda1 99G 4.2G 90G 5% /
tmpfs 5.7G 0 5.7G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1.2G 4.0K 1.2G 1% /run/user/0
·然后輸入 ufw status 可以看到默認防火墻是關(guān)閉的,因此我們就不需要額外再去配置端口開放相關(guān)的配置,只要在華為云安全組配置端口開放就可以了
root@flexusx-ebe8:~# ufw status
docker 環(huán)境的安裝
·然后進行 docker 容器的安裝,安裝最新版本的 docker
·這里因為 docker 現(xiàn)在已經(jīng)無法直接通過網(wǎng)絡(luò)安裝,所以我們通過離線安裝的方式安裝 docker 環(huán)境
·從官網(wǎng)下載離線包
https://download.docker.com/linux/ubuntu/dists/jammy/pool/stable/amd64/
·如圖所示,把離線包傳到服務(wù)器上,進行安裝
dpkg -i *.deb
·查看安裝的 docker 版本
root@flexusx-ebe8:/home/docker# docker -v
Docker version 27.1.2, build d01f264
·至此 docker 容器環(huán)境安裝完畢
srs 相關(guān)
什么是 srs
·SRS 的全稱為 Simple Realtime Server,是一個開源的(MIT 協(xié)議)簡單高效的實時視頻服務(wù)器,支持 RTMP、WebRTC、HLS、HTTP-FLV、SRT、MPEG-DASH 和 GB28181 等協(xié)議。 SRS 媒體服務(wù)器和 FFmpeg、OBS、VLC、 WebRTC 等客戶端配合使用,提供流的接收和分發(fā)的能力,是一個典型的發(fā)布 (推流)和訂閱(播放)服務(wù)器模型。
開始安裝 srs
·先配置 CANDIDATE="127.0.0.1",這里配置為外網(wǎng) ip,也就是華為云提供的彈性公網(wǎng) ip
·然后用 docker 啟動 srs
·使用的版本為 srs6 的 release 版本
docker run -it -d -p 1935:1935 -p 1985:1985 -p 8080:8080 -p 1990:1990 -p 8088:8088 --restart=always --env CANDIDATE=$CANDIDATE -p 8000:8000/udp ossrs/srs:6 ./objs/srs -c conf/https.docker.conf
·輸入 docker ps 查看容器運行狀態(tài)
修改配置文件以支持 webrtc 與 rtmp
·但是這個版本啟動后只支持 webrtc 但還不能與 rtmp 互相轉(zhuǎn)換,這里我們就需要修改一下配置文件,讓它也支持與 rtmp 相互轉(zhuǎn)換
·輸入 docker ps 獲取容器 id
·然后輸入 docker exec -it 30d26105d002 /bin/bash 進入容器,這里的容器 id 換成你剛才獲取的 id
root@30d26105d002:/usr/local/srs# ls
conf etc objs usr
root@30d26105d002:/usr/local/srs#
·進入容器后可以看到,默認的文件夾在/usr/local/srs 中,我們進入 conf 文件夾 cd conf
·可以看到有很多配置文件,里面也有我們剛才 docker 容器啟動時指定的配置文件 https.docker.conf
·然后我們輸入 exit,退出容器,mkdir -p /usr/local/srs/conf 創(chuàng)建目錄,然后把容器內(nèi)的配置文件 copy 出來,然后進入剛才創(chuàng)建好的文件夾 cd /usr/local/srs/conf然后執(zhí)行 docker cp 30d26105d002:/usr/local/srs/conf/https.docker.conf https.docker.conf,可以在本地獲取我們需要的 https.docker.conf 文件,然后開始修改
vhost __defaultVhost__ {
hls {
enabled on;
}
http_remux {
enabled on;
mount [vhost]/[app]/[stream].flv;
}
rtc {
enabled on;
# @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#rtmp-to-rtc
rtmp_to_rtc on;
# @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#rtc-to-rtmp
rtc_to_rtmp on;
}
}
·把兩個 off 修改為 on 即可
·配置文件修改好后,我們還需要把文件放進去,這里我們把改好的配置文件映射到容器內(nèi)部,來達到我們想要的效果
重新部署 srs 容器并啟動
·之前部署的 srs 服務(wù)還啟動著,我們需要先停止服務(wù),重新起一個新的,docker stop 30d26105d002,然后 docker rm 30d26105d002,停止容器,然后刪除容器
·重新運行指令,并附上掛載的命令
docker run -it -d -v /usr/local/srs/conf/https.docker.conf:/usr/local/srs/conf/https.docker.conf -p 1935:1935 -p 1985:1985 -p 8080:8080 -p 1990:1990 -p 8088:8088 --restart=always --env CANDIDATE=$CANDIDATE -p 8000:8000/udp ossrs/srs:6 ./objs/srs -c conf/https.docker.conf
·查看 docker ps 可以看到容器正常運行著,這就代表著 srs 服務(wù)已經(jīng)部署完畢了
配置 Flexus 云服務(wù)器 X 實例安全組
·經(jīng)過上面部署 srs 服務(wù),這時候服務(wù)是已經(jīng)部署完畢了,但是我們還沒法通過外網(wǎng)進行訪問,還需要對 Flexus 云服務(wù)器 X 安全組的配置進行修改
·進入安全組的配置頁面
·新建安全組
·這里我們開放 1985,1935,8080,8088,1990,8000,這些端口,其中 8000 一定是自定義 udp 協(xié)議,其他都是 tcp,這點非常重要
·然后加入新建的安全組
·這樣我們的實例的端口也就開放成功了
srs 功能測試
srs 服務(wù)器監(jiān)控
·部署完畢 srs 后,開始對 srs 進行功能測試
·輸入網(wǎng)址進行訪問,https://ip:8088
·點擊 SRS 控制臺,連接 srs
·服務(wù)器 ip 填彈性公網(wǎng) ip,然后端口填 1990,點擊連接到 SRS,就可以看到服務(wù)器的運行狀態(tài)與 srs 的運行狀態(tài),以及負載網(wǎng)速 cpu 磁盤等各種信息
webrtc 推拉流測試
·輸入網(wǎng)址https://ossrs.net/srs.release/releases/app.html,選擇實用工具中的 webrtc 播放器
·推流配置,把端口改為 1990,這是 https 的端口,然后再把地址復(fù)制到播流那邊,就可以看到攝像頭的畫面了
·推流上去
·拉流直播
·這里我測了蘋果手機去商店下載谷歌瀏覽器后,谷歌瀏覽器也可是可以播放的
rtmp 推流
·rtmp 推流,我一般是使用 ffmpeg,指令為 ffmpeg -re -i test.mp4 -vcodec h264 -c copy -f flv rtmp://彈性公網(wǎng) ip:1935/live/live200,然后同樣的可以用 rtc 播放器播放,這就是 rtmp 轉(zhuǎn) webrtc 的效果
SRS 性能優(yōu)化
·對 srs 的優(yōu)化,因為 webrtc 是使用的 udp 緩存,因此 linux 的 udp 緩存參數(shù)得增大,不然會因為本地 udp 緩存不夠大,連本地上傳的緩存都不夠,導(dǎo)致掉幀。
# vi /etc/sysctl.conf
net.core.rmem_max=16777216
net.core.rmem_default=16777216
net.core.wmem_max=16777216
net.core.wmem_default=16777216
歡迎大家一起加入華為云!
審核編輯 黃宇
-
Docker
+關(guān)注
關(guān)注
0文章
472瀏覽量
11865 -
華為云
+關(guān)注
關(guān)注
3文章
2566瀏覽量
17461
發(fā)布評論請先 登錄
相關(guān)推薦
評論