首页 > 代码库 > 音视频开发的故障分析
音视频开发的故障分析
在音视频开发中,或是使用开发工具的过程中,特别是在某个软件不熟悉的情况下,遇到问题通常无从下手,这里以国内比较先进的音视频开发平台AnyChat平台作为一句,给出较通用的故障分析、排查和解决方案:
一、服务器部分
服务器程序启动后,会在服务器程序所在目录生成一个日志文件:“AnyChatCoreServer.log”,典型的日志文件内容如下:
1.---------------------------InitService---------------------------
2.Current File Version[2, 8, 6, 2],Build time:2010-06-2220:17:25
3.Authorized certification success!
4.Run Service
5.Start TCP Server Successed(port=8906)!
6.Start UDP Server Successed(port=8907)!
里面记录了服务器的版本信息,以及发布时间,另外最重要的两点,还记录了授权信息是否验证成功和当前启动TCP和UDP的服务是否成功。
如果在服务器的配置文件中配置了SDK Filter(Plus)的接口,则也会在日志文件中记录加载是否成功。
通常服务器会遇到如下问题:
1、由于授权信息验证失败,而导致服务器启动失败。服务器启动时,会读取当前目录下的授权证书文件(AnyChat.cer)并验证是否有效,如果该文件丢失,或是授权信息不正确,均会导致启动失败,遇到该问题,请与我们的售后服务联系(附:联系方式);
2、由于端口被占用导致服务器启动失败。如果服务器配置文件中所配置的TCP、UDP端口被别的程序占用,或是启动了多个服务器进程,都将会导致端口被占用,遇到该问题,只需要关闭使用该端口的进程,或是在配置文件中修改端口号,然后重新启动服务器程序即可;
3、服务器运行过程中出现异常,通常AnyChat服务器都能捕获所产生的异常,将该异常发生点的内存进行转储为文件,文件名为“BRGVServerCrash.dmp”和“BRGVServerErrorLog.txt”,当异常发生后,请将这两份文件提供给我们,将有助于我们快速定位故障点,并提供升级补丁程序。
二、客户端部分
如果上层应用程序没有主动关闭AnyChat SDK的日志功能,则客户端程序运行后,将会在应用程序当前目录生成一个日志文件:“BRAnyChatCore.log”,可用记事本打开,里面记录了SDK的版本号,发布日期,启动时加载库文件是否成功的信息,以及上层应用调用AnyChat SDK的API接口信息,并包含部分参数。
通常分析客户端日志文件可以解决大部分关于客户端的不正常现象,包括:
1、不同的版本造成的异常:客户端日志会记录SDK的版本信息,相关库文件的版本信息和发布时间,和正常日志文件作对比,判断是否由于版本的不同导致的不正常;
2、由于组件没有注册成功,或是相关组件(DLL文件)加载失败,造成部分功能的不正常,如不能打开视频,或是不能打开本地音频采集设备,均可能是组件注册,或是组件缺失所导致的;
3、由于调用参数的错误导致SDK不能正常工作,如连接服务器不成功,而服务器又是正常的情况,通常是传入的IP地址,或是端口号不正确所导致的,该类问题可以分析日志文件中所记录的API传入参数来查找原因;
4、由于API调用的顺序问题而导致客户端的异常:通过和正常的日志文件进行对比,判断API的调用是否存在问题。
音视频开发的故障分析