基于路由服务器音视频录制的实现方法及路由服务器技术

技术编号:9671820 阅读:93 留言:0更新日期:2014-02-14 19:27
本发明专利技术提供一种基于路由服务器音视频录制的实现方法,包括:获取并解析网络音视频数据包,得到多个音视频数据;将所述多个音视频数据按获取顺序依次写入环形缓冲区;按写入顺序从所述环形缓冲区中依次读取所述多个音视频数据,并将读取出的音视频数据以预定格式存储成可执行文件。本发明专利技术通过创建环形缓冲区、写入模块以及读取模块,将写操作与读操作分别设置在两个不同的线程中处理,大大提高了服务器的音视频录制实现的效率。

【技术实现步骤摘要】
基于路由服务器音视频录制的实现方法及路由服务器
本专利技术涉及网络音视频通信领域,尤其是涉及基于路由服务器音视频录制的方法、实现方法及路由服务器。
技术介绍
目前,国际国内公认的Voip,视频会议,呼叫中心甚至交通路况监控的路由服务,有相当一部分多是基于开源的会议路由服务器提供路由服务的。会议路由服务器可以实现复杂的路由策略,能够将普通的PC机变成交换机,甚至还能充当企业级的商用交换机,从而可以大大节省企业的运营成本。就只拿异地视频会议来说,会议路由服务器不仅自身提供了会议功能,可以通过简单地对其相应会议配置文件设置,就可以按照客户的需求比较人性化地实现其远程视频会议要求。但现有会议路由服务器的音视频录制实现的效率异常的低下。原因如下。(I)目前会议路由服务器使用的是模块化的设计方式,即一个核心加载多个模块的思想。模块用于实现既定的协议(RTP)、程序(比较有代表性的IVR)和其它外部接口(像管道接口)等。会议路由服务器的核心是多线程的,但它相当的”吝啬”:仅仅当用做初始化的信道以及运行一个程序的信道时才有线程。也就是说,系统运行时任何的呼叫的S端和C端都处于统一线程,等到某些事件发生时(像一个转接呼叫必须首先转接到一个所谓的伪信道的线性模式),该核心才会把相应某个信道的所有内部数据从一个动态内存对象中分离出来,转入到另外对应的某个信道;当删除一个信道时,需要先复制一个信道,才能撤换原来工作的信道,工作效率相当低下。同时还要修改其状态以避免将其视为一个新的接入,所以对于一个新的接入,在呼叫转移时,会看到三到四个信道并存,这实际上是从一个线程中取出另一个新到的数据,这种模糊的线程模式也是造成其效率低下的一个原因。(2)会议路由服务器管理链表的方式是线性链表,这种链表通过某种结构体将一系列动态内存依次连在一起,同时有一个指针指向其本身,这样就能够循环地对对象进行操作。这种设计确实精妙,然而,对于多线程应用会造成意想不到的混乱:当某个线程操作链表时,另一个线程可能会对链表中的某元素进行删除操作;甚至出现更糟的情况,当一个线程正在删除或是监听某一个信道的同时,却有另一个线程访问该块内存空间,会出现不可预知的错误,进而造成线程即刻终止,从而导致在这一段时间内的所有通话都将终断,为了防止死锁,一个线程在试图锁定一个信道,在尝试规定次数后,若不成功,就会继续下一个线程的进行。这样就造成了很多意想不到的错误,丢失或破坏很多数据。基于以上种种缺陷从而导致服务器的音视频录制实现的效率异常的低下。
技术实现思路
(一)要解决的技术问题本专利技术的目的是,提供一种基于路由服务器音视频录制的实现方法,用以解决
技术介绍
中提到的诸多不足。(二)技术方案为解决上述问题,本专利技术还采用另一种技术方案:提供一种基于路由服务器音视频录制的实现方法,包括:在所述路由服务器上创建环形缓冲区、写入模块以及读取模块;所述路由服务器获取并解析网络音视频数据包,得到多个音视频数据;控制所述写入模块调用写操作线程将获取的音视频数据按获取顺序依次写入环形缓冲区;控制所述读取模块调用读操作线程按写入顺序从所述环形缓冲区中依次读取所述多个音视频数据,并将读取出的音视频数据以预定格式存储成可执行文件;其中,对于所述多个音视频数据中的某个音视频数据的写操作、读操作之间设有互斥机制。具体的,所述写入模块调用多个写操作线程进行写操作;其中,对于所述多个写操作线程中的每个写操作线程,任意两个所述写操作线程之间、写操作线程与所述读操作线程之间设有互斥机制。具体的,所述读取模块调用多个读操作线程进行读操作;其中,对于所述多个读操作线程中的每个读操作线程,任意两个所述读操作线程之间、每个读操作线程和所述写操作线程之间设有互斥机制。具体的,所述写入模块调用多个写操作线程进行写操作,所述读取模块调用多个读操作线程进行读操作;其中,对于所述多个写操作线程中的每个写操作线程以及对于所述多个读操作线程中的每个读操作线程,任意两个所述每个写操作线程之间以及任意两个所述每个读操作线程之间设有互斥机制。为解决上述问题,本专利技术还采用另一种技术方案:提供一种实现音视频录制的路由服务器,包括:解析模块、写入模块、环形缓冲区、读取模块以及存储模块;所述解析模块,用于获取并解析网络音视频数据包,得到多个音视频数据,将所述多个音视频数据存储至写入模块;所述写入模块,用于将所述多个音视频数据按获取顺序依次写入环形缓冲区;所述读取模块,用于按写入顺序从所述环形缓冲区中依次读取所述多个音视频数据,并将读取出的音视频数据以预定格式存储成可执行文件至存储模块;其中,对于所述多个音视频数据中的某个音视频数据的写操作、读操作之间设有互斥机制。其中,所述写入模块包括多个写入单元,任意两个所述写入单元之间设有互斥机制;所述解析模块,用于将所述多个音视频数据按获取顺序依次存储至所述多个写入单元;所述写入模块,用于按存储顺序依次调用对应写入单元,将对应音视频数据依次写入环形缓冲区。其中,所述读取模块包括多个读取单元,任意两个所述读取单元之间设有互斥机制;所述读取模块,用于调用所述多个读取单元按写入顺序从所述环形缓冲区中依次读取所述多个音视频数据,并将读取出的音视频数据以预定格式存储成可执行文件。为解决上述技术问题,本专利技术所提供的基于路由服务器音视频录制的方法,包括:获取并解析网络音视频数据包,得到多个音视频数据;将所述多个音视频数据按获取顺序依次写入环形缓冲区;按写入顺序从所述环形缓冲区中依次读取所述多个音视频数据,并将读取出的音视频数据以预定格式存储成可执行文件;其中,对于所述多个音视频数据中的某个音视频数据的写操作、读操作之间设有互斥机制。其中,将所述多个音视频数据按获取顺序依次写入环形缓冲区时,对于所述多个音视频数据中的任意两个音视频数据的写操作之间设有互斥机制。其中,按写入顺序从所述环形缓冲区中依次读取所述多个音视频数据时,对于所述多个音视频数据中的任意两个音视频数据的读操作之间设有互斥机制。(三)有益效果区别于
技术介绍
,本专利技术通过创建环形缓冲区、写入模块以及读取模块,将数据暂存在环形缓冲区,不占用服务器主控制器的缓冲区,让服务器的主进程去做其他服务,初步提高了服务器的工作效率;其次,本专利技术将写操作与读操作分别设置在两个不同的线程中处理,大大提高了服务器的音视频录制实现的效率;同时本专利技术还在读写操作之间设有互斥机制,能够保证在同一时间只有写线程或读线程对环形缓冲区进行读写操作从而保证数据的完整性,不会出现
技术介绍
中那些意想不到的错误以及丢失或破坏很多数据的问题。【附图说明】图1是实施例一基于路由服务器音视频录制的实现方法流程示意图;图2是实施例二中基于路由服务器音视频录制的方法流程示意图;图3是图2所示实施例的具体实施示意图;图4是实施例三中实现音视频录制的路由服务器的结构图;图5是实施例四中实现音视频录制的路由服务器的结构图;图6是实施例五中实现音视频录制的路由服务器的结构图;图7是实施例六中实现音视频录制的路由服务器的结构图。【具体实施方式】为使本专利技术的目的、内容、和优点更加清楚,下面结合附图和实施例,对本专利技术的【具体实施方式】作进一步详细描述。以下实施例用于说明本专利技术,但不用来限制本发本文档来自技高网
...

【技术保护点】
一种基于路由服务器音视频录制的实现方法,其特征在于,包括:在所述路由服务器上创建环形缓冲区、写入模块以及读取模块;所述路由服务器获取并解析网络音视频数据包,得到多个音视频数据;控制所述写入模块调用写操作线程将获取的音视频数据按获取顺序依次写入环形缓冲区;控制所述读取模块调用读操作线程按写入顺序从所述环形缓冲区中依次读取所述多个音视频数据,并将读取出的音视频数据以预定格式存储成可执行文件;其中,对于所述多个音视频数据中的某个音视频数据的写操作、读操作之间设有互斥机制。

【技术特征摘要】
1.一种基于路由服务器音视频录制的实现方法,其特征在于,包括: 在所述路由服务器上创建环形缓冲区、写入模块以及读取模块; 所述路由服务器获取并解析网络音视频数据包,得到多个音视频数据; 控制所述写入模块调用写操作线程将获取的音视频数据按获取顺序依次写入环形缓冲区; 控制所述读取模块调用读操作线程按写入顺序从所述环形缓冲区中依次读取所述多个音视频数据,并将读取出的音视频数据以预定格式存储成可执行文件;其中,对于所述多个音视频数据中的某个音视频数据的写操作、读操作之间设有互斥机制。2.根据权利要求1所述的基于路由服务器音视频录制的实现方法,其特征在于: 所述写入模块调用多个写操作线程进行写操作;其中,对于所述多个写操作线程中的每个写操作线程,任意两个所述写操作线程之间、每个写操作线程与所述读操作线程之间设有互斥机制。3.根据权利要求1所述的基于路由服务器音视频录制的实现方法,其特征在于: 所述读取模块调用多个读操作线程进行读操作;其中,对于所述多个读操作线程中的每个读操作线程,任意两个所述读操作线程之间、每个读操作线程和所述写操作线程之间设有互斥机制。4.根据权利要求1所述的基于路由服务器音视频录制的实现方法,其特征在于: 所述写入模块调用多个写操作线程`进行写操作,所述读取模块调用多个读操作线程进行读操作;其中,对于所述多个写操作线程中的每个写操作线程以及对于所述多个读操作线程中的每个读操作线程,任意两个所述写操作线程之间以及任意两个所述每个读操作线程之间设有互斥机制。5.一种实现音视频录制的路由服务器,其特征在于,包括:解析模块、写入模块、环形缓冲区、读取模块以及存储模块; 所述解析模块,用于获取并解析网络音视频数据包,得到多个音视频数据,将所述多个音视频数据存储至写入模块; 所述写入模块,用于将所述多个音视频数据按获取顺序...

【专利技术属性】
技术研发人员:白智强王君李伟金耀王学英庞秀立梁砚啸揭颖
申请(专利权)人:北京兆维电子集团有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1