日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

在服務(wù)器端錄制語(yǔ)音視頻

系統(tǒng) 1918 0

  在我以前的一篇博文《 實(shí)現(xiàn)語(yǔ)音視頻錄制(demo源碼) 》中,詳細(xì)介紹了在網(wǎng)絡(luò)視頻聊天系統(tǒng)中的客戶端如何實(shí)現(xiàn)語(yǔ)音視頻的錄制,而近段時(shí)間了,有幾個(gè)朋友問(wèn)起,如果想在服務(wù)端實(shí)現(xiàn)錄制功能,該怎么做了?其中有個(gè)朋友的需求是這樣的:他的系統(tǒng)是一個(gè)在線培訓(xùn)系統(tǒng),需要在服務(wù)端將指定老師的講課(包括語(yǔ)音和視頻)錄制下來(lái),并保存為.mp4文件,以便隨時(shí)可以查閱這些文件。

  本文我們就做一個(gè)demo實(shí)現(xiàn)類(lèi)似的功能,演示如何在服務(wù)端錄制某個(gè)指定在線用戶的語(yǔ)音視頻,并提供三種錄制模式:錄制語(yǔ)音視頻、僅錄制語(yǔ)音、僅錄制視頻。

一.實(shí)現(xiàn)原理

  要實(shí)現(xiàn)這個(gè)demo,需涉及到以下幾個(gè)技術(shù):

(1)在服務(wù)端采集指定用戶的語(yǔ)音、視頻數(shù)據(jù)。

(2)在服務(wù)端將圖像使用H264編碼,語(yǔ)音數(shù)據(jù)使用AAC編碼。

(3)將編碼后的數(shù)據(jù)按MP4格式的要求,保存為MP4文件。

  同 實(shí)現(xiàn)語(yǔ)音視頻錄制(demo源碼) 一樣,我們?nèi)匀换贠MCS和MFile來(lái)實(shí)現(xiàn)上述功能,下面是對(duì)應(yīng)的原理。

(1)在OMCS的結(jié)構(gòu)中,客戶端之間可以相互獲取到對(duì)方的攝像頭和麥克風(fēng)的數(shù)據(jù),所以,服務(wù)端可以作為一個(gè)虛擬的客戶端用戶(比如ID為“_Server”),連接到同一個(gè)進(jìn)程中的OMCS多媒體服務(wù)器。

(2)在服務(wù)端動(dòng)態(tài)創(chuàng)建DynamicCameraConnector組件,連接到指定用戶的攝像頭。

(3)在服務(wù)端動(dòng)態(tài)創(chuàng)建兩個(gè)MicrophoneConnector組件,接到指定用戶的麥克風(fēng)。

(4)調(diào)用DynamicCameraConnector的GetCurrentImage方法,即可獲得所連接的攝像頭采集的視頻幀。

(5)預(yù)定MicrophoneConnector的AudioDataReceived事件,即可獲得所連接的麥克風(fēng)采集的音頻數(shù)據(jù)。

(6)使用MFile將上述結(jié)果進(jìn)行編碼并寫(xiě)入mp4文件。

二.實(shí)現(xiàn)代碼

View Code

  如果熟悉OMCS和MFile的使用,理解上面的代碼是非常容易的,而且本文這個(gè)Demo就是在 語(yǔ)音視頻入門(mén)Demo 的基礎(chǔ)上改寫(xiě)而成的,只是有幾點(diǎn)是需要注意:

(1)由于在服務(wù)端錄制時(shí),不需要顯示被錄制用戶的視頻,所以不用設(shè)置DynamicCameraConnector的Viewer(即不用調(diào)用其SetViewer方法來(lái)設(shè)置繪制視頻的面板)。

(2)同樣,在服務(wù)端錄制時(shí),不需要播放被錄制用戶的語(yǔ)音,所以,將MicrophoneConnector的Mute屬性設(shè)置為true即可。

(3)如果需要錄制視頻,則通過(guò)一個(gè)定時(shí)器(videoTimer)每隔100毫秒(即10fps)從DynamicCameraConnector采集一幀圖片,并寫(xiě)入錄制文件。

(4)如果錄制的僅僅是圖像視頻(不包括音頻),采用的視頻編碼仍然為H264,但生成的錄制文件也是.mp4文件,而非.h264文件,否則,生成的視頻文件將無(wú)法正常播放。

三.Demo下載

RecordOnServerDemo.rar

  服務(wù)端運(yùn)行起來(lái)的截圖如下所示:

在服務(wù)器端錄制語(yǔ)音視頻

  在運(yùn)行該demo時(shí),仍然可以像 語(yǔ)音視頻入門(mén)Demo 一樣,兩個(gè)客戶端之間相互視頻對(duì)話,而且同時(shí),在服務(wù)端錄制其中一個(gè)客戶端的視頻。

  如你所想,我們可以將這個(gè)demo稍微做些改進(jìn),就可以支持在服務(wù)端同時(shí)錄制多個(gè)用戶的語(yǔ)音視頻。

  然而,就像本文開(kāi)頭所說(shuō)的,本Demo所展示的功能非常適合在類(lèi)似網(wǎng)絡(luò)培訓(xùn)的系統(tǒng)中,用于錄制老師的語(yǔ)音/視頻。但如果是在視頻聊天系統(tǒng)中,需要將聊天雙方的語(yǔ)音視頻錄制到一個(gè)文件中,那么,就要復(fù)雜一些了,那需要涉及到圖像拼接技術(shù)和混音技術(shù)了。我會(huì)在下篇文章中介紹另一個(gè)Demo,它就實(shí)現(xiàn)了這樣的目的。

在服務(wù)器端錄制語(yǔ)音視頻


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 溧水县| 牟定县| 通州区| 余干县| 曲松县| 大连市| 长顺县| 辽宁省| 平泉县| 北票市| 泰和县| 习水县| 罗源县| 海安县| 宁安市| 南江县| 沾化县| 文化| 辽宁省| 会理县| 镇江市| 阳朔县| 城步| 新和县| 辽中县| 福鼎市| 怀来县| 杂多县| 通河县| 哈尔滨市| 河北省| 阿克陶县| 会同县| 多伦县| 绥中县| 松阳县| 黎平县| 雷州市| 乐昌市| 梅河口市| 田林县|