影音媒體文件合成方法與服務(wù)系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種影音媒體文件合成方法與服務(wù)系統(tǒng),特別是指一種基于瀏覽器開發(fā)的影音媒體文件合成方法與服務(wù)系統(tǒng)。
【背景技術(shù)】
[0002]目前市面上已有用來將屏幕畫面與語音講解加以結(jié)合而形成一.rmvb或.mp4多媒體文件的屏幕錄制應(yīng)用程序(APP)。此技術(shù)特別適用于制作例如計(jì)算機(jī)操作教學(xué)的教材,讓學(xué)習(xí)者通過播放該多媒體文件,而從畫面及講解中了解操作流程。
[0003]然而,利用屏幕錄制APP來制作前述多媒體文件的技術(shù),需在與該APP兼容且安裝有該APP的計(jì)算機(jī)裝置上執(zhí)行,若計(jì)算機(jī)裝置的操作系統(tǒng)或硬件架構(gòu)不支持該屏幕錄制APP,則無法執(zhí)行。
[0004]因此,需要提供一種影音媒體文件合成方法與服務(wù)系統(tǒng)來解決上述問題。
【發(fā)明內(nèi)容】
[0005]因此,本發(fā)明的目的即在于提供一種基于瀏覽器開發(fā)的影音媒體文件合成方法,使得屏幕錄制的行為不受操作系統(tǒng)或硬件架構(gòu)限制,無論在個(gè)人計(jì)算機(jī)、平板計(jì)算機(jī)或智能型手機(jī)都可通過瀏覽器執(zhí)行。
[0006]于是,本發(fā)明的影音媒體文件合成方法由一服務(wù)系統(tǒng)執(zhí)行,該服務(wù)系統(tǒng)供一終端裝置通過其瀏覽器連接,該方法包含以下步驟:
[0007](A)接收來自該終端裝置以串流方式傳送的對應(yīng)于一音頻文件的多個(gè)音頻RTP封包、音頻RTCP封包,以及對應(yīng)于一視頻文件的多個(gè)視頻RTP封包、視頻RTCP封包;
[0008](B)讀取第一個(gè)音頻RTCP封包中的時(shí)間戳記記錄為第一個(gè)音頻RTP封包的音頻絕對起始時(shí)間,另一方面讀取第一個(gè)視頻RTCP封包中的時(shí)間戳記記錄為第一個(gè)視頻RTP封包的視頻絕對起始時(shí)間;
[0009](C)針對接收到的音頻RTP封包,按封包序號寫入一音頻緩沖器,且針對接收到的視頻RTP封包,按封包序號寫入一視頻緩沖器;
[0010](D)從該音頻緩沖器的隊(duì)列中取出一音頻RTP封包,計(jì)算該封包的相對時(shí)間戳記與一在前的封包的相對時(shí)間戳記的差值,并依據(jù)該差值直接或間接地配合該音頻絕對起始時(shí)間產(chǎn)生該音頻RTP封包的播放時(shí)間戳記,另一方面從該視頻緩沖器的隊(duì)列中取出一視頻RTP封包,計(jì)算該封包的相對時(shí)間戳記與在前的封包的相對時(shí)間戳記的差值,并依據(jù)該差值直接或間接地配合該視頻絕對起始時(shí)間,產(chǎn)生該視頻RTP封包的播放時(shí)間戳記;以及
[0011](E)將該音頻RTP封包與視頻RTP封包連同其播放時(shí)間戳記寫入到一媒體文件。
[0012]本發(fā)明還提供一種影音媒體文件合成方法,該影音媒體文件合成方法由一服務(wù)系統(tǒng)執(zhí)行,該服務(wù)系統(tǒng)供一終端裝置通過該終端裝置的瀏覽器連接;該方法包括以下步驟:(A)接收來自該終端裝置以串流方式傳送的對應(yīng)于一音頻文件的多個(gè)音頻RTP封包、音頻RTCP封包,以及對應(yīng)于一視頻文件的多個(gè)視頻RTP封包、視頻RTCP封包;(B)讀取第一個(gè)音頻RTCP封包中的時(shí)間戳記記錄為第一個(gè)音頻RTP封包的音頻絕對起始時(shí)間,讀取第一個(gè)視頻RTCP封包中的時(shí)間戳記記錄為第一個(gè)視頻RTP封包的視頻絕對起始時(shí)間;(C)針對接收到的音頻RTP封包,寫入一音頻緩沖器,且針對接收到的視頻RTP封包,寫入一視頻緩沖器;(D)從該音頻緩沖器的隊(duì)列中取出一音頻RTP封包,計(jì)算該封包的相對時(shí)間戳記與一在前的封包的相對時(shí)間戳記的差值,并依據(jù)該差值直接或間接地配合該音頻絕對起始時(shí)間產(chǎn)生該音頻RTP封包的播放時(shí)間戳記,從該視頻緩沖器的隊(duì)列中取出一視頻RTP封包,計(jì)算該封包的相對時(shí)間戳記與在前的封包的相對時(shí)間戳記的差值,并依據(jù)該差值直接或間接地配合該視頻絕對起始時(shí)間,產(chǎn)生該視頻RTP封包的播放時(shí)間戳記;以及(E)將該音頻RTP封包與視頻RTP封包連同該音頻RTP封包與視頻RTP封包的播放時(shí)間戳記寫入到一媒體文件。
[0013]較佳地,該步驟(E)還包括比較該二封包的播放時(shí)間戳記的步驟:如果該音頻RTP封包的播放時(shí)間戳記(rtpATS)減視頻RTP封包的播放時(shí)間戳記(rtpVTS)的差值小于一預(yù)設(shè)閾值,則寫入該音頻RTP封包,如視頻RTP封包的播放時(shí)間戳記減音頻RTP封包的播放時(shí)間戳記的差值小于該預(yù)設(shè)閾值,則寫入該視頻RTP封包。
[0014]較佳地,如果該音頻RTP封包的播放時(shí)間戳記減視頻RTP封包的播放時(shí)間戳記的差值大于該預(yù)設(shè)閾值,則丟棄該音頻RTP封包,如視頻RTP封包的播放時(shí)間戳記減音頻RTP封包的播放時(shí)間戳記的差值大于該預(yù)設(shè)閾值,則丟棄該視頻RTP封包。
[0015]較佳地,該緩沖器中的每個(gè)單元可放一個(gè)RTP封包,該步驟(C)中每收到一個(gè)封包,會按照這個(gè)封包的序號插入到緩沖器其中一個(gè)單元中,藉此保證緩沖器中的封包是按序號排列的。
[0016]該步驟(C)之前,先判斷所接收的音頻RTP封包是否為ISAC格式,若否則丟棄封包。
[0017]本發(fā)明還提供一種服務(wù)系統(tǒng),該服務(wù)系統(tǒng)供至少一終端裝置通過該終端裝置的瀏覽器連接,并包括:一供該終端裝置連接的網(wǎng)絡(luò)服務(wù)器;一用于接收RTP封包及RTCP封包的多端控制單元;以及一媒體文件合成服務(wù)器,該媒體文件合成服務(wù)器將該多端控制單元接收的RTP封包及RTCP封包進(jìn)行解碼、同步以及媒體文件合成,共同完成前述的影音媒體文件合成方法。
[0018]本發(fā)明的功效在于,在HTML5架構(gòu)下,應(yīng)用網(wǎng)頁即時(shí)通信技術(shù),進(jìn)一步藉由音頻和視頻的時(shí)間戳記差值的閾值控制,來達(dá)到音視頻同步的效果,確保寫入的音頻封包和視頻封包的順序按照真實(shí)的時(shí)間戳記序列寫入,完成音頻與視頻的合成錄制。
【附圖說明】
[0019]本發(fā)明的其他的特征及功效,將在參照附圖的實(shí)施方式中清楚地呈現(xiàn),其中:
[0020]圖1是一系統(tǒng)圖,說明本發(fā)明的服務(wù)系統(tǒng)的構(gòu)成;
[0021]圖2是一流程圖,說明本發(fā)明的影音媒體文件合成方法的主要流程架構(gòu);
[0022]圖3是一流程圖,示意說明圖2中有關(guān)音頻數(shù)據(jù)獲取作業(yè)中的RTP音頻數(shù)據(jù)獲取作業(yè)的步驟;
[0023]圖4是一流程圖,示意說明圖2中有關(guān)音頻數(shù)據(jù)獲取作業(yè)中的RTCP音頻數(shù)據(jù)獲取作業(yè)的步驟;
[0024]圖5是一流程圖,示意說明圖2中有關(guān)合成作業(yè)中的預(yù)處理步驟;
[0025]圖6是一流程圖,示意說明音頻數(shù)據(jù)的合成步驟;以及
[0026]圖7是一流程圖,示意說明視頻數(shù)據(jù)的合成步驟。
[0027]主要組件符號說明:
[0028]I 服務(wù)系統(tǒng)S21音頻數(shù)據(jù)獲取作業(yè)
[0029]10 交換器S211?S214 RTP數(shù)據(jù)獲取作業(yè)步驟
[0030]11 網(wǎng)絡(luò)服務(wù)器S215RTCP數(shù)據(jù)獲取作業(yè)步驟
[0031]12 MCUS22影像數(shù)據(jù)獲取作業(yè)
[0032]13 MCU控制器S3合成作業(yè)
[0033]14 儲存器S31?S34 合成作業(yè)的預(yù)處理步驟
[0034]15 媒體文件合成服務(wù)器 S41?S49 音頻數(shù)據(jù)的合成步驟
[0035]9 終端裝置S51?S56 視頻數(shù)據(jù)的合成步驟
[0036]SI 前置預(yù)備作業(yè)
【具體實(shí)施方式】
[0037]在本發(fā)明被詳細(xì)描述之前,應(yīng)當(dāng)注意在以下的說明內(nèi)容中,類似的組件是以相同的編號來表不。
[0038]參閱圖1及圖2,本發(fā)明的影音媒體文件合成方法適合應(yīng)用于制作IT (informat1n technology,信息技術(shù))教學(xué)素材,讓使用者輕松地通過屏幕錄制產(chǎn)生視頻文件,并錄制語音講解而產(chǎn)生音頻文件。使用者可使用桌上型計(jì)算機(jī)、平板計(jì)算機(jī)或智能型手機(jī)等任何一種終端裝置9,只須要通過支持HTML5的瀏覽器即可利用本發(fā)明技術(shù)將視頻文件與音頻文件相結(jié)合,生成一內(nèi)容包含操作過程畫面與講解的媒體文件。
[0039]本發(fā)明的影音媒體文件合成方法的實(shí)施例由一服務(wù)系統(tǒng)I執(zhí)行,該服務(wù)系統(tǒng)I包括彼此通過交換器(switch) 10相連的一供該終端裝置9通過其瀏覽器連接的網(wǎng)絡(luò)服務(wù)器(web Server) 11、一多端控制單兀(Multipoint Control Unit,又稱 MCU) 12、一負(fù)責(zé)分派MCU12的接收與處理串流數(shù)據(jù)工作的MCU控制器13、一儲存器14以及一媒體文件合成服務(wù)器15。
[0040]該MCU12可布署為多臺計(jì)算器(圖未示)而進(jìn)行集群服務(wù),適應(yīng)大量數(shù)據(jù)的收發(fā)。MCU控制器13會搜集MCU的狀態(tài)信息,并按照負(fù)載均衡的原則分配合適的計(jì)算器來處理串流數(shù)據(jù)。
[0041]該儲存器14作為服務(wù)系統(tǒng)I中各個(gè)服務(wù)器11、15及MCU12的共用儲存媒體,用來儲存錄制好的媒體文件和臨時(shí)文件。
[0042]在本發(fā)明的影音媒體文件合成方法的實(shí)施例執(zhí)行之前,先進(jìn)行圖2所示的前置預(yù)備作業(yè)(SI),使用者通過其終端裝置9的瀏覽器登入服務(wù)主頁面(圖未示)。該服務(wù)主頁面的連結(jié)為該網(wǎng)絡(luò)服務(wù)器11發(fā)布。藉由HTML5的網(wǎng)頁即時(shí)通信(WebRTC)技術(shù),終端裝置9通過瀏覽器直接訪問該網(wǎng)絡(luò)服務(wù)器11,將使用者屏幕錄制的圖像編碼成視頻格式的視頻文件(例如MPEG、H.264等視頻編碼格式),且將使用者錄音的音頻數(shù)據(jù)編碼為音頻格式的音頻文件(例如PCM、WAV、MP3等音頻編碼格式)。當(dāng)使用者在該服務(wù)主頁面操作畫面分享以及語音分享功能,瀏覽器將視頻格式數(shù)據(jù)以及音頻格式數(shù)據(jù)分別編碼后打包成RTP(實(shí)時(shí)傳輸協(xié)議,Real-time Transport Protocol)封包以及RTCP(實(shí)時(shí)傳輸控制協(xié)議,Real-timeTransport Control Protocol)封包,該等RTP封包及RTCP封包發(fā)送給前述MCU12。RTP封包包括包頭及負(fù)載數(shù)據(jù)。包頭主要包括序號(Sequence Number)以及時(shí)間戳記(time stamp)。由于RTCP負(fù)責(zé)管理傳輸質(zhì)量,因此RTCP封包由數(shù)據(jù)傳輸端周期性地傳送,封包內(nèi)容含有已發(fā)送的封包的數(shù)量、丟失的封包的數(shù)量等統(tǒng)計(jì)數(shù)據(jù)。
[0043]媒體文件合成服務(wù)器15是執(zhí)行本發(fā)明的影音媒體文件合成方法的主要部分,其將MCU12接收的RTP封包及RTCP封包進(jìn)行解碼、同步以及媒體文件合成,最后儲存到該儲存器14。
[0044]本發(fā)明的影音媒體文件合成方法的實(shí)施例,主要包含圖2所示的以下步驟:
[0045]步驟S21—由MCU12接收來自該終端裝置9以串流方式傳送的對應(yīng)于該音頻文件的音頻RTP封包、音頻RTCP封包(步驟S21)。另一方面,在步驟S22中,MCU12接收對應(yīng)于該視頻文件的多個(gè)視頻RTP封包、視頻RTCP封包(步驟S22)。詳細(xì)步驟將在下文搭配圖3及圖4說明。
[0046]步驟S3—合成作業(yè)。詳細(xì)步驟將在下文搭配圖5至圖7說明。完成媒體文件錄制后,即關(guān)閉作業(yè)并結(jié)束流程。
[0047]在此以音頻數(shù)據(jù)獲取作業(yè)舉例說明,影像數(shù)據(jù)獲取作業(yè)的詳細(xì)流程可依此類推。有關(guān)音頻數(shù)據(jù)獲取作業(yè)又可分為平行進(jìn)行、不分順序的圖3所示的音頻RTP數(shù)據(jù)獲取作業(yè),以及圖4所示的音頻RTCP數(shù)據(jù)獲取