项目简介
本项目是基于C++开发的直播服务器系统,实现直播业务完整流程,涵盖直播流的接收、处理、转发以及不同格式的封装转换等功能。支持RTMP和HTTP协议,能处理RTMP推流,将其转换为FLV格式进行HTTP发送,还具备HLS切片功能,可满足不同场景下的直播需求。
项目的主要特性和功能
- 网络服务器与时间轮:用vector模拟时间轮管理任务,各槽用deque存储相同到时时间任务,通过智能指针管理任务生命周期,实现自动析构和回调。
- 直播业务管理
- 直播配置解析:支持domain和app配置解析,一个domain可包含多个app,便于直播业务管理与配置。
- 时间戳校正:推流中断重新推流或用户端卡顿,对时间戳校正和跳帧处理,保障用户体验流畅。
- FLV设计实现
- flvcontext:组装Http header、flv header和flv body,通过tcpconnection发送数据。
- flvPlayUser:控制发送头部请求,实现FLV播放,依请求类型创建对应playerUser并发送数据。
- Demux实现:对FLV封装的音视频数据解封装,为HLS协议的mpegts封装做准备。
- Mpegts实现:将flv解包后重新封装成MPEGTS结构,支持不同音频格式(AAC、MP3)处理和视频格式(AVCC、AnnexB)转换。
- HLS实现:生成hls切片,满足直播点播需求。
安装使用步骤
假设用户已下载本项目源码文件,可按以下步骤安装使用: 1. 环境准备:确保系统安装C++开发环境及相关依赖库。 2. 编译项目:使用合适编译工具(如g++)编译源码。 3. 启动服务器:编译成功后,启动liveserver,创建rtmpserver和httpserver进行监听。 4. 客户端连接:客户端通过RTMP或HTTP协议连接服务器,发送直播流数据。 5. 观看直播:客户端可通过支持RTMP或HTTP - FLV协议的播放器观看直播,也可用支持HLS协议的播放器进行直播点播。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】