音视频即时通讯开发

来源:互联网 发布:淘宝主营类目在哪看 编辑:程序博客网 时间:2024/05/02 02:24

AnyChat开发平台

  Anychat(AnyChat即时通讯开发平台)是一套跨平台的(*)即时通讯解决方案,基于先进的H.264视频编码标准、AAC音频编码标准与P2P技术,支持高清视频,整合了佰锐科技在音视频编码、多媒体通讯领域领先的开发技术和丰富的产品经验而设计的高质量、宽适应性、分布式、模块化的网络音视频互动平台。
  AnyChat即时通讯开发平台(SDK)包含了音视频处理模块(采集、编解码)、流媒体管理模块(丢包重传、抖动平滑、动态缓冲)、流媒体播放模块(多路混音、音视频同步)以及P2P网络模块(NAT穿透、UPnP支持、IP组播支持)等多个子模块,封装了底层的硬件操作(音视频采集、播放)、封装了流媒体处理(编解码、网络传输)等非常专业和复杂的技术,为上层应用提供简单的API控制接口,可以在极短的开发周期,以及极少的人力资源投入下为客户的现有平台增加音视频即时通讯、多方会议的功能。
  AnyChat SDK分为客户端SDK和服务器SDK两大部分,其中客户端SDK用于实现语音、视频的交互以及其它客户端相关的功能,而服务器SDK主要实现业务层逻辑控制,以及与第三方平台的互联等。客户端SDK和服务器SDK均支持C++、C#以及Delphi等开发语言和框架。
  AnyChat内核开放CODEC接口,支持集成第三方的音视频编、解码器,可实现嵌入式终端设备上的硬件编解码,参考:259. AnyChat集成第三方编解码器
  通过AnyChat音视频互动开发平台(SDK),可以开发具有企业特色的即时通讯系统、视频游戏系统、视频会议系统、网络教学系统以及在线客服系统等,系统的功能、界面完全由企业定制,底层通信协议加密传输,多重安全防护,保密性强。
  AnyChat SDK采用动态缓冲技术来适应不同网络环境(局域网、企业专网、互联网、3G网络),根据不同的网络状态动态调节相关参数,使得AnyChat SDK在多种网络环境下均有良好的表现,并特别针对互联网、3G网络等应用场合进行优化,为上层应用提供视频质量的动态调节接口、音频质量的动态调节接口。
  AnyChat SDK可以作为在线游戏的音视频引擎,也可以作为视频会议、网络教育、IM系统、网络视频聊天系统等互动平台的核心库,还可以应用于政府应急指挥平台、专家远程协商平台等专用系统。AnyChat音视频互动开发平台目前已广泛应用于在线视频游戏、网站视频聊天、企业视频会议、军队远程指挥、政府应急指挥平台、数字电视、数学家庭等领域。[1]

AnyChat平台的用途

  AnyChat SDK是一套多媒体即时通讯平台库,大部分需要用到音视频交互的系统都可以采用AnyChat SDK来开发。AnyChat SDK内部封装了音视频的采集、编码、传输、解码以及播放(显示)功能,只需要几个简单的API调用,即可实现多个用户之间的语音、视频、文字交互,由于内核已经实现了P2P网络,所以上层应用不需要关心复杂的网络传输问题,简化了上层应用的开发难度,上层应用的开发人员可以把更多的精力投入到业务流程、用户体验等方面,实现应用系统的快速开发。
  目前已经采用AnyChat SDK实现的应用系统有:
  在线真人视频游戏平台:将AnyChat SDK做为底层的视频引擎,实现打牌的玩家之间可以互相看到视频,可以互相语音聊天,为游戏提供了玩家面对面交流的空间,增强了游戏的用户真实感。
  视频会议系统:利用AnyChat SDK出色的音、视频表现,为其单机设备提供联网功能,并实现在线视频会议的功能,可以实现不同的设备之间互相音视频交流。
  远程教育系统:实现老师与学生之间,以及学生与学生之间的音视频交流。在上课模式下,学生可以看老师的视频、PPT,听老师的讲解,在讨论模式下,可以多个学生同时发言,就热点问题展开讨论。
  在线视频聊天系统:利用AnyChat SDK的语音、视频功能和P2P网络功能,实现同一个房间内,同时多路视频、多路语音的聊天室,降低对服务器的带宽倚赖。
  在线视频直播平台:整个网站有多个主播,每个主播向一个频道内的用户进行广播,用户可以看到当前频道内的主播视频,并听到其声音,主播可以与频道内的多个用户进行私聊。
  部队远程指挥系统:利用AnyChat SDK提供的视频交互功能,在部队远程指挥系统中实现多个指挥中心在同一大屏幕上同时投影,各指挥中心之间可互相看到对方的实时视频。
  即时通讯平台:利用AnyChat出色的语音技术,包括回音消除(AEC)、噪音抑制(NS)、自动增益控制(AGC)、静音检测(VAD)等,实现用户之间的超级语音通话与视频互动。[1]

平台所涉及的技术

  1、视频处理技术:视频采集、编码、传输、解码及显示;
  2、音频处理技术:音频采集、编码、传输、解码及显示;
  3、音频预处理技术:静音检测(VAD)、噪音抑制(NS)、自动增益控制(AGC)以及回音消除(AEC)等;
  4、流媒体传输技术:音频抖动缓冲(Jitter Buffer)、视频马赛克消除(MS);
  5、P2P网络技术:UDP NAT、TCP NAT、P2P多径路由算法(MPA);
  6、服务器并发处理技术。

平台的核心竞争力

  1、产品跨平台 AnyChat支持跨平台的应用,服务器支持Windows、Linux、Unix等所有主流服务器操作系统,客户端目前支持Windows、桌面Linux、嵌入式Linux以及Windows Mobile平台,客户端远期将支持Android、Symbian以及iPhone等系统平台。AnyChat的跨平台特性,为客户提供了广阔的应用空间,如实现Windows桌面用户的语音视频交互的同时,还可以定制嵌入式硬件解决方案,实现嵌入式硬件与Windows桌面应用的互联互通,在部队远程指挥、政府应急系统、数字化家庭、移动视频监控以及移动音视频采集等领域有广泛的应用空间。 
  2、视频技术 AnyChat采用国际领先的视频编码标准H.264(MPEG-4 part 10 AVC /H.264)编码,H.264/AVC 在压缩效率方面有着特殊的表现,一般情况下达到MPEG-2 及MPEG-4 简化类压缩效率的大约2 倍。H.264具有许多与旧标准不同的新功能,它们一起实现了编码效率的提高。特别是在帧内预测与编码、帧间预测与编码、可变矢量块大小、四分之一像素运动估计、多参考帧预测、自适应环路去块滤波器、整数变换、量化与变换系数扫描、熵编码、加权预测等实现上都有其独特的考虑。 佰锐科技采用先进去马赛克技术,保障在视频通讯过程中不出现花屏、马赛克等现象。
  3、音频技术 AnyChat采用先进的AAC(Advanced Audio Coding)语音编码体系,AAC是MPEG1/2 Audio 的下一代有损音频编码, 并且是MPEG-4 使用的音频编码,AAC采用了感知子带技术(perceptual sub-band technology),与MP3等其它编码器相比,AAC编码器很大程度地改善了数据压缩率和声音品质。全面支持静音检测(VAD)、噪音抑制(NS)、自动增益(AGC)以及回音消除(AEC)等音效处理,极大提高用户体验。 
  4、P2P技术 AnyChat针对可不经过服务器中转的音视频应用,采用了P2P通信技术,该技术的核心在于防火墙的穿越。使用P2P通信技术,可以大大的减轻系统服务器的负荷,并成几何倍数的扩大系统的容量,且并不会因为在线用户数太多而导致服务器的网络阻塞。 支持UPNP协议,自动搜索网络中的UPNP设备,主动打开端口映射,提高P2P通信效率。
  5、高性能网络核心 AnyChat服务器模块采用完成端口实现高性能的系统架构,采用重叠I/O机制,通过线程池和缓冲池的管理,极高的优化了系统结构,提高了系统的性能。特别是在多CPU的服务器上,AnyChat服务器更能发挥服务器多处理器的优势。
  AnyChat采用佰锐科技拥有自主知识产权的“MultiPath”P2P网络路由算法,将服务器上的用户组成一个P2P互通的网络,流媒体数据在用户之间传递,减少对服务器的网络带宽占用,实现了一个高性能P2P网络核心。
  传统的P2P网络应用(如P2P在线影院)所采用的算法需要长时间(如30秒,或更长)的缓冲,不适合即时通讯领域所要求的低延迟的目标,“MultiPath”P2P网络路由算法便是针对即时通讯领域专门设计的P2P网络算法,它保留了P2P网络原有的网络带宽优势,同时又极大的降低了中间的缓冲时间。 
  6、开放的接口 AnyChat SDK分为客户端SDK和服务器SDK两大部分,其中客户端用于实现语音、视频的交互以及其它客户端相关的功能,而服务器SDK主要实现业务层逻辑控制,以及与第三方平台的互联等。AnyChat SDK采用模块化技术体系,良好的平台兼容性与可扩展性,丰富的API函数,为上层应用提供了开放的应用接口。