关于视频直播拉流和推流问题
通过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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端