即时通讯编解码器

来源:互联网 发布:公司网络监控手机qq 编辑:程序博客网 时间:2024/05/16 07:06

         在音视频开发过程中,对于音频、视频数据都是需要经过编码才能网络传输到客户端或服务器,这时还需要对接收到的数据进行解码,还原成原始数据流进行显示。特别是在于第三方设备合作对接过程中,如IP Camera,对于这类型设备本身就具有SDK对原始流媒体数据进行编解码,如何对这些数据做一个标准达到完美对接呢。较为先进的统一标准技术视频H.264,音频如AAC等。

      BRChat Platform Core SDK 支持加载外部音视频的编码、解码模块(简称BRChat Codec 库),增强系统的可扩展性,同时也满足一些特定应用环境的特殊需求,如与特定的硬件产品集成时,可以调用硬件编解码器,实现更高效率的即时通讯应用。

     BRChat Platform Core SDK 内核已经实现了部分常用的音视频编码、解码模块,如 H.264 视频编码、解码算法,ARM-WB、AAC、SPEEX、CELT 等音频编码、解码算法。上层应用可以自己定义新的音视频编码、解码算法,在 BRChat 平台初始化时,通过相关 API 接口可以加载新的编码、解码模块,同时上层应用也可以重新实现 SDK 内置的编码、解码算法,在 AnyChat 平台初始化时,发现加载的音视频编码、解码算法与内置的算法相同,则会采用上层应用提供的相关算法来替代内核的算法。  

     单个音视频编码、解码模块(BRChat Codec 库)最多可以同时包含:一个音频编码器,一个音频解码器,一个视频编码器以及一个视频解码器。当上层应用需要实现多个编码器,或是多个解码器时,可以在多个库中分别实现,然后分别向 BRChat 内核进行注册。 

     BRChat Platform Core SDK 根据预先定义的 CODEC 编号(CodecId)来区分不同的 CODEC,当用户需要实现的 CODEC 不在已定义的 CODEC 列表中时,可以自行定义新的 CODEC 编号,当 BRChat 内核收到采用新的CODEC 编码的数据时,会根据 CODEC 编号查询已注册的新解码器,然后调用新的 CODEC 进行解码。  

     当上层应用实现的CODEC 编号与 BRChat 内核预置的 CODEC 相同时,且输入(或输出)为标准码流时,可以与 BRChat 内置 CODEC同步工作(如采用 BRChatCodec 库进行编码,用AnyChat 内置库进行解码)。 

     当上层应用实现的 CODEC 编号不存在于 BRChat 内置 CODEC 列表中时,需要在编码端、解码端同时注册新的CODEC,否则将会出现解码失败的情况。

    当在编码、解码的过程中出现异常,需要上层重置 CODEC,则可在 OutPacket上增加标志:OutPacket->dwFlags |= MEDIACODEC_FLAGS_NEEDREINIT



1 0
原创粉丝点击