关于视频直播拉流和推流问题
通过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