录制接口:BRAC_API DWORD BRAC_StreamRecordCtrl(DWORD dwUserId, BOOL bStartRecord, DWORD dwFlags, DWORD dwParam, LPCTSTR lpUserStr);
API第一个参数表示录制对象,指录制某一个用户的音视频
开始录制以及停止录制均调用同一个API接口(如客户端为:BRAC_StreamRecordCtrlEx),通过第二个参数(bStartRecord)来控制,当bStartRecord=TRUE(1)时,表示开始录制,当bStartRecord=FALSE(0)时,表示停止录制。
对于合成录制,只需要通过第三个参数(dwFlags)加入特定的标志即可实现。标志位如下:
录像功能标志定义(API:BRAC_StreamRecordCtrl 传入参数)
var BRAC_RECORD_FLAGS_VIDEO = 0x00000001; // 录制视频
var BRAC_RECORD_FLAGS_AUDIO = 0x00000002; // 录制音频
var BRAC_RECORD_FLAGS_SERVER = 0x00000004; // 服务器端录制
var BRAC_RECORD_FLAGS_MIXAUDIO = 0x00000010; // 录制音频时,将其它人的声音混音后录制
var BRAC_RECORD_FLAGS_MIXVIDEO = 0x00000020; // 录制视频时,将其它人的视频迭加后录制
var BRAC_RECORD_FLAGS_ABREAST = 0x00000100; // 录制视频时,将其它人的视频并列录制
var BRAC_RECORD_FLAGS_STEREO = 0x00000200; // 录制音频时,将其它人的声音混合为立体声后录制
var BRAC_RECORD_FLAGS_SNAPSHOT = 0x00000400; // 拍照
var BRAC_RECORD_FLAGS_LOCALCB = 0x00000800; // 触发本地回调
var BRAC_RECORD_FLAGS_STREAM = 0x00001000; // 对视频流进行录制(效率高,但可能存在视频方向旋转的问题)
var BRAC_RECORD_FLAGS_USERFILENAME= 0x00002000; // 用户自定义文件名
当调用API开始录制时,相当于下达了一个录制任务,AnyChat内核将开始录制,可以在客户端调用API(BRAC_QueryUserState)来查询录制状态;通过第三个参数(dwFlags)可控制录制行为:是在客户端录制,还是在服务器录制;是录制音频,还是音视频一同录制;是录制单个用户,还是通话双方合成录制等,具体应用可参考后续的“录制功能示例”部分。
当调用API停止录制时,AnyChat内核会结束录制任务,同时触发上层应用的回调事件(如客户端为:BRAC_RecordSnapShotEx_CallBack),在回调事件中,将录制文件名(含路径)、录制时长、用户自定义参数等信息返回给上层应用。
AnyChat内核提供了两个自定义参数,一个是整形(dwParam),一个是字符串类型(lpUserStr),在开始录制(或结束录制)时通过API接口传入,如果开始录制、结束录制均为传入,则以结束录制时的值为准,在录制完成回调事件中返回给上层应用,如可以通过字符串类型自定义参数来传输一个上层应用的业务流水号,则可以实现在回调事件中将录制的文件名与业务流水号进行关联,保存在数据库中等功能。
- 一、说明
- 面向读者
- 技术支持
- 二、、录像功能介绍
- 1、概述
- 2、API接口定义
- 3、录像API调用
- 4、录制功能示例
- 5、拍照、录像自定义文件名
- 6、多路视频流合成录制时,选择指定的流进行录制
- 7、视频显示、录制过程中的裁剪模式
- 8、录像过程中取消录像
- 9、更新录像参数
- 10、PCM音频格式录制
- 11、多路流拍照
- 12、录像本地缓存机制
- 13、其他
- 2.1 录制方式
- 2.2 录制模式
- 2.3 录像服务参数设置
- 2.4 录像开发流程
- 第二章、录像服务器部署
- 1、Windows录像服务器部署
- 2、Linux录像服务器部署
- 3、录像服务配置说明
- 4、录像回放
- 5、注意事项
- 三、录像开发说明
- 3.1、录像常量定义
- 3.1.1 参数设置常量
- 3.1.2 录制标志常量
- 3.1.3 录像裁剪常量
- 3.2、录像及拍照API接口及参数说明
- 3.2.1 客户端录像接口
- 1)Web端录像接口
- 2)Android端录像接口
- 3)iOS端录像接口
- 3.2.2 服务端录像接口
- 1)Java录像接口
- 2)C#录像接口
- 3.3、录像及拍照回调事件说明
- 3.3.1 初始化回调事件
- 3.3.2 回调事件参数说明
- 四、录像功能示例代码
- 4.1 客户端单方录制
- 4.2 客户端合成流录制
- 4.3 服务器合成流录制
- 4.4 多路视频流的录制
- 4.5 多路视频流的拍照
- 4.6 录像时自定义文件名
- 4.7 PCM音频格式录制
- 五、录像常见问题
- 5.1、录像失败
- 无录像服务导致录像失败
- UDP不通导致录像失败
- 录制时间不够5秒,导致失败
- 核心与录像闪断导致录像失败
- 未按标准流程开发导致录像失败
- 无授权导致的录像失败
- 多录像服务导致的录像失败
- 5.2、音视频不同步
- 勾选p2p接口或静音检测接口,单服务器录像超过7分钟出现音视频不同步
- 摄像头不支持设置的帧率导致音视频不同步
- 本地PC的cpu100%导致音视频不同步
- 合成录制时,录制标记位不正常导致音视频不同步
- 网络丢包、延时等导致音视频不同步
- 某些摄像头的兼容问题导致的音视频不同步
- 5.3、录像音视频卡顿、杂音
- 网络异常导致视频卡顿、有杂音
- 码率设置过高,或者码率与对应的分辨率不匹配导致的卡顿
- 回音消除等参数未配置,导致的录制音频杂音
- 电子设备干扰导致的杂音
- 耳塞异常导致的电流音,杂音
- 码率设置过低导致马赛克问题
- 5.4、录像无音频或者视频黑屏
- 无音视频设备导致录制黑屏无声音
- 音视频设备打开异常,或者被其他程序占用导致的录制黑屏
- 在音视频设备打开之前开启录制导致的录制黑屏
- 240*320等特殊分辨率导致的录制黑屏无声音
- 5.5、录像服务异常
- 录像服务器所在路径过长导致的录像服务启动失败
- 240*320等分辨率设备录制时,低版本录像服务异常
- 多并发的合成录制事件促使CPU过高,导致录制服务异常
- 6.3以下版本录像服务假死导致的多录像服务异常问题
- 5.6、其他