TSINGSEE青犀视频开发的视频流媒体平台其中都将easydss流媒体作为其支撑运行的根本服务系统,因此有使用EasyGBS或者EasyNVR的用户在启动平台的时候,会看到easydss流媒体的启动。
在我们对EasyGBS的测试期间,发现当EasyGBS以服务方式启动的同时,其流媒体easydss却还是以进程方式启动的,对于程序的运行来说,这种启动方式并不会给程序带来额外的稳定性,反而容易出现easydss流媒体停止的情况,所以我们需要在程序中添加以服务方式启动easydss流媒体的功能。
添加如下代码,启动easydss.exe 加入服务命令参数,-service 让easydss能够以服务方式运行。
代码语言:javascript复制// 停止服务
func stopServer() {
//cmd := exec.Command(GetServerPath(), "-c", getServerConfPath())
cmd := exec.Command(GetServerPath(), "-service", "stop")
log.Println("stop server media")
// 设置运行路径,底层的 media server 才能找到正确的路径和配置文件
cmd.Dir = GetServerDir()
cmd.Stdout = os.Stdout
cmdReader, err := cmd.StderrPipe()
if err != nil {
fmt.Println(err)
return
}
scanner := bufio.NewScanner(cmdReader)
再次启动程序,能够看到,easydss以服务方式启动的服务程序Tsingsee Mediaserver服务。