本文原地址: http://blog.youkuaiyun.com/zhangrui_fslib_org/article/details/49953203
转载请注明出处,有疑问或错误请发邮件到xiaozhi@fslib.org
文章完善中().....
一,功能清单:
1,支持150路以上视频流(1080及以上)采集;
2,支持全天录像;
3,支持通用播放器播放储存的视频;
4,支持视频分发(不限客户端数量,瓶颈在网络);
5,支持视频文件点播;
6,支持按时间点播视频;
7,支持接收第三方程序发送的xml或json,并根据内容合成视频;
10,支持远程配置系统;
11,支持接受xml或json导入配置,方便第三方公司控制系统;
12,支持ftp浏览和下载视频;
13,支持客户端控制点播速度(可实现快速,慢速和单步播放);
14,支持分布式集群(各台主机相互独立,互不依赖,对客户端来说集群内的任何一个节点都是中心服务器,访问任何一台主机都能获取到集群内其它主机上的数据);
15,鉴于14条的特性,程序具有中心服务器热备,负载均衡等功能;
二,系统构架
1,系统环境
系统托管给http://blog.youkuaiyun.com/zhangrui_fslib_org/article/details/49824353描述的系统,由此系统实现系统的更新与维护;
2,调试与稳定性框架设计
系统调试统一使用标准的printf打印,为使系统在实际生产过程中能远程查看到程序的实时打印信息,系统采用管道设计,保证在运行过程中能随时远程查看程序的实时和历史打印信息(调用此接口的方法:out -v 1 /fs/bin/sos,表示用管道捕捉/fs/bin/sos的标准输出),用此接口无需修改程序源码;
为了解程序线程之间的关系和线程的cpu瓶颈,设计线程监控,使用此接口,必须使用此对象;
为了定位生产过程中出现的bug,设计系统遗产处理,使用此接口,必须使用此对象,并用线程监控对象配合;
图1--远程查看打印信息(运行debug);
上图可看出可查看三个程序--fsServer(进程号369),php-fpm(进程号399,php的主程序),sos(进程号588,流媒体主程序)的打印信息;
上图可看出系统现接入16路视频
图2--远程查看程序的线程信息(运行debub -m)
上图可看出有两个程序使用了监控接口--fsServer(进程号369),sos(进程号588,流媒体主程序)的打印信息;
图3--为sos的精简版线程信息(掩码0xF6)
从上图可看出流媒体的线程组成,总共11个线程,实现了线程监控的线程有11个,能清晰地看到各个线程之间的父子关系(主线程创建了ConfigManager线程和vsys,这两个线程又创建了其他子线程),并能清晰看到各个线程的实时cpu(用户态,系统态)的占有率;
图4--程序异常的记录信息
从上图可以看到程序支持在程序死机时自己自动记录当前的线程创建顺序及时间,各线程占用的cpu,异常出现在某线程的某函数(属于某源码文件)内的某行,异常出现线程的函数调用堆栈等信息,保证程序的稳定性;
3,流媒体主程序框架
(1).主线程:负责开启各个工作线程,回收并准备数据帧传给采集线程;
(2).采集线程:负责调用各个相机的相关函数,得到视频数据初始化数据帧,把数据帧传给解码线程;
(3).解码线程:解码数据帧,得到裸数据,把数据帧传给编码线程(因现有相机的输入视频帧已是h264,最后也只是需要h264帧,此设计预留);
(4).编码线程:把数据帧编码为h264数据,把数据帧传给录像线程(因现有相机的输入视频帧已是h264,故在第一阶段时此线程为空,此设计预留);
(5).录像线程:把视频按要求保存到硬盘,把数据帧传给rtsp服务线程,响应录像合成命令;
(6).rtsp服务线程:在有需求时把视频帧进行rtp封包发送,并响应视频点播请求,把视频帧传给主线程回收;
(7).配置线程:管理系统的配置,响应客户或第三方的除视频流外的各种请求(如配置获取,配置上传,视频合成请求);
三,系统具体实现
1,采集线程:现只支持h264的rtsp数据,根据vlc,potplayer数据开发,已测试海康,大华部分相机;
2,rtsp服务线程:现只支持h264流化,根据vlc和live555开发,已测试兼容vlc,potplayer;
3,录像线程:现支持把实时数据保存到mkv文件,能响应视频合成请求合成mkv视频,精度在一帧;
4,配置线程:现支持远程导入和导出配置,支持权限管理,数据自描述校验;
四,功能预览
1,配置管理(用configcore程序)
-bash-4.2# configcore -h
-h:for help.
-c:set input config data,remote host or local file,eg(default). -c 127.0.0.1:16863.
-i:import data,must after -c,could use multi times.
-o:set output config data,remote host or local file.
-t:set local output file type(0--config,1--ebml with comment,2--ebml,3--xml all,4--xml with comment,5--xml,6--json all,7-json),eg(default). -t 0.
-q:set quit after run program.
(1)xml完整方式导出配置(configcore -c 127.0.0.1 -o /fs/project/data/1.txt -t 3)
太多了,省略
(2)xml只代注释方式导出配置(configcore -c 127.0.0.1 -o /fs/project/data/1.txt -t 4)
<?xml version="1.0" encoding="UTF-8"?>
<vsys comment="视频系统,预留做定时器,最大实例数:100">
<ntpfreq comment="ntp校时间隔(s),建议60S,有效长度:0-300字节">6</ntpfreq>
<ntpserver comment="ntp服务器ip,有效长度:0-16字节">192.168.50.188</ntpserver>
<vsysChannel comment="通道,最大实例数:1000">
<uuid comment="通道标识,每个通道应唯一,有效长度:1-64字节">2</uuid>
<cameraConfig comment="相机配置">
<cameraType comment="相机类型,有效长度:1-16字节">rtsp</cameraType>
<ipv4 comment="相机IP,有效长度:1-16字节">192.168.50.252</ipv4>
<rtspPort comment="rtsp端口,有效长度:1-5字节">554</rtspPort>
<rtspURL comment="rtspURL,必须以/开头,可为空,有效长度:0-128字节">/h264/ch2/main/av_stream</rtspURL>
<rstpUsername comment="rtsp用户名,可为空,有效长度:0-128字节">admin</rstpUsername>
<rstpPasswd comment="rtsp密码,可为空,有效长度:0-128字节">12345</rstpPasswd>
</cameraConfig>
<recordConfig comment="数据记录配置">
<rtspServerURL comment="rtsp转发地址,为空表示不转发,有效长度:1-16字节">/ch1</rtspServerURL>
</recordConfig>
</vsysChannel>
<vsysChannel comment="通道,最大实例数:1000">
<uuid comment="通道标识,每个通道应唯一,有效长度:1-64字节">57</uuid>
<cameraConfig comment="相机配置">
<cameraType comment="相机类型,有效长度:1-16字节">rtsp</cameraType>
<ipv4 comment="相机IP,有效长度:1-16字节">192.168.50.251</ipv4>
<rtspPort comment="rtsp端口,有效长度:1-5字节">554</rtspPort>
<rtspURL comment="rtspURL,必须以/开头,可为空,有效长度:0-128字节">/defaultPrimary?streamType=u</rtspURL>
<rstpUsername comment="rtsp用户名,可为空,有效长度:0-128字节">admin</rstpUsername>
<rstpPasswd comment="rtsp密码,可为空,有效长度:0-128字节">12345</rstpPasswd>
</cameraConfig>
<recordConfig comment="数据记录配置">
<rtspServerURL comment="rtsp转发地址,为空表示不转发,有效长度:1-16字节">/57</rtspServerURL>
</recordConfig>
</vsysChannel>
<vsysChannel comment="通道,最大实例数:1000">
<uuid comment="通道标识,每个通道应唯一,有效长度:1-64字节">6</uuid>
<cameraConfig comment="相机配置">
<cameraType comment="相机类型,有效长度:1-16字节">rtsp</cameraType>
<ipv4 comment="相机IP,有效长度:1-16字节">192.168.50.64</ipv4>
<rtspPort comment="rtsp端口,有效长度:1-5字节">554</rtspPort>
<rtspURL comment="rtspURL,必须以/开头,可为空,有效长度:0-128字节">/h264/ch2/main/av_stream</rtspURL>
<rstpUsername comment="rtsp用户名,可为空,有效长度:0-128字节">admin</rstpUsername>
<rstpPasswd comment="rtsp密码,可为空,有效长度:0-128字节">12345abc</rstpPasswd>
</cameraConfig>
<recordConfig comment="数据记录配置">
<rtspServerURL comment="rtsp转发地址,为空表示不转发,有效长度:1-16字节">/6</rtspServerURL>
</recordConfig>
</vsysChannel>
<vsysChannel comment="通道,最大实例数:1000">
<uuid comment="通道标识,每个通道应唯一,有效长度:1-64字节">4</uuid>
<cameraConfig comment="相机配置">
<cameraType comment="相机类型,有效长度:1-16字节">rtsp</cameraType>
<ipv4 comment="相机IP,有效长度:1-16字节">192.168.50.65</ipv4>
<rtspPort comment="rtsp端口,有效长度:1-5字节">554</rtspPort>
<rtspURL comment="rtspURL,必须以/开头,可为空,有效长度:0-128字节">/h264/ch2/main/av_stream</rtspURL>
<rstpUsername comment="rtsp用户名,可为空,有效长度:0-128字节">admin</rstpUsername>
<rstpPasswd comment="rtsp密码,可为空,有效长度:0-128字节">12345abc</rstpPasswd>
</cameraConfig>
<recordConfig comment="数据记录配置">
<rtspServerURL comment="rtsp转发地址,为空表示不转发,有效长度:1-16字节">/4</rtspServerURL>
</recordConfig>
</vsysChannel>
<vsysChannel comment="通道,最大实例数:1000">
<uuid comment="通道标识,每个通道应唯一,有效长度:1-64字节">66</uuid>
<cameraConfig comment="相机配置">
<cameraType comment="相机类型,有效长度:1-16字节">rtsp</cameraType>
<ipv4 comment="相机IP,有效长度:1-16字节">192.168.50.66</ipv4>
<rtspPort comment="rtsp端口,有效长度:1-5字节">554</rtspPort>
<rtspURL comment="rtspURL,必须以/开头,可为空,有效长度:0-128字节">/h264/ch2/main/av_stream</rtspURL>
<rstpUsername comment="rtsp用户名,可为空,有效长度:0-128字节">admin</rstpUsername>
<rstpPasswd comment="rtsp密码,可为空,有效长度:0-128字节">12345abc</rstpPasswd>
</cameraConfig>
<recordConfig comment="数据记录配置">
<rtspServerURL comment="rtsp转发地址,为空表示不转发,有效长度:1-16字节">/66</rtspServerURL>
</recordConfig>
</vsysChannel>
<vsysChannel comment="通道,最大实例数:1000">
<uuid comment="通道标识,每个通道应唯一,有效长度:1-64字节">67</uuid>
<cameraConfig comment="相机配置">
<cameraType comment="相机类型,有效长度:1-16字节">rtsp</cameraType>
<ipv4 comment="相机IP,有效长度:1-16字节">192.168.50.67</ipv4>
<rtspPort comment="rtsp端口,有效长度:1-5字节">554</rtspPort>
<rtspURL comment="rtspURL,必须以/开头,可为空,有效长度:0-128字节">/h264/ch2/main/av_stream</rtspURL>
<rstpUsername comment="rtsp用户名,可为空,有效长度:0-128字节">admin</rstpUsername>
<rstpPasswd comment="rtsp密码,可为空,有效长度:0-128字节">12345abc</rstpPasswd>
</cameraConfig>
<recordConfig comment="数据记录配置">
<rtspServerURL comment="rtsp转发地址,为空表示不转发,有效长度:1-16字节">/67</rtspServerURL>
</recordConfig>
</vsysChannel>
<vsysChannel comment="通道,最大实例数:1000">
<uuid comment="通道标识,每个通道应唯一,有效长度:1-64字节">tt001</uuid>
<cameraConfig comment="相机配置">
<cameraType comment="相机类型,有效长度:1-16字节">rtsp</cameraType>
<ipv4 comment="相机IP,有效长度:1-16字节">127.0.0.1</ipv4>
<rtspPort comment="rtsp端口,有效长度:1-5字节">554</rtspPort>
<rtspURL comment="rtspURL,必须以/开头,可为空,有效长度:0-128字节">/ch1</rtspURL>
</cameraConfig>
<recordConfig comment="数据记录配置">
<rtspServerURL comment="rtsp转发地址,为空表示不转发,有效长度:1-16字节">/tt001</rtspServerURL>
</recordConfig>
</vsysChannel>
<vsysChannel comment="通道,最大实例数:1000">
<uuid comment="通道标识,每个通道应唯一,有效长度:1-64字节">tt002</uuid>
<cameraConfig comment="相机配置">
<cameraType comment="相机类型,有效长度:1-16字节">rtsp</cameraType>
<ipv4 comment="相机IP,有效长度:1-16字节">127.0.0.1</ipv4>
<rtspPort comment="rtsp端口,有效长度:1-5字节">554</rtspPort>
<rtspURL comment="rtspURL,必须以/开头,可为空,有效长度:0-128字节">/ch1</rtspURL>
</cameraConfig>
<recordConfig comment="数据记录配置">
<rtspServerURL comment="rtsp转发地址,为空表示不转发,有效长度:1-16字节">/tt002</rtspServerURL>
</recordConfig>
</vsysChannel>
<vsysChannel comment="通道,最大实例数:1000">
<uuid comment="通道标识,每个通道应唯一,有效长度:1-64字节">tt003</uuid>
<cameraConfig comment="相机配置">
<cameraType comment="相机类型,有效长度:1-16字节">rtsp</cameraType>
<ipv4 comment="相机IP,有效长度:1-16字节">127.0.0.1</ipv4>
<rtspPort comment="rtsp端口,有效长度:1-5字节">554</rtspPort>
<rtspURL comment="rtspURL,必须以/开头,可为空,有效长度:0-128字节">/ch1</rtspURL>
</cameraConfig>
<recordConfig comment="数据记录配置">
<rtspServerURL comment="rtsp转发地址,为空表示不转发,有效长度:1-16字节">/tt003</rtspServerURL>
</recordConfig>
</vsysChannel>
<vsysChannel comment="通道,最大实例数:1000">
<uuid comment="通道标识,每个通道应唯一,有效长度:1-64字节">tt004</uuid>
<cameraConfig comment="相机配置">
<cameraType comment="相机类型,有效长度:1-16字节">rtsp</cameraType>
<ipv4 comment="相机IP,有效长度:1-16字节">127.0.0.1</ipv4>
<rtspPort comment="rtsp端口,有效长度:1-5字节">554</rtspPort>
<rtspURL comment="rtspURL,必须以/开头,可为空,有效长度:0-128字节">/ch1</rtspURL>
</cameraConfig>
<recordConfig comment="数据记录配置">
<rtspServerURL comment="rtsp转发地址,为空表示不转发,有效长度:1-16字节">/tt004</rtspServerURL>
</recordConfig>
</vsysChannel>
<vsysChannel comment="通道,最大实例数:1000">
<uuid comment="通道标识,每个通道应唯一,有效长度:1-64字节">tt005</uuid>
<cameraConfig comment="相机配置">
<cameraType comment="相机类型,有效长度:1-16字节">rtsp</cameraType>
<ipv4 comment="相机IP,有效长度:1-16字节">127.0.0.1</ipv4>
<rtspPort comment="rtsp端口,有效长度:1-5字节">554</rtspPort>
<rtspURL comment="rtspURL,必须以/开头,可为空,有效长度:0-128字节">/ch1</rtspURL>
</cameraConfig>
<recordConfig comment="数据记录配置">
<rtspServerURL comment="rtsp转发地址,为空表示不转发,有效长度:1-16字节">/tt005</rtspServerURL>
</recordConfig>
</vsysChannel>
<vsysChannel comment="通道,最大实例数:1000">
<uuid comment="通道标识,每个通道应唯一,有效长度:1-64字节">tt006</uuid>
<cameraConfig comment="相机配置">
<cameraType comment="相机类型,有效长度:1-16字节">rtsp</cameraType>
<ipv4 comment="相机IP,有效长度:1-16字节">127.0.0.1</ipv4>
<rtspPort comment="rtsp端口,有效长度:1-5字节">554</rtspPort>
<rtspURL comment="rtspURL,必须以/开头,可为空,有效长度:0-128字节">/ch1</rtspURL>
</cameraConfig>
<recordConfig comment="数据记录配置">
<rtspServerURL comment="rtsp转发地址,为空表示不转发,有效长度:1-16字节">/tt006</rtspServerURL>
</recordConfig>
</vsysChannel>
<vsysChannel comment="通道,最大实例数:1000">
<uuid comment="通道标识,每个通道应唯一,有效长度:1-64字节">tt007</uuid>
<cameraConfig comment="相机配置">
<cameraType comment="相机类型,有效长度:1-16字节">rtsp</cameraType>
<ipv4 comment="相机IP,有效长度:1-16字节">127.0.0.1</ipv4>
<rtspPort comment="rtsp端口,有效长度:1-5字节">554</rtspPort>
<rtspURL comment="rtspURL,必须以/开头,可为空,有效长度:0-128字节">/ch1</rtspURL>
</cameraConfig>
<recordConfig comment="数据记录配置">
<rtspServerURL comment="rtsp转发地址,为空表示不转发,有效长度:1-16字节">/tt007</rtspServerURL>
</recordConfig>
</vsysChannel>
<vsysChannel comment="通道,最大实例数:1000">
<uuid comment="通道标识,每个通道应唯一,有效长度:1-64字节">tt008</uuid>
<cameraConfig comment="相机配置">
<cameraType comment="相机类型,有效长度:1-16字节">rtsp</cameraType>
<ipv4 comment="相机IP,有效长度:1-16字节">127.0.0.1</ipv4>
<rtspPort comment="rtsp端口,有效长度:1-5字节">554</rtspPort>
<rtspURL comment="rtspURL,必须以/开头,可为空,有效长度:0-128字节">/ch1</rtspURL>
</cameraConfig>
<recordConfig comment="数据记录配置">
<rtspServerURL comment="rtsp转发地址,为空表示不转发,有效长度:1-16字节">/tt008</rtspServerURL>
</recordConfig>
</vsysChannel>
<vsysChannel comment="通道,最大实例数:1000">
<uuid comment="通道标识,每个通道应唯一,有效长度:1-64字节">tt009</uuid>
<cameraConfig comment="相机配置">
<cameraType comment="相机类型,有效长度:1-16字节">rtsp</cameraType>
<ipv4 comment="相机IP,有效长度:1-16字节">127.0.0.1</ipv4>
<rtspPort comment="rtsp端口,有效长度:1-5字节">554</rtspPort>
<rtspURL comment="rtspURL,必须以/开头,可为空,有效长度:0-128字节">/ch1</rtspURL>
</cameraConfig>
<recordConfig comment="数据记录配置">
<rtspServerURL comment="rtsp转发地址,为空表示不转发,有效长度:1-16字节">/tt009</rtspServerURL>
</recordConfig>
</vsysChannel>
<vsysChannel comment="通道,最大实例数:1000">
<uuid comment="通道标识,每个通道应唯一,有效长度:1-64字节">tt010</uuid>
<cameraConfig comment="相机配置">
<cameraType comment="相机类型,有效长度:1-16字节">rtsp</cameraType>
<ipv4 comment="相机IP,有效长度:1-16字节">127.0.0.1</ipv4>
<rtspPort comment="rtsp端口,有效长度:1-5字节">554</rtspPort>
<rtspURL comment="rtspURL,必须以/开头,可为空,有效长度:0-128字节">/ch1</rtspURL>
</cameraConfig>
<recordConfig comment="数据记录配置">
<rtspServerURL comment="rtsp转发地址,为空表示不转发,有效长度:1-16字节">/tt010</rtspServerURL>
</recordConfig>
</vsysChannel>
</vsys>
(3)json不带注释方式导出配置(configcore -c 127.0.0.1 -o /fs/project/data/1.txt -t 7)
{
"vsys":{
"ntpfreq":"6",
"ntpserver":"192.168.50.188",
"vsysChannel":[{
"uuid":"2",
"cameraConfig":{
"cameraType":"rtsp",
"ipv4":"192.168.50.252",
"rtspPort":"554",
"rtspURL":"/h264/ch2/main/av_stream",
"rstpUsername":"admin",
"rstpPasswd":"12345"
},
"recordConfig":{
"rtspServerURL":"/ch1"
}
},{
"uuid":"57",
"cameraConfig":{
"cameraType":"rtsp",
"ipv4":"192.168.50.251",
"rtspPort":"554",
"rtspURL":"/defaultPrimary?streamType=u",
"rstpUsername":"admin",
"rstpPasswd":"12345"
},
"recordConfig":{
"rtspServerURL":"/57"
}
},{
"uuid":"6",
"cameraConfig":{
"cameraType":"rtsp",
"ipv4":"192.168.50.64",
"rtspPort":"554",
"rtspURL":"/h264/ch2/main/av_stream",
"rstpUsername":"admin",
"rstpPasswd":"12345abc"
},
"recordConfig":{
"rtspServerURL":"/6"
}
},{
"uuid":"4",
"cameraConfig":{
"cameraType":"rtsp",
"ipv4":"192.168.50.65",
"rtspPort":"554",
"rtspURL":"/h264/ch2/main/av_stream",
"rstpUsername":"admin",
"rstpPasswd":"12345abc"
},
"recordConfig":{
"rtspServerURL":"/4"
}
},{
"uuid":"66",
"cameraConfig":{
"cameraType":"rtsp",
"ipv4":"192.168.50.66",
"rtspPort":"554",
"rtspURL":"/h264/ch2/main/av_stream",
"rstpUsername":"admin",
"rstpPasswd":"12345abc"
},
"recordConfig":{
"rtspServerURL":"/66"
}
},{
"uuid":"67",
"cameraConfig":{
"cameraType":"rtsp",
"ipv4":"192.168.50.67",
"rtspPort":"554",
"rtspURL":"/h264/ch2/main/av_stream",
"rstpUsername":"admin",
"rstpPasswd":"12345abc"
},
"recordConfig":{
"rtspServerURL":"/67"
}
},{
"uuid":"tt001",
"cameraConfig":{
"cameraType":"rtsp",
"ipv4":"127.0.0.1",
"rtspPort":"554",
"rtspURL":"/ch1"
},
"recordConfig":{
"rtspServerURL":"/tt001"
}
},{
"uuid":"tt002",
"cameraConfig":{
"cameraType":"rtsp",
"ipv4":"127.0.0.1",
"rtspPort":"554",
"rtspURL":"/ch1"
},
"recordConfig":{
"rtspServerURL":"/tt002"
}
},{
"uuid":"tt003",
"cameraConfig":{
"cameraType":"rtsp",
"ipv4":"127.0.0.1",
"rtspPort":"554",
"rtspURL":"/ch1"
},
"recordConfig":{
"rtspServerURL":"/tt003"
}
},{
"uuid":"tt004",
"cameraConfig":{
"cameraType":"rtsp",
"ipv4":"127.0.0.1",
"rtspPort":"554",
"rtspURL":"/ch1"
},
"recordConfig":{
"rtspServerURL":"/tt004"
}
},{
"uuid":"tt005",
"cameraConfig":{
"cameraType":"rtsp",
"ipv4":"127.0.0.1",
"rtspPort":"554",
"rtspURL":"/ch1"
},
"recordConfig":{
"rtspServerURL":"/tt005"
}
},{
"uuid":"tt006",
"cameraConfig":{
"cameraType":"rtsp",
"ipv4":"127.0.0.1",
"rtspPort":"554",
"rtspURL":"/ch1"
},
"recordConfig":{
"rtspServerURL":"/tt006"
}
},{
"uuid":"tt007",
"cameraConfig":{
"cameraType":"rtsp",
"ipv4":"127.0.0.1",
"rtspPort":"554",
"rtspURL":"/ch1"
},
"recordConfig":{
"rtspServerURL":"/tt007"
}
},{
"uuid":"tt008",
"cameraConfig":{
"cameraType":"rtsp",
"ipv4":"127.0.0.1",
"rtspPort":"554",
"rtspURL":"/ch1"
},
"recordConfig":{
"rtspServerURL":"/tt008"
}
},{
"uuid":"tt009",
"cameraConfig":{
"cameraType":"rtsp",
"ipv4":"127.0.0.1",
"rtspPort":"554",
"rtspURL":"/ch1"
},
"recordConfig":{
"rtspServerURL":"/tt009"
}
},{
"uuid":"tt010",
"cameraConfig":{
"cameraType":"rtsp",
"ipv4":"127.0.0.1",
"rtspPort":"554",
"rtspURL":"/ch1"
},
"recordConfig":{
"rtspServerURL":"/tt010"
}
}]
}
}
配置使用导入导出方式,支持标准的xml和json,方便第三方作二次开发
2,实时录像(ftp查看)
3,实时视频转发
4,按时间点播视频
5,文件点播
6,变速播放
7,倒退播放
streamtype:
0--正序正常播放,1-倒序正常播放,2-正序关键帧播放,3-倒序关键帧播放
五,评测
1,120路(1080P视频流) 输入,23个客户端点播
硬件环境: 内存 :2G CPU:AMD X4 955 主频:3.4GHz 4核4线程 流媒体接千兆口,其他接百兆口,320G硬盘一块,1T硬盘两块
IO峰值:60M/s
句柄:799
线程数:11
CPU稳定在26%-45%
内存峰值:550M
硬盘IO均值:32.1M/s
网络下行:289m/s
网络上行:69m/s