使用PHP手搓rtmp直播服务器

举报
yd_289128889 发表于 2026/05/27 10:29:16 2026/05/27
【摘要】 一个基于纯 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 集成环境(推荐新手)

  1. 下载并安装
  2. 将 PHP 版本切换至 8.1
  3. 在 phpstudy 的软件管理中安装必要的扩展(根据运行报错提示)
  4. 进入项目根目录,启动服务

方式二:使用 Docker(推荐,已包含所有依赖)

项目根目录下执行:

docker-compose up -d

自带的 Docker 环境已经集成了 PHP 8.1、相关扩展以及 FFmpeg(用于推流或者检测数据包或者转码)。

启动服务

php server.php

关闭服务

  • WindowsCtrl + C
  • Linux / macOSkill -9 <进程ID>(可通过 ps aux | grep server.php 查找 PID)

端口说明

默认使用以下三个端口(可在入口文件中修改):

  • 1935:RTMP 服务
  • 8501:FLV 服务(HTTP & WebSocket)
  • 80:Web 服务(HLS + 静态页面)
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。