如何在无Flash、无NGINX的共享cPanel上用HTML5播放器播放RTMP直播
方案前提说明
HTML5 原生标准不支持直接解析 RTMP 协议流,所有无 Flash 的 RTMP 播放方案都需要先将 RTMP 流转封装为 HTML5 兼容的 HLS/HTTP-FLV/MPEG-DASH 格式。由于你使用的是共享 cPanel 环境,无法自定义安装 NGINX 扩展,因此只能选择不需要服务端二进制扩展依赖的转封装+播放方案。
适用开源类库
前端 JavaScript/jQuery 类库
- flv.js:B站开源的纯前端 FLV 解析播放库,无 Flash 依赖,只要服务端将 RTMP 流转封装为 HTTP-FLV 格式,即可在所有现代浏览器中实现 HTML5 播放,性能开销低,支持 jQuery 封装调用。
- hls.js:纯前端 HLS 解析播放库,无 Flash 依赖,服务端将 RTMP 流转封装为 HLS 分片格式后,即可在除老旧版本 Safari 外的所有浏览器中播放,Safari 原生支持 HLS 无需额外依赖。
- video.js 生态插件:成熟的开源 HTML5 播放器框架,支持 jQuery 调用,配合
videojs-flvjs、videojs-hlsjs插件即可分别适配 HTTP-FLV 和 HLS 格式流,自定义样式、扩展功能的灵活度更高。
服务端 PHP 类库(适配共享 cPanel 环境)
- PHP-FFMpeg:FFmpeg 的 PHP 封装库,无需额外安装 NGINX 组件,只要你的共享 cPanel 环境支持调用 FFmpeg 二进制(绝大多数正规共享主机都预装了 FFmpeg 或允许用户安装静态编译版本),即可实现 RTMP 流转封装为 HLS 或 HTTP-FLV 格式,仅转封装不转码的场景下 CPU 开销极低,适配共享主机的性能限制。
- PHP-RTMP-Client:纯 PHP 实现的 RTMP 客户端,无需依赖 FFmpeg,可直接拉取 RTMP 流裸数据并在 PHP 层完成转封装为 FLV 或 HLS 分片,适合 FFmpeg 被禁用的极端共享主机环境,缺点是性能低于调用 FFmpeg,仅适合低码率、低并发的直播场景。
落地注意事项
- 转封装无需修改音视频编码,只要原始 RTMP 流使用 H.264 视频编码 + AAC 音频编码,转封装过程几乎无性能损耗。
- 有并发需求的场景建议将转封装后的分片存入 cPanel 自带的内存缓存或磁盘缓存,避免重复拉流转封装消耗额外资源。
内容的提问来源于stack exchange,提问作者Arnab Dasgupta ADG
相关产品推荐
相关产品推荐

