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

音视频录制是音视频解决方案中最重要的功能特性之一,特别是一些行业应用中音视频录制是最基本的功能需求,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-08-01 06:47:40

音视频即时通讯的音视频录制开发的相关文章

音视频即时通讯 功能需求汇总

即时通讯开发,也叫音视频即时通信开发.随着互联网的发展,人们之间的交流逐步从电话移向网络.每天都有相当多的人在使用各种网络交流工具,如Anychat,腾讯QQ,ICQ,MSN,新浪微博. 可以看出人们对于网络上即时的沟通方式是非常敏锐的,所能容纳的程度也远远超过我们的预计.然而目前大部分网络交流工具都还是以文字为主,语音视频功能大部分还是不够成熟,完全通过网络实现语音视频需要考虑到很多方面,如:硬件.软件.技术.网络:等等.纯文字沟通方式效率非常低而且也不符合人们平素的习惯,作为一种消遣的工具尚

即时通讯 手机音视频技术开发方案

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

即时通讯 iOS音视频技术开发

随着iOS的强势面世,伴随着其出色的应用,一大堆开发人员在捣鼓IOS平台的开发,而基于iOS的音视频二次开发应用也为更多的程序员猛攻猛打.相信大家也使用过QQ的语音视频对话功能,但是不知道大家有没有试过自己来开发一个基于IOS平台的音视频即时通讯的应用,这个应用必须能够做到跨平台 支持iOS平台设备上的音频即时通讯应用开发 提供Objective-C语言API接口,开放示例源代码 集成H.264.AAC.AMR等编解码技术 封装音视频的采集.编解码.传输.显示和播放等模块 支持Android.W

iOS平台上的音视频即时通讯应用开发

现在IOS很是火热,一大堆开发人员在捣鼓IOS平台的开发,相信大家也使用过QQ的语音视频对话功能,但是不知道大家有没有试过自己来开发一个基于IOS平台的音视频即时通讯的应用,这个应用必须能够做到跨平台 支持iOS平台设备上的音频即时通讯应用开发 提供Objective-C语言API接口,开放示例源代码 集成H.264.AAC.AMR等编解码技术 封装音视频的采集.编解码.传输.显示和播放等模块 支持Android.Web.PC等设备和iOS之间的互联互通 想要在IOS平台下实现音视频通信,最快捷

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

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

如何设置视频的帧率、分辨率、码率来调节音视频即时通讯的质量

在通过网络进行音视频即使通讯的时候,选择合适的视频质量参数就需要根据实际的系统运行环境综合来决定,下面我们针对常见的网络环境给出一些建议供参考. 目前常见的网络主要有四种类型:ADSL拨号接入方式.光纤接入方式.3G拨号接入方式.局域网. ADSL拨号接入方式是一种非对称的网络接入,下行流量通常有2Mbps.4Mbps.6Mbps等,而上行流量通常都是512kbps,即上行速率和下行速率是不对称的.此时如果需要使用AnyChat进行音视频的交互,则上传流量只能用512kbps作为参考值,适合的分

2014年音视频即时通讯市场的割据

当腾讯微信几年下来获取了几亿用户量之后,上个月双11晚上,腾讯微信正式推出"微信电话本"应用,利用网络通信技术,微信一键登录之后使用流量便可与微信好友直接通话,整体交互界面.流程和体验与手机打电话别无二致,关键只需耗费不需要支付其他费用就可以实现高清免费视频通话功能.与IM应用的语音通话功能相比,微信电话本的通话质量更高,而且可以直接拨打手机通讯录好友,应用场景更广,微信挑战三大运营商的声音不绝于耳! 就这样,腾讯在用微信大力挫伤传统通信的短信业务之后,又开始了对语音通话新一轮的冲击.

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

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

音视频即时通讯开发中音频模式的采集

在很多即时通讯应用中,会根据应用场景的不同,需要对音频输入源进行选择,不同的应用场景对应不同的音频工作模式.需要支持多种音频工作(采集)模式,包括:     1.发言模式(默认):自动选择麦克风为音频输入源设备,用户说话的声音被麦克风采集,启动音频特效处理(包括:回音消除.静音检测.噪音抑制.自动增溢),该模式通常应用于互动交流,用户发言讨论等场合:     2.放歌模式:自动选择立体声混音输入源设备,本地计算机所播放的声音被采集,同时SDK内部会自动屏蔽其它用户的声音(如果不屏蔽,则用户的声音