即时通讯 音视频录制技术

音视频录制是音视频解决方案中最重要的功能特性之一,特别是一些行业应用中音视频录制是最基本的功能需求,AnyChat作为业界一流的跨平台音视频解决方案,在音视频录制方面也提供了非常完善的整体解决方案,概括起来有如下特点:

1.   可针对单个用户的音频、视频进行录制;

2.   可针对通话双方的音频、视频合成录制,支持画中画、并列模式等多种合成方式

3.   可以自定义录制参数,包括录制码率、视频分辩率等;

4.   录制的视频格式可自定义,支持MP4(默认)、WMV、FLV、MP3等;

5.   可以在客户端录制,也可以在中心服务器录制

6.   可以在客户端进行音视频合成,中心服务器对合成音视频流录制,录像服务器支持高并发;

7.   客户端录制支持的平台包括:Windows、Web、Android、iOS、Linux;

8.   服务器录制支持的平台包括:Windows、Linux(x86、x64);

9.   提供客户端录制API、服务器录制API接口,与上层业务无缝集成;

一、API接口定义

AnyChat在客户端提供的录制API接口与回调事件为:

1.  // 用户音、视频录制(扩展)

2.  BRAC_API
DWORD BRAC_StreamRecordCtrlEx(DWORD dwUserId,BOOL bStartRecord, DWORD dwFlags, DWORD dwParam, LPCTSTR lpUserStr);

3.

4.  // 录像、快照任务完成扩展回调函数定义

5.  typedef
void (CALLBACK *BRAC_RecordSnapShotEx_CallBack)(DWORD dwUserId, LPCTSTR lpFileName, DWORDdwElapse, DWORD dwFlags, DWORD dwParam, LPCTSTR lpUserStr, LPVOID lpUserValue);

复制代码

AnyChat在服务器端提供的录制API接口与回调事件为:

1.  // 中心端录像控制(扩展)

2.  BRAS_API
DWORD BRAS_StreamRecordCtrlEx(DWORD dwUserId,BOOL bStartRecord, DWORD dwFlags, DWORD dwParam, LPCTSTR lpUserStr=NULL, DWORDdwRecordServerId=-1);

3.

4.  // 服务器录像回调函数定义(扩展)

5.  typedef
void (CALLBACK *BRAS_OnServerRecordEx_CallBack)(DWORD dwUserId, LPCTSTR lpFileName, DWORDdwElapse, DWORD dwFlags, DWORD dwParam, LPCTSTR lpUserStr, DWORDdwRecordServerId, LPVOID lpUserValue);

复制代码

二、录制API调用

API第一个参数表示录制对象,指录制某一个用户的音视频,对于合成录制,只需要通过第三个参数(dwFlags)加入特定的标志即可实现。

开始录制以及停止录制均调用同一个API接口(如客户端为:BRAC_StreamRecordCtrlEx),通过第二个参数(bStartRecord)来控制,当bStartRecord=TRUE(1)时,表示开始录制,当bStartRecord=FALSE(0)时,表示停止录制。

当调用API开始录制时,相当于下达了一个录制任务,AnyChat内核将开始录制,可以在客户端调用API(BRAC_QueryUserState)来查询录制状态;通过第三个参数(dwFlags)可控制录制行为:是在客户端录制,还是在服务器录制;是录制音频,还是音视频一同录制;是录制单个用户,还是通话双方合成录制等,具体应用可参考后续的“录制功能示例”部分。

当调用API停止录制时,AnyChat内核会结束录制任务,同时触发上层应用的回调事件(如客户端为:BRAC_RecordSnapShotEx_CallBack),在回调事件中,将录制文件名(含路径)、录制时长、用户自定义参数等信息返回给上层应用。

AnyChat内核提供了两个自定义参数,一个是整形(dwParam),一个是字符串类型(lpUserStr),在开始录制时通过API接口传入,在录制完成回调事件中返回给上层应用,如可以通过字符串类型自定义参数来传输一个上层应用的业务流水号,则可以实现在回调事件中将录制的文件名与业务流水号进行关联,保存在数据库中等功能。

三、录制功能示例

下面以JavaScript脚本为例,针对常用的录制功能给出示例代码:

1、客户端对单个用户的音频、视频进行录制,录制为MP4格式

1.  BRAC_SetSDKOption(BRAC_SO_RECORD_FILETYPE,
0);   // 录制为MP4格式

2.  var
dwFlags = ANYCHAT_RECORD_FLAGS_VIDEO +ANYCHAT_RECORD_FLAGS_AUDIO;

3.  BRAC_StreamRecordCtrlEx(userid,
1,  dwFlags, 0,"Hello, world!");

复制代码

2、客户端对单个用户的音频进行录制,录制为MP3格式

1.  BRAC_SetSDKOption(BRAC_SO_RECORD_FILETYPE,
3);   // 录制为MP3格式

2.  var
dwFlags = ANYCHAT_RECORD_FLAGS_AUDIO;

3.  BRAC_StreamRecordCtrlEx(userid,
1,  dwFlags, 0,"Hello, world!");

复制代码

3、客户端对通话双方的音频、视频进行录制,录制为MP4格式,画中画模式:

1.  BRAC_SetSDKOption(BRAC_SO_RECORD_FILETYPE,
0);   // 录制为MP4格式

2.  var
dwFlags = ANYCHAT_RECORD_FLAGS_VIDEO +ANYCHAT_RECORD_FLAGS_AUDIO + ANYCHAT_RECORD_FLAGS_MIXVIDEO +ANYCHAT_RECORD_FLAGS_MIXAUDIO;

3.  BRAC_StreamRecordCtrlEx(userid,
1,  dwFlags, 0,"Hello, world!");

复制代码

四、其它

1、客户端可以通过API:BRAC_SetSDKOption(BRAC_SO_RECORD_TMPDIR,
path)来设置录像文件保存路径;

2、有关录像文件改名:录制完成之后,AnyChat将触发上层应用的录制完成回调事件,在回调事件中返回录制文件名(含路径),上层应用可以在回调事件中调用操作系统提供的文件改名函数(如Windows平台为:MoveFile函数)对文件进行改名操作,AnyChat内核本身没有提供对录制文件名进行修改的接口;

时间: 2024-09-30 05:30:35

即时通讯 音视频录制技术的相关文章

跨平台的即时通讯音视频解决方案

改变你视界的AnyChat,通过封装音视频编解码.流媒体处理以及P2P等专业复杂技术,为上层应用提供简单的API控制接口,实现一对一.一对多的实时音视频交互.文件传输.透明通道.音视频录制等功能.在移动互联网.物联网.在线教育.远程医疗.视频客服以及智能家居等业务领域拥有广泛的应用空间. 产品核心竞争力 一.音视频通信 承载数千客户的多形态音视频通信应用,近十年技术积累值得信赖,AnyChat将为您提供专业卓越的跨平台音视频通信服务体验.采用和优化H.264视频编解码,AAC音频编码标准与P2P

即时通讯——详解音视频同步技术

转自:http://tieba.baidu.com/p/2138076570 摘要:针对网络传输中由于延迟.抖动.网络传输条件变化等因素引起的音视频不同步的问题,设计并实现了一种适应不同网络条件的音视频同步方案.利用音视频编码技术AMR-WB和H.264具有在复杂网络环境中速率可选择的特性,结合RTP时间戳和RTCP反馈检测QOS,通过控制音视频编码方式,实现了动态网络环境下的音视频同步方案.重点介绍了可靠网络环境和动态网络环境下同步算法的设计过程,并通过实际测试验证了此方案的可行性.结果表明,

音视频即时通讯的音视频录制开发

音视频录制是音视频解决方案中最重要的功能特性之一,特别是一些行业应用中音视频录制是最基本的功能需求,AnyChat作为业界一流的跨平台音视频解决方案,在音视频录制方面也提供了非常完善的整体解决方案,概括起来有如下特点: 1.   可针对单个用户的音频.视频进行录制: 2.   可针对通话双方的音频.视频合成录制,支持画中画.并列模式等多种合成方式: 3.   可以自定义录制参数,包括录制码率.视频分辩率等: 4.   录制的视频格式可自定义,支持MP4(默认).WMV.FLV.MP3等: 5. 

音视频 开发技术,让智能家居更智能!

智能家居是在物联网的影响之下物联化体现.智能家居通过物联网技术将家中的各种设备(如音视频设备.照明系统.窗帘控制.空调控制.安防系统.数字影院系统.网络家电以及三表抄送等)连接到一起,提供家电控制.照明控制.窗帘控制.电话远程控制.室内外遥控.防盗报警.环境监测.暖通控制.红外转发以及可编程定时控制等多种功能和手段. 定义 智能家居是一个居住环境,是以住宅为平台安装有智能家居系统的居住环境,实施智能家居系统的过程就称为智能家居集成.以住宅为平台,利用综合布线技术.网络通信技术. 智能家居-系统设

音视频 对讲技术实现楼宇智能化

楼宇智能化系统一般包括以下系统:综合布线系统.计算机网络系统.电话系统.有线电视及卫星电视系统.安防监控系统.一卡通系统.广播告示系统.楼宇自控系统.酒店管理系统.物业管理系统.智能楼宇管理系统(集控平台)及数据中心机房建设等. 1.综合布线系统 结构化综合布线系统是整幢大楼的"神经系统",是网络.通讯等系统的基础.大楼结构化布线采用光纤作为主干(电话主干使用大对数线缆).超五类或六类双绞线到房间,提供网络接入. 2.网络系统 在综合布线基础上构建网络系统,提供系统桌面100/1000

音视频开发技术之自主集成第三方编解码器

AnyChat Platform Core SDK支持加载外部音视频的编码.解码模块(简称AnyChat Codec库),增强系统的可扩展性,同时也满足一些特定应用环境的特殊需求,如与特定的硬件平台(android.pad)集成时,可以调用硬件编解码器,实现更高效率的即时通讯应用. AnyChat Platform Core SDK内核已经实现了部分常用的音视频编码.解码模块,如H.264视频编码.解码算法,ARM-WB.AAC.SPEEX.CELT等音频编码.解码算法.上层应用可以自己定义新的

音视频开发技术之排查故障信息

在开发,或是使用AnyChat Platform Core SDK的过程中,特别是在对AnyChat SDK不熟悉的情况下,遇到问题通常无从下手,这里我们给出较通用的故障分析.排查和解决方案: 一.服务器部分 服务器程序启动后,会在服务器程序所在目录生成一个日志文件:“AnyChatCoreServer.log”,典型的日志文件内容如下: 1.---------------------------Init Service--------------------------- 2.Current 

音视频即时通讯SDK有什么技术?可以做什么?

AnyChat SDK(AnyChat音视频互动开发平台)是一套跨平台的(*)即时通讯解决方案,基于先进的H.264视频编码标准.AAC音频编码标准与P2P技术,支持高清视频,整合了佰锐科技在音视频编码.多媒体通讯领域领先的开发技术和丰富的产品经验而设计的高质量.宽适应性.分布式.模块化的网络音视频互动平台. AnyChat音视频互动开发平台(SDK)包含了音视频处理模块(采集.编解码).流媒体管理模块(丢包重传.抖动平滑.动态缓冲).流媒体播放模块(多路混音.音视频同步)以及P2P网络模块(N

音视频即时通讯—Android 视频开发

移动互联网随着智能手机的普及应用越来越广泛,所谓移动互联网是将移动通信和互联网整合在一起,使移动设备(包括手机和上网本.Pad平台)可以随时随地地访问互联网资源和应用获取相应的信息和处理. 从2011年开始,“三网融合”正式被国务院纳入十二五计划并开始实施.国务院十分明确的把三网融合作为全面提高信息化水平的重要手段进行定位,彰显出三网融合在国家战略层面发展不可替代的重要性,也为三网融合在十二五期间的发展提出了明确的方向和目标.在同一的治理平台下,实现音频.视频.数据信号的传输和管理,提供各种宽带