学习ffmpeg流媒体,需要搭建流媒体服务器,本文用ZLMediaKit搭建rtsp服务器
环境:Ubuntu 16.04.7
ZLMediaKit
- 基于C++11开发,避免使用裸指针,代码稳定可靠,性能优越。
- 支持多种协议(RTSP/RTMP/HLS/HTTP-FLV/WebSocket-FLV/GB28181/HTTP-TS/WebSocket-TS/HTTP-fMP4/WebSocket-fMP4/MP4/WebRTC),支持协议互转。
- 使用多路复用/多线程/异步网络IO模式开发,并发性能优越,支持海量客户端连接。
- 代码经过长期大量的稳定性、性能测试,已经在线上商用验证已久。
- 支持linux、macos、ios、android、windows全平台。
- 支持画面秒开、极低延时(500毫秒内,最低可达100毫秒)。
- 提供完善的标准C API,可以作SDK用,或供其他语言调用。
- 提供完整的MediaServer服务器,可以免开发直接部署为商用服务器。
- 提供完善的restful api以及web hook,支持丰富的业务逻辑。
- 打通了视频监控协议栈与直播协议栈,对RTSP/RTMP支持都很完善。
- 全面支持H265/H264/AAC/G711/OPUS。
- 功能完善,支持集群、按需转协议、按需推拉流、先播后推、断连续推等功能。
- 极致性能,单机10W级别播放器,100Gb/s级别io带宽能力。
- 极致体验,独家特性
- 全面支持ipv6网络
1、代码下载
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit.git
2、下载组件
cd ZLMediaKit/
git submodule update --init
下载了3rdpart
3、查看gcc版本:根据官网提示,只要这里的gcc版本大于4.8就可以,因为需要支持c++11版本
gcc-v
4、cmake 编译
mkdir build
cd build
cmake ..
make
5、启动服务
cd ZLMediaKit/release/linux/Debug
./MediaServer &
有权限问题:
加sudo 启动正常如下:
ps:加sudo 是因为1024以下端口需要root权限
6、如果端口占用,可以修改配置文件
vim config.ini
7、ffmpeg测试推流
./ffmpeg -stream_loop -1 -re -i input.mp4 -c copy -rtsp_transport tcp -f rtsp rtsp://虚拟机ip:554/live/test0
windows vlc拉流
打开网络串流 rtsp://虚拟机ip:554/live/test0
8、mark
初识ZLMediaKit,感觉挺强大的,有空研究下