13 Star 62 Fork 2

厦门云视听信息技术有限公司/ABLMediaServer

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
ABLMediaServer-发表版本配置.ini 16.63 KB
一键复制 编辑 原始数据 按行查看 历史
zhichao281@163.com 提交于 2024-03-28 22:59 . +新增了版本信息库
[ABLMediaServer]
#流媒体服务器ID,用于集群识别流媒体服务器
mediaServerID=ABLMediaServer_00001
#一些比较敏感的http api在访问时需要提供secret,否则无权限调用
secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc
#本机的IP地址,最好需要配置准确(如果不配置程序会自动获取一个地址代替,如果本机有多个地址可能会不准确,如果配置则使用配置的IP地址),因为调用getMediaList 获取可用的媒体源的json中,会使用到本机的IP地址来拼接rtsp、rtmp、http-flv、ws-flv、hls、http-mp4 的播放url
localipAddress=
#所有接入流,当多长时间持续无人观看时会自动断开码流接入,包括推流接入,拉流接入,国标接入, 时间单位 分钟
#【注意:当该路接入流启动了录像,不管是否有人观看都不会关闭 ,除非关闭录像功能 】
maxTimeNoOneWatch=9999999
#录像文件保存路径,如果不配置录像文件保存在应用程序所在的路径下的record子路径,如果配置路径则保存在配置的路径的record里面
#注意:如果需要录像存储,存储的硬盘千万不要分区,整个硬盘作为一个区,因为服务器没有执行两个以上的盘符操作。
#录像保存路径配置 windows平台的路径配置 比如 D:\video ,Linux 平台配置 /home/video
#录像路径使用了默认路径,就一直使用默认路径,如果使用了配置路径就一直使用配置路径。确保使用的路径的硬盘空间为最大的。
recordPath=
#图片抓拍保存路径,如果不填就在应用程序的路径作为根目录,图片文件在./picture,可以跟录像文件设置为同一个根路径,因为图片路径还会创建子路径 ../picture/app/stream ,录像文件子路径为 ../record/app/stream
picturePath=
#图片抓拍最大并发数量限制,意思说服务器最大允许多少路在同时进行抓拍,因为抓拍很消耗硬件资源,需要解码视频为YUV,再把YUV编码为JPEG图片,用户调大maxSameTimeSnap这个参数,看看服务器能否支撑的住大量并发抓拍,服务器CPU性能不同,这个参数也不同
maxSameTimeSnap=16
#输出的抓拍图片宽 ,0 就是默认的宽,因为视频分辨率不知道,不同的摄像头各个不同,就使用0来代替默认原尺寸的宽。如果用户需要指定宽的大小可以填入 1920、1280、960、720、640、352
snapOutPictureWidth=0
#输出的抓拍图片高 ,0 就是默认的高,因为视频分辨率不知道,不同的摄像头各个不同,就使用0来代替默认原尺寸的高。如果用户需要指定高的大小可以填入 1080、 720、640、576、480、288
snapOutPictureHeight=0
#抓拍对象是否销毁,如果针对200路以内的媒体流进行长期进行高频率的抓拍,可以设置0,就是每次抓拍完毕后不立即销毁对象,下一次再重新使用抓拍对象。比如针对200以内路视频每隔2秒进行抓拍图片,可以设置为0,这样提供抓拍速度。
snapObjectDestroy=1
#抓拍对象最大保存时长(单位:秒),当 snapObjectDestroy 等于 0 时,该参数有效,意思说当抓拍对象复用时,最大有效时间内复用抓拍对象才有效,这样做是防止内存泄漏,当超出最长复用时长,对象会自动销毁,再抓拍时会重新创建抓拍对象
snapObjectDuration=120
#抓拍图片回复类型 1 回复抓拍产生图片的链接地址 比如:http://192.168.1.218:7088/Media/Camera_00001/2022032008501201.jpg 2 返回抓拍图片的内容即返回抓拍的jpg完整图片内容,http响应返回类型为 Content-Type: image/jpeg
captureReplayType=1
#当 接入视频源注销时或者流媒体服务器安全退出时 删除该路视频源抓拍所产生的所有图片 设置为 0 不删除,1 删除
deleteSnapPicture=0
#每一个媒体源允许最大保留的抓拍图片数量,如果超过就会覆盖最老的图片,覆盖方式和录像文件一致,用户根据自己需要估计每天、每周、每月能产生多少张抓拍图片,设置好最大抓拍数量,也就是设置了图片最大保存时长
pictureMaxCount=30
#rtsp、rtmp 推流接入是否开启mp4录像 0 未开启 , 1 开启 。【注意:代理拉流接入、国标gb28181接入如果开启录像则需指定参数 enable_mp4 等于 1 】
pushEnable_mp4=0
#mp4、fmp4、ts 录制切片时间,单位秒,最大不宜超过600秒(10分钟)【如果采用 ts 切片时长不宜超过180秒】,因为时间越长产生的mp4文件就越大,在点播时打开录像文件的速度会变慢
fileSecond=120
#录像文件采用的文件格式 1 为 fmp4格式 ,2 为 mp4 格式 , 3 ts 格式【如果采用 ts 切片,在录像回放时支持 hls 回放,视频画面可以秒开 】
videoFileFormat=3
#录像文件最大保留时长,单位小时
fileKeepMaxTime=3
#查询录像列表是否获取录像文件真正时长,如果开启获取录像真正时长会造成录像查找比较慢,如果不开启就会返回录像切片时间fileSecond 的值,【0 默认不开启】 ,【 1 开启 获取真正录像时长】
enable_GetFileDuration=0
#http方式录像下载速度设置 设置的值越大,下载的速度就越快 ,用户根据需要调整 ,范围 1 ~ 10
httpDownloadSpeed=6
#MP4点播 (rtsp、rtmp、http-flv、ws-flv、hls )是否循环播放文件
fileRepeat=0
#H265视频转码部分,H265ConvertH264_enable 等于 0 未开启转码 ,H265ConvertH264_enable 等于 1 开启转码 ,这个参数是全局范围,只要设置为 1,所有接入的H265视频都会转码为H264,如果转码部分的H265视频需要把 H265ConvertH264_enable 参数 必须设置为 0
#即使 H265ConvertH264_enable 设置为 0 ,但是在代理拉流接入、国标接入 当指定宽 convertOutWidth 、高 convertOutHeight 参数的值时 就会转码该路的H265视频,也会覆盖配置文件中默认的视频转码 宽、高 ,以代理拉流、国标接入的宽、高为准
H265ConvertH264_enable=0
#H265转码类型 0 CPU ,1 英伟达的GUP 【注意:要电脑确定安装有英伟达显卡并且安装好驱动情况下才能开启,否则也会切换为cpu 】 ,2 AMD 的 GPU (尚未支持) 【注意:要电脑确定安装有AMD显卡并且安装好驱动情况下才能开启,否则也会切换为cpu 】
H265DecodeCpuGpuType=0
#H264转码类型 H264DecodeEncode_enable 等于 1开始转码功能 ,当输入为H264,若关闭此功能,则缩放、水印功能会失效
H264DecodeEncode_enable=0
#支持最大的转码路数,由于防止服务器被转码功能过度使用,设置一个最大转码路数,超过这个路数则265的视频不再转码,由于电脑CPU、GPU不太相同,这个最大转码路数也会不同,实际商用时需要用户实测之后再修改这个参数值,可能会变大,也可能会变小
convertMaxObject=26
#水印过滤器 FilterVideo_enable 等于 1开启水印功能 为0时FilterVideo_text字段失效 【注意:水印需要重新编解码,水印功能需保证H265ConvertH264_enable 为 1、H264DecodeEncode_enable 为 1转码开启】
filterVideo_enable=0
#水印文字 为空视为不开启水印 长度不超过64
filterVideo_text=ABL水印测试123
#水印字体大小 8、9、12、15、18、20、22、36、48、60
FilterFontSize=30
#水印字体颜色 green ,red , blue , yellow ,black , white
FilterFontColor=red
#水印字体输出起始x坐标
FilterFontLeft=5
#水印字体输出起始y坐标
FilterFontTop=5
#水印字体文字透明度 0.1、0.2、0.3 ~ 0.9
FilterFontAlpha=0.6
#转码输出宽,在H265转码为H264时,指定输出的宽 ,比如 1280、800、720、352、
convertOutWidth=960
#转码输出高,在H265转码为H264时,指定输出的宽 ,比如 720、480、480、288、
convertOutHeight=640
#输出转码视频的码流 ,单位 K/bps ,可以填写 512 、768 、1024 、2048、3072、4096 ,但是由于转码输出的分辨率不高,不需要填写 太大的码率 建议 1024 左右即可
convertOutBitrate=1658
#事件通知部分,当 设置 1 时,开启事件通知,设置 0 时关闭事件通知 ,通知服务器的地址,端口号一定要配置准确比如:IP:192.168.1.158 端口 18080
hook_enable=0
#某一路码流持续多少秒无人观看就会发送 无人观看通知消息 ,单位秒
noneReaderDuration=15
#某一路 i帧 到达通知次数总数,当超过这数量时不再通知,如果想一直通知可以把30修改为一个很大的数量,比如 999999999999 ,该 参数和 事件 on_stream_iframe_arrive 是有关联的
iframeArriveNoticCount=30
#服务器启动后会发送通知消息,告知服务器上线
on_server_started=http://192.168.1.128:18080/index/hook/on_server_started
#服务器正在运行会发送保活事件,告知服务器正在正常运行,相当于服务器心跳,20秒发送一次心跳信息,告知服务器处于正常运行 ,如果不需要该通知,则把 http://192.168.1.128:18080/index/hook/on_server_keepalive 删除
on_server_keepalive=http://192.168.1.128:18080/index/hook/on_server_keepalive
#流媒体服务器发送心跳时长间隔,单位秒
keepaliveDuration=20
#播放某一路视频时,会发送事件通知,如果不需要 则删除 http://192.168.1.128:18080/index/hook/on_play
on_play=http://192.168.1.128:18080/index/hook/on_play
#当服务器接入某一路码流时,会发送事件通知 ,如果不需要则删除 http://192.168.1.128:18080/index/hook/on_publish
on_publish=http://192.168.1.128:18080/index/hook/on_publish
#当某一路的码流达到时会通知一次,注意:如果不需要通知该事件,就把 http://192.168.1.128:18080/index/hook/on_stream_arrive 删除掉
on_stream_arrive=http://192.168.1.128:18080/index/hook/on_stream_arrive
#当某一路 i帧 达到到时会通知,注意:如果不需要通知该事件,就把 http://192.168.1.128:18080/index/hook/on_stream_iframe_arrive 删除掉
on_stream_iframe_arrive=
#在代理拉流接入、国标接入中,当申请成功后,但是这一路的码流没有达到时会通知一次,注意:如果不需要通知该事件,就把 http://192.168.1.128:18080/index/hook/on_stream_not_arrive 删除掉
on_stream_not_arrive=http://192.168.1.128:18080/index/hook/on_stream_not_arrive
#当某一路流无人观看时,会触发该通知事件,接收端收到后可以进行断流操作,比如关闭国标发流,断开代理拉流,断开推流等等操作 ,注意:不需要该事件 把 http://192.168.1.128:18080/index/hook/on_stream_none_reader 删除掉
on_stream_none_reader=http://192.168.1.128:18080/index/hook/on_stream_none_reader
#当某一路码流断开时会通知一次 ,注意:不需要该事件,把 http://192.168.1.128:18080/index/hook/on_stream_disconnect 删除
on_stream_disconnect=http://192.168.1.128:18080/index/hook/on_stream_disconnect
#播放时,找不到播放的码流,通过配合on_stream_none_reader事件可以完成按需拉流 注意:如果不需要该事件,把 http://192.168.1.128:18080/index/hook/on_stream_not_found 删除
on_stream_not_found=http://192.168.1.128:18080/index/hook/on_stream_not_found
#录制完毕一段mp4文件通知 注意:如果不需要通知该事件,就把 http://192.168.1.128:18080/index/hook/on_record_mp4 删除掉
on_record_mp4=http://192.168.1.128:18080/index/hook/on_record_mp4
#当录像文件被覆盖时,会发送被覆盖的录像文件名字,可以理解为被通知的删除录像文件名字,如果不需要通知该事件,就把 http://192.168.1.128:18080/index/hook/on_delete_record_mp4 删除掉
on_delete_record_mp4=http://192.168.1.128:18080/index/hook/on_delete_record_mp4
#录像进度:当前录像文件已经录制了多少秒,总录像时长已经到多少秒:如果不需要通知该事件,就把 http://192.168.1.128:18080/index/hook/on_record_progress删除掉
on_record_progress=http://192.168.1.128:18080/index/hook/on_record_progress
#录制 hls ts 切片完成事件通知(当TS文件切片至硬盘时才通知,即 hlsCutType 等于 1) 注意:如果不需要通知该事件,就把 http://192.168.1.128:18080/index/hook/on_record_ts 删除掉
on_record_ts=http://192.168.1.128:18080/index/hook/on_record_ts
#http操作、请求端口(tcp类型)
httpServerPort=7088
#http请求操作强制设置为短连接, 1 为强制为短连接请求, 0 为默认的连接类型
httqRequstClose=0
#rtsp 运行端口 rtsp推流、rtsp拉流都是使用该端口 (tcp类型)
rtspPort=554
#rtmp 运行端口 rtmp推流、rtmp拉流都是使用该端口(tcp类型)
rtmpPort=1935
#http-mp4 运行端口,http-mp4 拉流时采用该端口 (tcp类型)
httpMp4Port=5088
#ws-flv 运行端口,ws-flv 拉流时采用该端口 (tcp类型)
wsFlvPort=6088
#http-flv 运行端口,http-flv 拉流时采用该端口 (tcp类型)
httpFlvPort=8088
#webrtc播放视频端口(tcp类型)
webrtcPort=8192
#websocket协议以私有格式接入pcm数据
WsRecvPcmPort=9298
#国标单端口接收 (udp类型)
ps_tsRecvPort=10000
#-----hls相关配置-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#是否启用hls切片 ,即9088 端口服务是否开启 【 1 开启HLS 切片 , 0 关闭HLS 切片 】,如果 hls_enable 等于 0 ,那么 hlsPort 、hlsCutType 、h265CutType 这三个参数失效
hls_enable=0
#hls 运行端口,播放hls 媒体流时使用该端口(tcp类型)
hlsPort=9088
#hls切片时间长,单位:秒 (1 ~ 10 秒)
hlsCutTime=1
#当切片到硬盘时,最大保留ts文件个数
maxTsFileCount=10
#HLS切片方式 【hlsCutType 等于 1 设置为切片文件到硬盘 ,如果服务器内存比较小,可以切片文件保存到硬盘】【hlsCutType 等于 2 设置为切片文件保存到内存中 ,如果内存很大,比如 64G、128G ,推荐切片文件保存到内存】
hlsCutType=2
#当切片到硬盘时,可以设置ts文件保存的路径,如果需要hls切片的视频路数较多,建议切片到内存硬盘上,这样HLS切片时最大程度不影响服务器的性能, 当 wwwPath 不填写,切片路径就在 当前服务所在路径的 www 子路径里
#sudo mkdir /mnt/ramdisk 创建内存硬盘的路径 ,wwwPath 的值可以填写 /mnt/ramdisk
#sudo mount -t tmpfs tmpfs /mnt/ramdisk -o size=8G,defaults,noatime,mode=777 创建内存硬盘
wwwPath=
#H265视频切片方式 【1 切片为TS 文件,2 切片为mp4 文件 】
h265CutType=2
#-----hls相关配置-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#是否开启音频,开启音频时,流媒体输出才有音频,否则过滤掉音频数据 enable_audio 等于 1 时开启,enable_audio 等于 0 时,关闭声音
enable_audio=1
#http-flv、ws-flv播放时,当源流没有音频时候是否开启增加静音,如果服务器在linux平台运行建议开启增加静音,windows平台建议关闭,当 enable_audio = 0 时 flvPlayAddMute 设置参数失效 【1 增加静音 ,0 不增加静音】
flvPlayAddMute=1
#在流媒体输出音频时,如果源流音频是g711A、G711U,该参数决定是否转换为AAC,如果转换为AAC ,在浏览器播放声音就正常了,0 不转换,1 转换为AAC ,转换后格式 1 通道 ,8000 采样频率
G711ConvertAAC=0
#iocontent 数量 Cpu 有几个核心,就可以填写几个,使用默认16也可以,如果cpu是32、40、64 核心,就相应填写 32、40、64
IOContentNumber=16
#每个iocontent上创建线程数量
ThreadCountOfIOContent=8
#网络数据接收线程数量,可以根据CPU核数量 x 2 来配置 ,也可以使用默认参数64
RecvThreadCount=32
#网络数据发送线程数量,可以根据CPU核数量 x 2 来配置 ,也可以使用默认参数64
SendThreadCount=64
#录像回放模块线程数量
RecordReplayThread=8
#GB28181 TCP 方式发送rtp(负载PS)码流时,包头长度选择(1: 4个字节方式,2:2个字节方式)
GB28181RtpTCPHeadType=2
#代理拉流、推流 等等网络连接断线后重连次数 720 ,每隔15秒断线重连1次,用户根据需要修改重连次数 ,如果对方并不在线不宜重连次数过多
ReConnectingCount=720
#网络断线超时检测最大时长,意思说最大时长没有网络数据达到就认为已经断线 ,进行销毁处理
MaxDiconnectTimeoutSecond=40
#强制发送I帧,当有许多摄像头的gop设置为50,或者需要点播视频时快速的出画面,可以开启强制发送i帧。
ForceSendingIFrame=1
#国标打包、解包库的选择, 1 使用自研库国标打包解包库,2 使用北京老陈国标打包解包库
gb28181LibraryUse=1
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/yunshiting/ABLMediaServer.git
git@gitee.com:yunshiting/ABLMediaServer.git
yunshiting
ABLMediaServer
ABLMediaServer
master

搜索帮助