SRS5.0国标编译版发布,支持Windows系统运行

下载需积分: 2 | ZIP格式 | 11.79MB | 更新于2024-11-22 | 147 浏览量 | 10 下载量 举报
收藏
SRS(Simple-RTSP-Server)是一个开源的RTSP(Real Time Streaming Protocol)服务器项目,支持多种流媒体格式,如H.264等。SRS 5.0版本是该项目的一个重要版本,特别针对GB28181国标协议进行了优化和改进。GB28181是中国安防监控领域的国家标准,全称是《公共安全视频监控联网系统信息传输、交换、控制技术要求》,它规定了视频监控系统之间进行信息传输、交换、控制的技术要求,以及相关的安全要求。 SRS 5.0版本通过编译,可以生成支持GB28181协议的服务器程序。根据描述,该版本可在Windows操作系统上运行,通过运行命令“srs.exe -c conf/gb28181.conf”启动服务。其中,srs.exe是编译后的可执行文件,conf/gb28181.conf则是服务器的配置文件,用于设置SRS服务器的各项参数,如端口、日志级别、协议选项等。 从压缩包子文件的文件名称列表中可以看出,该压缩包包含了SRS服务器在Windows平台上运行所必需的动态链接库(DLL)文件,例如cygwin1.dll、cygstdc++-6.dll、cyggcc_s-seh-1.dll等。这些DLL文件是Cygwin环境的一部分,Cygwin是一个在Windows系统上提供类Unix环境的应用程序,它提供了大量的Linux工具和应用程序的移植,使得在Windows环境下可以使用类似于Unix的命令行接口。 在部署和使用SRS 5.0版本时,应确保Windows环境已安装Cygwin并配置好相应的环境变量,以便正确加载DLL文件。SRS服务器的配置文件需要根据实际的监控系统需求进行调整,以确保能够正确处理监控设备发送的GB28181协议消息,并提供相应的流媒体服务。 SRS服务器在公共安全视频监控领域的应用,为不同厂商的视频监控设备之间的互通提供了可能,促进了监控系统的开放性和可集成性。GB28181国标的引入,使得监控系统能够满足国家对于视频监控联网系统的技术要求,提高了系统的安全性、稳定性和可靠性。 总结来说,SRS 5.0版本是针对国标GB28181优化的RTSP服务器,能够支持跨厂商的视频监控设备的互通互联。它通过特定的配置文件支持GB28181协议,使得视频监控系统能够按照国家标准进行数据的传输和控制,为公共安全视频监控提供了有力的技术支持。在Windows环境下运行SRS 5.0版本,需要确保Cygwin环境的正确配置以及相关DLL文件的完整性。

相关推荐

filetype
SRS定位是运营级的互联网直播服务器集群,追求更好的概念完整性和最简单实现的代码。SRS提供了丰富的接入方案将RTMP流接入SRS,包括推送RTMP到SRS、推送RTSP/UDP/FLV到SRS、拉取流到SRS。SRS还支持将接入的RTMP流进行各种变换,譬如将RTMP流转码、转发给其他服务器、转封装成HTTP-FLV流、转封装成HLS、转封装成HDS、录制成FLV。SRS包含支大规模集群如CDN业务的关键特性,譬如RTMP多级集群、VHOST虚拟服务器、无中断服务Reload、HTTP-FLV集群。此外,SRS还提供丰富的应用接口,包括HTTP回调、安全策略Security、HTTP API接口、RTMP测速。SRS在源站和CDN集群中都得到了广泛的应用Applications。 最新版本SRS 2.0-258 ,使用cygwin 在windows下的编译 。 修改代码 setrlimit (2048) ,使其默认能支持 2048个连接 在i7笔记本上 ,测试 500路视频转发 ,srs.exe进程 占用cpu 5%,出奇的低。 以下是 编译错误笔记和修改的配置项。 *.修改 Makefile CXXFLAGS = -ansi -Wall -g -O0 -fPIC -std=gnu++11 -D__GLIBC__=2 -D__GLIBC_MINOR__=31 -DFD_SETSIZE=2048 1.depends.sh what a fuck, os not supported. ingore it !!!! 2. make[1]: 进入目录“/mnt/srs-2.0-r5/trunk/objs/st-1.9” if [ ! -d LINUX_3.0.4(0.338/5/3)_DBG ]; then mkdir LINUX_3.0.4(0.338/5/3)_DBG; f i /bin/sh: -c:行0: 未预期的符号 `(' 附近有语法错误 /bin/sh: -c:行0: `if [ ! -d LINUX_3.0.4(0.338/5/3)_DBG ]; then mkdir LINUX_3.0.4 (0.338/5/3)_DBG; fi' make[1]: *** [Makefile:348:LINUX_3.0.4(0.338/5/3)_DBG] 错误 1 make[1]: 离开目录“/mnt/srs-2.0-r5/trunk/objs/st-1.9” make: *** [Makefile:441:linux-debug] 错误 2 build st-1.9 failed, ret=2 3.depends.sh make cygwin-debug 提示 static lib failed. # st-1.9 # Some platforms allow to define FD_SETSIZE (if select() is used), e.g.: DEFINES += -DFD_SETSIZE=4096 ##################################################################################### if [ $SRS_EXPORT_LIBRTMP_PROJECT = NO ]; then # check the cross build flag file, if flag changed, need to rebuild the st. _ST_MAKE=linux-debug && _ST_EXTRA_CFLAGS="-DMD_HAVE_EPOLL -DMALLOC_STACK" 4.install CherryPy-3.2.4" require sudoer failed 解压 CherryPy-3.2.4.zip 至 objs目录 4.1 local_ip.sh 改成 ip='0.0.0.0' #ip=`ifconfig|grep "inet "|grep -v "127.0.0.1"|awk -F 'inet ' 'NR==1 {print $2}'|awk '{print $1}'|sed "s/addr://g"` 5. libst.def st_get_eventsys_name @112 st_set_eventsys @113 ibssl.a objs/openssl/lib/libcrypto.a -ldl /usr/lib/gcc/i686-pc-cygwin/7.4.0/../../../../i686-pc-cygwin/bin/ld: objs/src/ap p/srs_app_st.o: in function `Z11srs_st_initv': /mnt/srs-2.0-r5/trunk/src/app/srs_app_st.cpp:217: undefined reference to `st_set _eventsys' /usr/lib/gcc/i686-pc-cygwin/7.4.0/../../../../i686-pc-cygwin/bin/ld: /mnt/srs-2. 0-r5/trunk/src/app/srs_app_st.cpp:219: undefined reference to `st_get_eventsys_n ame' /usr/lib/gcc/i686-pc-cygwin/7.4.0/../../../../i686-pc-cygwin/bin/ld: /mnt/srs-2. 0-r5/trunk/src/app/srs_app_st.cpp:222: undefined reference to `st_get_eventsys_n ame' /usr/lib/gcc/i686-pc-cygwin/7.4.0/../../../../i686-pc-cygwin/bin/ld: /mnt/srs-2. 0-r5/trunk/src/app/srs_app_st.cpp:229: undefined reference to `st_get_eventsys_n ame' collect2: 错误:ld 返回 1 make[2]: *** [objs/Makefile:302:objs/srs] 错误 1 make[2]: 离开目录“/mnt/srs-2.0-r5/trunk” make[1]: *** [Makefile:38:server] 错误 2 make[1]: 离开目录“/mnt/srs-2.0-r5/trunk” make: *** [Makefile:8:default] 错误 2 6. ulimit -n 2048 srs_app_config.cpp 增加代码修改 进程可打开的最大文件描述词大一的值,超出此值,将会产生EMFILE错误 rlimit l; getrlimit(RLIMIT_NOFILE,&l); l.rlim_cur = get_max_connections() + 100; setrlimit(RLIMIT_NOFILE, &l); srs_info("setrlimit => soft:%d , hard:%d\n",(int)l.rlim_cur,(int)l.rlim_max);
907 浏览量