錄制接口: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、其他