ZLMediaKit
获取代码
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit cd ZLMediaKit git submodule update --init
安装GCC4.8
sudo yum -y install gcc sudo yum -y install gcc-c
安装cmake3.9
卸载旧版本cmake(谨慎使用!它将删除所有内容cmake的目录)
sudo apt-get autoremove cmake (慎用)
新版本的安装cmake
wget https://cmake.org/files/v3.9/cmake-3.9.2.tar.gz tar zxf cmake-3.9.2.tar.gz cd ${cmake} ./configuration make make install
如果cmake系统目录未安装的,
cp ${cmake}/bin/cmake /usr/bin/
构建项目
cd ZLMediaKit mkdir build cd build cmake .. make -j4
运行项目
${ZLMediaKit}/ZLMediaKit/release/linux/Debug/MediaServer -d &
注意事项
rtsp流拉流必须保持推流连接。一旦推流断开与服务器连接,拉流也必然断开
配置文件
${ZLMediaKit}/conf/conf.ini
本文福利, C 音视频学习资料包,技术视频,内容包括(音视频开发,面试题,FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,srs)↓↓↓↓↓↓见下面↓↓文章底部↓↓
#!!!!本配置文件为示例配置文件,旨在告知读者各配置项的具体含义和作用, #!!!!该配置文件正在执行中cmake时复制到release/${操作系统类型}/${编译类型}(例如release/linux/Debug) 文件夹。 #!!!!该文件夹(release/${操作系统类型}/${编译类型})也是可执行程序生成的目标路径MediaServer在此过程中,默认加载同一目录config.ini文件作为配置文件, #!!!!如果您修改此模型配置文件(conf/config.ini),并不会被MediaServer因为MediaServer默认加载过程release/${操作系统类型}/${编译类型}/config.ini。 #!!!!当然,你每次都执行cmake,文件确实会被复制到release/${操作系统类型}/${编译类型}/config.ini, #!!!!但一般建议您直接修改release/${操作系统类型}/${编译类型}/config.ini文件,修改此文件一般不起作用,除非你运行MediaServer时使用-c参数指定到本文件。 [api] #是否调试http api,启用调试后,每次都会打印http请求的内容和回复 apiDebug=1 #有些比较敏感http api需要提供访问secret,否则无权调用 如果是127.0.0.1访问,所以不能提供secret secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc #截图通过截图保存路径根目录http api(/index/api/getSnap)生成和获取 snapRoot=./www/snap/ #默认截图,在启动FFmpeg截图后但截图未生成时,可返回默认预设图片 defaultSnap=./www/logo.png [ffmpeg] #FFmpeg可执行程序绝对路径 bin=/usr/bin/ffmpeg #FFmpeg命令模板拉流再推流,一些参数可以通过模板设置再编码 cmd=%s -re -i %s -c:a aac -strict -2 -ar 44100 -ab 48k -c:v libx264 -f flv %s #FFmpeg生成截图命令,截图分辨率或质量可以通过修改配置来改变 snap=%s -i %s -y -f mjpeg -t 0.001 %s #FFmpeg日志路径,若置空则不生成FFmpeg日志 #可以是相对的(相对于本可执行程序目录)或绝对路径 log=./ffmpeg/ffmpeg.log [general] 是否使用虚拟主机 enableVhost=0 #播放器或推流器断开后会触发hook.on_flow_report事件(使用多少流量事件), #flowThreshold触发参数控制hook.on_flow_report单位在使用流量超过该阈值后触发事件阈值KB flowThreshold=1024 #播放最多等待时间,单位毫秒 #播放某个流时,如果不存在, #ZLMediaKit播放器最多可以等待maxStreamWaitMS毫秒 #如果此时此流注册成功,将立即返回播放器播放成功 #否则返回播放器找不到流量,该机制的目的是播放再推流 maxStreamWaitMS=15000 #流无人看,触发hook.on_stream_none_reader事件的最大等待时间,单位毫秒 #在配合hook.on_stream_none_reader事件时,无人观看可自动停止拉流或停止接收推流 streamNoneReaderDelayMS=20000 #拉流代理是否添加静音音频(本协议直接拉流模式无效) addMuteAudio=1 #拉流代理时,如果断流重连成功,是否删除前一次媒体流数据,如果删除,将重新开始, #如果不删除,将继续写上次的数据(录制)hls/mp4:继续在前一份文件后面写) resetWhenRePlay=1 #默认推流时是否转化为hls,hook接口(on_publish)该设置可以覆盖在中间 publishToHls=1 #是否默认推流mp4录像,hook接口(on_publish)该设置可以覆盖在中间 publishToMP4=0 #合并写缓存大小(单位毫秒),合并写服务器缓存一定数据后一次写入socket,这样可以提高性能,但是延迟会增加 #打开后会同时关闭TCP_NODELAY并开启MSG_MORE mergeWriteMS=0 #全局时间戳覆盖
开关,转协议时,对frame时间戳覆盖 #该开关对rtsp/rtmp/rtp推流、rtsp/rtmp/hls拉流代理转协议时生效 #会直接影响rtsp/rtmp/hls/mp4/flv等待协议的时间戳 #同协议不影响(例如)rtsp/rtmp推流,那么播放rtsp/rtmp不会影响时间戳) modifyStamp=0 唯一的服务器id,用于触发hook时区别是哪台服务器 mediaServerId=your_server_id #协议是否全面开闭? enable_audio=1 ######################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################## 以下是按需转协议的开关,在测试ZLMediaKit接收推流性能时,请设置以下开关1 ######################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################