通過RTMP協議實現在線直播
一、什么是RTMP協議?
RTMP是Real Time Messaging Protocol(實時消息傳輸協議)的首字母縮寫。該協議基於TCP,是一個協議族,包括RTMP基本協議及RTMPT/RTMPS/RTMPE等多種變種。RTMP是一種設計用來進行實時數據通信的網絡協議,主要用來在Flash/AIR平台和支持RTMP協議的流媒體/交互服務器之間進行音視頻和數據通信。支持該協議的軟件包括Adobe Media Server/Ultrant Media Server/red5等。
RTMP又是Routing Table Maintenance Protocol(路由選擇表維護協議)的縮寫。 在 AppleTalk 協議組中,路由選擇表維護協議(RTMP,Routing Table Maintenance Protocol)是一種傳輸層協議,它在 AppleTalk 路由器中建立並維護路由選擇表。RTMP 基於路由選擇信息協議(RIP)。正如 RIP 一樣,RTMP 使用跳數作為路由計量標准。一個數據包從源 網絡發送到目標網絡,必須通過的路由器或其它中間介質節點數目的計算結果即為跳數。
二、搭建centos7 docker服務
- 卸載舊的docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
- 安裝所需依賴
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
- 設置倉庫
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
- 安裝最新版的docker-cli 和 docker-ce
sudo yum install docker-ce docker-ce-cli containerd.io
- 當然你也可以安裝你想安裝的版本
# 列出所有的版本信息
yum list docker-ce --showduplicates | sort -r
# 選擇適合的版本安裝
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
- 啟動docker
sudo systemctl start docker
- 檢測是否安裝成功
sudo docker run hello-world
三、 nginx-rtmp
- docker 拉取 nginx-rtmp
docker pull alfg/nginx-rtmp
- 啟動 rtmp
docker run -it -p 1935:1935 -p 8000:80 --rm alfg/nginx-rtmp
- 如果端口被占,則需要殺死端口或者另換端口
四、 使用obs
-
下載obs24.0的版本
-
打開如圖所示
- 添加來源
- 添加設置
- 設置
- 推流
五、前端拉流
- vlc 網絡串流 輸入地址 http://132.232.70.65/live/test.m3u8