使用PHP手搓rtmp直播服务器
【摘要】 一个基于纯 PHP 开发的 RTMP 直播服务器。支持 RTMP 推流与拉流、FLV 格式拉流(HTTP/WS)、HLS 格式拉流,以及简单的前端播放页面。
rtmp_server
一个基于纯 PHP 开发的 RTMP 直播服务器。支持 RTMP 推流与拉流、FLV 格式拉流(HTTP/WS)、HLS 格式拉流,以及简单的前端播放页面。
功能特点
- 🎥 支持 RTMP 推流与拉流
- 📡 支持 HTTP-FLV 和 WebSocket-FLV 拉流
- 🧩 支持 HLS 输出(M3U8 + TS 切片)
- 🖥️ 内置简易网页播放器(FLV / HLS)
- 🐳 提供 Docker 开发环境(含 FFmpeg 和 PHP 扩展)
- ⚡ 纯 PHP 实现,无需 Nginx 或其他流媒体服务器
环境要求
- PHP >= 8.1(CLI 模式)
- 需要开启
sockets等扩展
快速开始
安装
composer create-project xiaosongshu/rtmp_server
配置与启动
方式一:使用 phpstudy 集成环境(推荐新手)
- 下载并安装
- 将 PHP 版本切换至 8.1
- 在 phpstudy 的软件管理中安装必要的扩展(根据运行报错提示)
- 进入项目根目录,启动服务
方式二:使用 Docker(推荐,已包含所有依赖)
项目根目录下执行:
docker-compose up -d
自带的 Docker 环境已经集成了 PHP 8.1、相关扩展以及 FFmpeg(用于推流或者检测数据包或者转码)。
启动服务
php server.php
关闭服务
- Windows:
Ctrl + C - Linux / macOS:
kill -9 <进程ID>(可通过ps aux | grep server.php查找 PID)
端口说明
默认使用以下三个端口(可在入口文件中修改):
- 1935:RTMP 服务
- 8501:FLV 服务(HTTP & WebSocket)
- 80:Web 服务(HLS + 静态页面)
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)