关于视频直播拉流和推流问题

通过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的版本

  • 打开如图所示

  • 添加来源

  • 添加设置

  • 设置

  • 推流

五、前端拉流

posted @ 2019-10-27 17:02  巫小诗  阅读(3335)  评论(0编辑  收藏  举报