日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php框架 > 框架設計 > 即時通訊 音視頻錄制技術

即時通訊 音視頻錄制技術

來源:程序員人生   發布時間:2015-01-12 08:59:05 閱讀次數:3641次

音視頻錄制是音視頻解決方案中最重要的功能特性之1,特別是1些行業利用中音視頻錄制是最基本的功能需求,AnyChat作為業界1流的跨平臺音視頻解決方案,在音視頻錄制方面也提供了非常完善的整體解決方案,概括起來有以下特點:

1.   可針對單個用戶的音頻、視頻進行錄制;

2.   可針對通話雙方的音頻、視頻合成錄制,支持畫中畫、并列模式等多種合成方式

3.   可以自定義錄制參數,包括錄制碼率、視頻辯白率等;

4.   錄制的視頻格式可自定義,支持MP4(默許)、WMVFLVMP3等;

5.   可以在客戶端錄制,也能夠在中心服務器錄制

6.   可以在客戶端進行音視頻合成,中心服務器對合成音視頻流錄制,錄相服務器支持高并發;

7.   客戶端錄制支持的平臺包括:WindowsWebAndroidiOSLinux

8.   服務器錄制支持的平臺包括:WindowsLinuxx86x64);

9.   提供客戶端錄制API服務器錄制API接口,與上層業務無縫集成;


1、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=⑴);

3.   

4.  // 服務器錄相回調函數定義(擴大)

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

復制代碼

2、錄制API調用
   API第1個參數表示錄制對象,指錄制某1個用戶的音視頻,對合成錄制,只需要通過第3個參數(dwFlags)加入特定的標志便可實現。


   開始錄制和停止錄制均調用同1個API接口(如客戶端為:BRAC_StreamRecordCtrlEx),通過第2個參數(bStartRecord)來控制,當bStartRecord=TRUE1)時,表示開始錄制,當bStartRecord=FALSE0)時,表示停止錄制。


   當調用API開始錄制時,相當于下達了1個錄制任務,AnyChat內核將開始錄制,可以在客戶端調用APIBRAC_QueryUserState)來查詢錄制狀態;通過第3個參數(dwFlags)可控制錄制行動:是在客戶端錄制,還是在服務器錄制;是錄制音頻,還是音視頻1同錄制;是錄制單個用戶,還是通話雙方合成錄制等,具體利用可參考后續的錄制功能示例部份。


   當調用API停止錄制時,AnyChat內核會結束錄制任務,同時觸發上層利用的回調事件(如客戶端為:BRAC_RecordSnapShotEx_CallBack),在回調事件中,將錄制文件名(含路徑)、錄制時長、用戶自定義參數等信息返回給上層利用。


   AnyChat內核提供了兩個自定義參數,1個是整形(dwParam),1個是字符串類型(lpUserStr),在開始錄制時通過API接口傳入,在錄制完成回調事件中返回給上層利用,如可以通過字符串類型自定義參數來傳輸1個上層利用的業務流水號,則可以實現在回調事件中將錄制的文件名與業務流水號進行關聯,保存在數據庫中等功能。


3、錄制功能示例
下面以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!");

復制代碼

4、其它
1、客戶端可以通過APIBRAC_SetSDKOption(BRAC_SO_RECORD_TMPDIR, path)來設置錄相文件保存路徑;

2、有關錄相文件改名:錄制完成以后,AnyChat將觸發上層利用的錄制完成回調事件,在回調事件中返回錄制文件名(含路徑),上層利用可以在回調事件中調用操作系統提供的文件改名函數(如Windows平臺為:MoveFile函數)對文件進行改名操作,AnyChat內核本身沒有提供對錄制文件名進行修改的接口;

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 天堂精品视频 | 日韩欧美视频在线 | 爱爱免费视频网站 | 福利视频亚洲 | 亚洲国产精品一区二区尤物区 | 欧美黑人疯狂性受xxxxx野外 | 色婷婷综合国产精品一区 | 精品久久久久久久久久中文字幕 | 在线 日本 制服 中文 欧美 | 欧美大片一区二区三区 | 欧美日韩成人在线观看 | 欧美福利在线 | 精品一性一色一乱农村 | 国产老女人精品毛片久久 | 欧美婷婷| 一区二区电影网 | 国内精品一区二区三区 | 国产97在线 | 日韩 | 日韩黄色网址 | 91香蕉国产| 蜜臀麻豆 | 精品国产一区二区三区四区四 | 久久中出 | 日韩区一区二 | 99免费精品视频 | 国产精品久久久久久久9999 | 国产在线视频网站 | www.夜夜骑.com | 亚洲精品乱码久久久久久蜜桃91 | 91啪国产在线 | 二区视频 | 精品一区二区三区在线视频 | 黄色免费视频 | 国产一区免费在线 | 国产1区在线 | 欧美天天 | 亚洲一级片 | 18久久久 | 国产精品久久国产精品 | 国产成人av一区二区三区 | 日韩一区二区三区免费 |