本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,更具體的涉及一種鋼琴視頻教學(xué)中的同步方法及系統(tǒng)。
背景技術(shù):
鋼琴是目前的娛樂手段之一,隨著社會(huì)的發(fā)展,兒童中上鋼琴課程的比例是越來越高,以及隨著互聯(lián)網(wǎng)的普及推廣,遠(yuǎn)程教學(xué)在信息發(fā)達(dá)的今天已經(jīng)成為一種常見的教學(xué)方式。
網(wǎng)絡(luò)教學(xué)課堂注重的是能夠?qū)崿F(xiàn)教學(xué)現(xiàn)場(chǎng)的視音頻信號(hào)的同步錄制,并能夠在網(wǎng)上進(jìn)行實(shí)時(shí)直播,滿足鋼琴課程的需要。
但是現(xiàn)有的網(wǎng)絡(luò)教學(xué)課堂存在客戶端收到的視音頻信號(hào)不同步,學(xué)生無(wú)法清楚的學(xué)習(xí)鋼琴教學(xué)的內(nèi)容,從而影響視頻教學(xué)質(zhì)量的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種鋼琴視頻教學(xué)中的同步方法及系統(tǒng),用以解決現(xiàn)有技術(shù)中客戶端收到的視音頻信號(hào)不同步,學(xué)生無(wú)法清楚的學(xué)習(xí)鋼琴教學(xué)的內(nèi)容,從而影響視頻教學(xué)質(zhì)量的問題。
本發(fā)明實(shí)施例提供一種鋼琴視頻教學(xué)中的同步方法,包括:獲取鋼琴教學(xué)的音頻數(shù)據(jù)和視頻數(shù)據(jù);從所述音頻數(shù)據(jù)中獲取音頻數(shù)據(jù)開始采集的時(shí)間,從所述視頻數(shù)據(jù)中獲取視頻數(shù)據(jù)開始采集的時(shí)間;將所述音頻數(shù)據(jù)開始采集的時(shí)間和所述視頻數(shù)據(jù)開始采集的時(shí)間設(shè)定為主時(shí)間戳;其中,所述音頻數(shù)據(jù)開始采集的時(shí)間和所述視頻數(shù)據(jù)開始采集的時(shí)間相同;
對(duì)所述音頻數(shù)據(jù)及所述視頻數(shù)據(jù)分別進(jìn)行分塊處理,形成多個(gè)音頻數(shù)據(jù)塊及多個(gè)視頻數(shù)據(jù)塊;其中,所述音頻數(shù)據(jù)塊和所述視頻數(shù)據(jù)塊的數(shù)量相等;
在所述多個(gè)音頻數(shù)據(jù)塊中的每一個(gè)音頻數(shù)據(jù)塊前增加音頻子幀頭形成音頻子幀,在所述多個(gè)視頻數(shù)據(jù)塊中的每一個(gè)視頻數(shù)據(jù)塊前增加視頻子幀頭形成視頻子幀;其中,所述音頻子幀頭中存儲(chǔ)有所述音頻子幀的數(shù)據(jù)長(zhǎng)度,所述視頻子幀頭中存儲(chǔ)有所述視頻子幀的數(shù)據(jù)長(zhǎng)度;
在多個(gè)所述音頻子幀前增加音頻幀頭形成音頻幀,以及在多個(gè)所述視頻子幀前增加視頻幀頭形成視頻幀;
根據(jù)采樣率和所述每個(gè)音頻數(shù)據(jù)塊的長(zhǎng)度確定每個(gè)第一子幀相對(duì)偏移時(shí)間,所述每個(gè)第一子幀相對(duì)偏移時(shí)間和所述主時(shí)間戳構(gòu)成同步幀;其中,所述第一子幀相對(duì)偏移時(shí)間為所述第一子幀相對(duì)所述主時(shí)間戳的偏移量;
在所述同步幀前增加總幀頭,并按照所述總幀頭、所述同步幀、所述視頻幀、所述音頻幀的順序構(gòu)成總幀;
當(dāng)接收到視頻播放請(qǐng)求時(shí),根據(jù)所述總幀確定所述視頻幀和所述音頻幀,然后根據(jù)所述同步幀確定每個(gè)所述第一子幀的播放時(shí)間,當(dāng)目標(biāo)第一子幀的播放時(shí)間到來時(shí),根據(jù)所述視頻幀和所述音頻幀提取目標(biāo)視頻子幀和目標(biāo)音頻子幀,并發(fā)送所述目標(biāo)視頻子幀和所述目標(biāo)音頻子幀;其中,所述目標(biāo)第一子幀為當(dāng)前需要發(fā)送的第一子幀。
優(yōu)選地,所述總幀頭中依次包括:
總幀長(zhǎng)、視頻幀起始偏移和音頻幀起始偏移;其中,所述視頻幀起始偏移為所述視頻幀頭相對(duì)于所述總幀頭的偏移量,所述音頻幀起始偏移為所述音頻幀頭相對(duì)于所述總幀頭的偏移量。
優(yōu)選地,所述視頻幀頭中依次包括:視頻幀長(zhǎng)、視頻總子幀數(shù)和多個(gè)視頻子幀中每個(gè)視頻子幀相對(duì)偏移,所述視頻子幀相對(duì)偏移為所述視頻子幀頭相對(duì)視頻幀頭的偏移量;所述音頻幀頭中依次包括:音頻幀長(zhǎng)、音頻總子幀數(shù)和多個(gè)音頻子幀中每個(gè)音頻子幀相對(duì)偏移,所述音頻子幀相對(duì)偏移為所述音頻子幀頭相對(duì)音頻幀頭的偏移量。
優(yōu)選地,所述根據(jù)所述視頻幀和所述音頻幀提取目標(biāo)視頻子幀和目標(biāo)音頻子幀具體包括:
根據(jù)所述總幀頭中存儲(chǔ)的所述視頻幀起始偏移和所述音頻幀起始偏移,確定所述視頻幀頭和所述音頻幀頭;
根據(jù)所述視頻幀頭中存儲(chǔ)的目標(biāo)視頻子幀相對(duì)偏移,確定目標(biāo)視頻子幀頭,以及根據(jù)所述音頻幀頭中存儲(chǔ)的目標(biāo)音頻子幀相對(duì)偏移確定目標(biāo)音頻子幀頭;
根據(jù)所述目標(biāo)視頻子幀頭中存儲(chǔ)的目標(biāo)視頻子幀的數(shù)據(jù)長(zhǎng)度提取所述目標(biāo)視頻子幀,根據(jù)所述目標(biāo)音頻子幀頭中存儲(chǔ)的目標(biāo)音頻子幀的數(shù)據(jù)長(zhǎng)度提取所述目標(biāo)音頻子幀。
本發(fā)明實(shí)施例提供一種鋼琴視頻教學(xué)中的同步系統(tǒng),包括:獲取單元,用于獲取鋼琴教學(xué)的音頻數(shù)據(jù)和視頻數(shù)據(jù);從所述音頻數(shù)據(jù)中獲取音頻數(shù)據(jù)開始采集的時(shí)間,從所述視頻數(shù)據(jù)中獲取視頻數(shù)據(jù)開始采集的時(shí)間;將所述音頻數(shù)據(jù)開始采集的時(shí)間和所述視頻數(shù)據(jù)開始采集的時(shí)間設(shè)定為主時(shí)間戳;其中,所述音頻數(shù)據(jù)開始采集的時(shí)間和所述視頻數(shù)據(jù)開始采集的時(shí)間相同;
分塊單元,用于所述音頻數(shù)據(jù)及所述視頻數(shù)據(jù)分別進(jìn)行分塊處理,形成多個(gè)音頻數(shù)據(jù)塊及多個(gè)視頻數(shù)據(jù)塊;其中,所述音頻數(shù)據(jù)塊和所述視頻數(shù)據(jù)塊的數(shù)量相等;
第一增加單元,用于在所述多個(gè)音頻數(shù)據(jù)塊中的每一個(gè)音頻數(shù)據(jù)塊前增加音頻子幀頭形成音頻子幀,在所述多個(gè)視頻數(shù)據(jù)塊中的每一個(gè)視頻數(shù)據(jù)塊前增加視頻子幀頭形成視頻子幀;其中,所述音頻子幀頭中存儲(chǔ)有所述音頻子幀的數(shù)據(jù)長(zhǎng)度,所述視頻子幀頭中存儲(chǔ)有所述視頻子幀的數(shù)據(jù)長(zhǎng)度;
第二增加單元,用于在多個(gè)所述音頻子幀前增加音頻幀頭形成音頻幀,以及在多個(gè)所述視頻子幀前增加視頻幀頭形成視頻幀;
第一確定單元,用于根據(jù)采樣率和所述每個(gè)音頻數(shù)據(jù)塊的長(zhǎng)度確定每個(gè)第一子幀相對(duì)偏移時(shí)間,所述每個(gè)第一子幀相對(duì)偏移時(shí)間和所述主時(shí)間戳構(gòu)成同步幀,所述第一子幀相對(duì)偏移時(shí)間為所述第一子幀相對(duì)所述主時(shí)間戳的偏移量;
構(gòu)成單元,用于在所述同步幀前增加總幀頭,并按照所述總幀頭、所述同步幀、所述視頻幀、所述音頻幀的順序構(gòu)成總幀;
第二確定單元,用于當(dāng)接收到視頻播放請(qǐng)求時(shí),根據(jù)所述總幀確定所述視頻幀和所述音頻幀,然后根據(jù)所述同步幀確定每個(gè)所述第一子幀的播放時(shí)間,
提取單元,用于當(dāng)目標(biāo)第一子幀的播放時(shí)間到來時(shí),根據(jù)所述視頻幀和所述音頻幀提取目標(biāo)視頻子幀和目標(biāo)音頻子幀,并發(fā)送所述目標(biāo)視頻子幀和所述目標(biāo)音頻子幀;其中,所述目標(biāo)第一子幀為當(dāng)前需要發(fā)送的第一子幀。
優(yōu)選地,所述總幀頭中依次包括:
總幀長(zhǎng)、視頻幀起始偏移和音頻幀起始偏移,所述視頻幀起始偏移為所述視頻幀頭相對(duì)于所述總幀頭的偏移量,所述音頻幀起始偏移為所述音頻幀頭相對(duì)于所述總幀頭的偏移量。
優(yōu)選地,所述視頻幀頭中依次包括:視頻幀長(zhǎng)、視頻總子幀數(shù)和多個(gè)視頻子幀中每個(gè)視頻子幀相對(duì)偏移,所述視頻子幀相對(duì)偏移為所述視頻子幀頭相對(duì)視頻幀頭的偏移量;所述音頻幀頭存儲(chǔ)的數(shù)據(jù)依次為音頻幀長(zhǎng)、音頻總子幀數(shù)和多個(gè)音頻子幀中每個(gè)音頻子幀相對(duì)偏移,所述音頻子幀相對(duì)偏移為所述音頻子幀頭相對(duì)音頻幀頭的偏移量。
優(yōu)選地,所述提取單元包括:
第一確定模塊,根據(jù)所述總幀頭中存儲(chǔ)的所述視頻幀起始偏移和所述音頻幀起始偏移確定所述視頻幀頭和所述音頻幀頭;
第二確定模塊,用于根據(jù)所述視頻幀頭中存儲(chǔ)的目標(biāo)視頻子幀相對(duì)偏移確定目標(biāo)視頻子幀頭,以及根據(jù)所述音頻幀頭中存儲(chǔ)的目標(biāo)音頻子幀相對(duì)偏移確定目標(biāo)音頻子幀頭;
提取模塊,用于根據(jù)所述目標(biāo)視頻子幀頭中存儲(chǔ)的目標(biāo)視頻子幀的數(shù)據(jù)長(zhǎng)度提取所述目標(biāo)視頻子幀,根據(jù)所述目標(biāo)音頻子幀頭中存儲(chǔ)的目標(biāo)音頻子幀的數(shù)據(jù)長(zhǎng)度提取所述目標(biāo)音頻子幀。
本發(fā)明實(shí)施例中,將接收到視頻數(shù)據(jù)和音頻數(shù)據(jù)分別進(jìn)行分塊并組成視頻子幀和音頻子幀,再將音頻子幀和視頻子幀分別組成音頻幀和視頻幀,然后構(gòu)造同步幀、將音頻幀、視頻幀以及同步幀增加總幀頭構(gòu)成總幀,當(dāng)接收到播放請(qǐng)求時(shí),根據(jù)總幀中同步幀確定每個(gè)第一子幀的播放時(shí)間,當(dāng)目標(biāo)第一子幀的播放時(shí)間到來時(shí),根據(jù)視頻幀起始偏移和音頻幀起始偏移確定音頻幀頭和視頻幀頭,進(jìn)而根據(jù)視頻幀頭和音頻幀頭確定目標(biāo)視頻子幀頭和目標(biāo)音頻子幀頭從而根據(jù)目標(biāo)視頻子幀頭和目標(biāo)音頻子幀頭中分別存儲(chǔ)的視頻子幀的數(shù)長(zhǎng)度據(jù)和音頻子幀的數(shù)據(jù)長(zhǎng)度提取目標(biāo)視頻子幀和目標(biāo)音頻子幀,對(duì)目標(biāo)視頻子幀和目標(biāo)音頻子幀同時(shí)發(fā)送,實(shí)現(xiàn)了客戶端視頻和音頻的同步,且利用一幀一幀的發(fā)送數(shù)據(jù)使得視頻和音頻的同步效率高,學(xué)生可以清楚的學(xué)習(xí)鋼琴教學(xué)的內(nèi)容,從而提高了視頻教學(xué)的質(zhì)量。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1a是根據(jù)一示例性實(shí)施例示出的一種鋼琴視頻教學(xué)中的同步方法的實(shí)施環(huán)境示意圖;
圖1b是根據(jù)一示例性實(shí)施例示出的一種鋼琴視頻教學(xué)中的同步方法的流程圖;
圖2是根據(jù)一示例性實(shí)施例示出的一種鋼琴視頻教學(xué)中的同步方法的流程圖;
圖3是根據(jù)一示例性實(shí)施例示出的一種鋼琴視頻教學(xué)中的同步系統(tǒng)的框圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
圖1a是根據(jù)一示例性實(shí)施例示出的一種鋼琴視頻教學(xué)中的同步方法的實(shí)施環(huán)境示意圖。如圖1a所示,該實(shí)施環(huán)境包括主終端01、從終端02和服務(wù)器03。主終端01和從終端02分別通過網(wǎng)絡(luò)與服務(wù)器03連接,該網(wǎng)絡(luò)可以為有線網(wǎng)絡(luò),也可以為無(wú)線網(wǎng)絡(luò)。其中,從終端02上安裝有視頻播放應(yīng)用,服務(wù)器03可以提供視頻播放服務(wù)。
其中,服務(wù)器03可以為一個(gè)單獨(dú)的服務(wù)器,也可以為一個(gè)服務(wù)器集群。當(dāng)服務(wù)器03為一個(gè)單獨(dú)的服務(wù)器時(shí),由該單獨(dú)服務(wù)器完成本發(fā)明實(shí)施例中服務(wù)器所執(zhí)行的功能;當(dāng)服務(wù)器03為一個(gè)服務(wù)器集群時(shí),由該集群中的各個(gè)服務(wù)器配合完成本發(fā)明實(shí)施例提供的視頻直播應(yīng)用中的互動(dòng)方法。
其中,主終端01和從終端02均可以為臺(tái)式計(jì)算機(jī)、智能手機(jī)、平板電腦、電子書閱讀器、mp3(movingpictureexpertsgroupaudiolayeriii,動(dòng)態(tài)影像專家壓縮標(biāo)準(zhǔn)音頻層面3)播放器、mp4(movingpictureexpertsgroupaudiolayeriv,動(dòng)態(tài)影像專家壓縮標(biāo)準(zhǔn)音頻層面3)播放器、膝上型便攜計(jì)算機(jī)及可穿戴智能設(shè)備,如智能手環(huán)等中的任一種。
圖1b是根據(jù)一示例性實(shí)施例示出的一種鋼琴視頻教學(xué)中的同步方法的流程圖,如圖1所示,該鋼琴視頻教學(xué)中的同步方法用于服務(wù)器中,包括以下步驟。
在步驟101中,獲取鋼琴教學(xué)的音頻數(shù)據(jù)和視頻數(shù)據(jù);從所述音頻數(shù)據(jù)中獲取音頻數(shù)據(jù)開始采集的時(shí)間,從所述視頻數(shù)據(jù)中獲取視頻數(shù)據(jù)開始采集的時(shí)間;將所述音頻數(shù)據(jù)開始采集的時(shí)間和所述視頻數(shù)據(jù)開始采集的時(shí)間設(shè)定為主時(shí)間戳;其中,所述音頻數(shù)據(jù)開始采集的時(shí)間和所述視頻數(shù)據(jù)開始采集的時(shí)間相同。
在步驟102中,對(duì)該音頻數(shù)據(jù)及該視頻數(shù)據(jù)分別進(jìn)行分塊處理,形成多個(gè)音頻數(shù)據(jù)塊及多個(gè)視頻數(shù)據(jù)塊;其中,該音頻數(shù)據(jù)塊和該視頻數(shù)據(jù)塊的數(shù)量相等。
在步驟103中,在該多個(gè)音頻數(shù)據(jù)塊中的每一個(gè)音頻數(shù)據(jù)塊前增加音頻子幀頭形成音頻子幀,在該多個(gè)視頻數(shù)據(jù)塊中的每一個(gè)視頻數(shù)據(jù)塊前增加視頻子幀頭形成視頻子幀;其中,該音頻子幀頭中存儲(chǔ)有該音頻子幀的數(shù)據(jù)長(zhǎng)度,該視頻子幀頭中存儲(chǔ)有該視頻子幀的數(shù)據(jù)長(zhǎng)度。
在步驟104中,在多個(gè)該音頻子幀前增加音頻幀頭形成音頻幀,以及在多個(gè)該視頻子幀前增加視頻幀頭形成視頻幀。
在步驟105中,根據(jù)采樣率和每個(gè)音頻數(shù)據(jù)塊的長(zhǎng)度確定每個(gè)第一子幀相對(duì)偏移時(shí)間,該每個(gè)第一子幀相對(duì)偏移時(shí)間和該主時(shí)間戳構(gòu)成該同步幀;其中,該第一子幀相對(duì)偏移時(shí)間為該第一子幀相對(duì)該主時(shí)間戳的偏移量。
在步驟106中,在該同步幀前增加總幀頭,并按照該總幀頭、該同步幀、該視頻幀、該音頻幀的順序構(gòu)成總幀。
在步驟107中,當(dāng)接收到視頻播放請(qǐng)求時(shí),根據(jù)該總幀確定該視頻幀和該音頻幀,然后根據(jù)該同步幀確定每個(gè)該第一子幀的播放時(shí)間,當(dāng)目標(biāo)第一子幀的播放時(shí)間到來時(shí),根據(jù)該視頻幀和該音頻幀提取目標(biāo)視頻子幀和目標(biāo)音頻子幀,并發(fā)送該目標(biāo)視頻子幀和該目標(biāo)音頻子幀;其中,該目標(biāo)第一子幀為當(dāng)前需要發(fā)送的第一子幀。
本發(fā)明實(shí)施例中,將接收到視頻數(shù)據(jù)和音頻數(shù)據(jù)分別進(jìn)行分塊并組成視頻子幀和音頻子幀,再將音頻子幀和視頻子幀分別組成音頻幀和視頻幀,然后構(gòu)造同步幀、將音頻幀、視頻幀以及同步幀增加總幀頭構(gòu)成總幀,當(dāng)接收到播放請(qǐng)求時(shí),根據(jù)總幀中的同步幀確定每個(gè)第一子幀的播放時(shí)間,當(dāng)目標(biāo)第一子幀的播放時(shí)間到來時(shí),根據(jù)視頻幀起始偏移和音頻幀起始偏移確定音頻幀頭和視頻幀頭,進(jìn)而根據(jù)視頻幀頭和音頻幀頭確定目標(biāo)視頻子幀頭和目標(biāo)音頻子幀頭從而根據(jù)目標(biāo)視頻子幀頭和目標(biāo)音頻子幀頭中分別存儲(chǔ)的視頻子幀的數(shù)長(zhǎng)度據(jù)和音頻子幀的數(shù)據(jù)長(zhǎng)度提取目標(biāo)視頻子幀和目標(biāo)音頻子幀,對(duì)目標(biāo)視頻子幀和目標(biāo)音頻子幀同時(shí)發(fā)送,實(shí)現(xiàn)了客戶端視頻和音頻的同步,且利用一幀一幀的發(fā)送數(shù)據(jù)使得視頻和音頻的同步效率高,學(xué)生可以清楚的學(xué)習(xí)鋼琴教學(xué)的內(nèi)容,從而提高了視頻教學(xué)的質(zhì)量。
結(jié)合上述圖1a所示的實(shí)施環(huán)境示意圖,圖2是根據(jù)一示例性實(shí)施例示出的一種鋼琴視頻教學(xué)中的同步方法的流程圖,如圖2所示,該鋼琴視頻教學(xué)中的同步方法包括以下步驟。
在步驟201中,服務(wù)器從主終端獲取鋼琴教學(xué)的音頻數(shù)據(jù)及視頻數(shù)據(jù),并從該音頻數(shù)據(jù)中獲取音頻數(shù)據(jù)開始采集的時(shí)間,從該視頻數(shù)據(jù)中獲取視頻數(shù)據(jù)開始采集的時(shí)間,且將該音頻數(shù)據(jù)開始采集的時(shí)間和該視頻數(shù)據(jù)開始采集的時(shí)間設(shè)定為主時(shí)間戳。
其中,音頻數(shù)據(jù)和視頻數(shù)據(jù)開始采集的時(shí)間相同。
其中,主終端接收麥克風(fēng)采集的音頻數(shù)據(jù)和攝像機(jī)采集的視頻數(shù)據(jù),并將該音頻數(shù)據(jù)和視頻數(shù)據(jù)經(jīng)過網(wǎng)絡(luò)傳輸給服務(wù)器。
在步驟202中,服務(wù)器對(duì)該音頻數(shù)據(jù)及該視頻數(shù)據(jù)分別進(jìn)行分塊處理,形成多個(gè)音頻數(shù)據(jù)塊及多個(gè)視頻數(shù)據(jù)塊,該音頻數(shù)據(jù)塊和該視頻數(shù)據(jù)塊的數(shù)量相等。
在步驟203中,服務(wù)器在該多個(gè)音頻數(shù)據(jù)塊中的每一個(gè)音頻數(shù)據(jù)塊前增加音頻子幀頭形成音頻子幀,在該多個(gè)視頻數(shù)據(jù)塊中的每一個(gè)視頻數(shù)據(jù)塊前增加視頻子幀頭形成視頻子幀;其中,該音頻子幀頭中存儲(chǔ)該音頻子幀的數(shù)據(jù)長(zhǎng)度,該視頻子幀頭中存儲(chǔ)該視頻子幀的數(shù)據(jù)長(zhǎng)度。
在步驟204中,服務(wù)器在多個(gè)該音頻子幀前增加音頻幀頭形成音頻幀,以及在多個(gè)該視頻子幀前增加視頻幀頭形成視頻幀。
其中,該視頻幀頭中依次包括:視頻幀長(zhǎng)、視頻總子幀數(shù)和多個(gè)視頻子幀中每個(gè)視頻子幀相對(duì)偏移,該視頻子幀相對(duì)偏移為該視頻子幀頭相對(duì)視頻幀頭的偏移量;該音頻幀頭存儲(chǔ)的數(shù)據(jù)依次為音頻幀長(zhǎng)、音頻總子幀數(shù)和多個(gè)音頻子幀中每個(gè)音頻子幀相對(duì)偏移,該音頻子幀相對(duì)偏移為該音頻子幀頭相對(duì)音頻幀頭的偏移量。
在步驟205中,服務(wù)器根據(jù)采樣率和每個(gè)音頻數(shù)據(jù)塊的長(zhǎng)度確定每個(gè)第一子幀相對(duì)偏移時(shí)間,該每個(gè)第一子幀相對(duì)偏移時(shí)間和該主時(shí)間戳構(gòu)成該同步幀;其中,該第一子幀相對(duì)偏移時(shí)間為該第一子幀相對(duì)該主時(shí)間戳的偏移量。
在步驟206中,服務(wù)器在該同步幀前增加總幀頭,并按照該總幀頭、該同步幀、該視頻幀、該音頻幀的順序構(gòu)成總幀。
另外,總幀頭中依次包括:總幀長(zhǎng)、視頻幀起始偏移和音頻幀起始偏移,該視頻幀起始偏移為該視頻幀頭相對(duì)于該總幀頭的偏移量,該音頻幀起始偏移為該音頻幀頭相對(duì)于該總幀頭的偏移量。
在步驟207中,當(dāng)接收到視頻播放請(qǐng)求時(shí),根據(jù)該總幀確定該視頻幀和該音頻幀,然后根據(jù)該同步幀確定每個(gè)該第一子幀的播放時(shí)間,當(dāng)目標(biāo)第一子幀的播放時(shí)間到來時(shí),根據(jù)該視頻幀和該音頻幀提取目標(biāo)視頻子幀和目標(biāo)音頻子幀,并發(fā)送該目標(biāo)視頻子幀和該目標(biāo)音頻子幀;其中,該目標(biāo)第一子幀為當(dāng)前需要發(fā)送的第一子幀。
其中,該根據(jù)該視頻幀和該音頻幀提取目標(biāo)視頻子幀和目標(biāo)音頻子幀具體為:
1)、根據(jù)該總幀頭中存儲(chǔ)的該視頻幀起始偏移和該音頻幀起始偏移確定該視頻幀頭和該音頻幀頭;
2)、根據(jù)該視頻幀頭中存儲(chǔ)的目標(biāo)視頻子幀相對(duì)偏移確定目標(biāo)視頻子幀頭,以及根據(jù)該音頻幀頭中存儲(chǔ)的目標(biāo)音頻子幀相對(duì)偏移確定目標(biāo)音頻子幀頭;
3)、根據(jù)該目標(biāo)視頻子幀頭中存儲(chǔ)的目標(biāo)視頻子幀的數(shù)據(jù)長(zhǎng)度提取該目標(biāo)視頻子幀,根據(jù)該目標(biāo)音頻子幀頭中存儲(chǔ)的目標(biāo)音頻子幀的數(shù)據(jù)長(zhǎng)度提取該目標(biāo)音頻子幀。
在步驟208中,主終端同時(shí)播放該目標(biāo)視頻子幀和該目標(biāo)音頻子幀。
在步驟209中,服務(wù)器查找目標(biāo)視頻子幀的下一視頻子幀和該目標(biāo)音頻子幀的下一音頻子幀。
本發(fā)明實(shí)施例中,將接收到視頻數(shù)據(jù)和音頻數(shù)據(jù)分別進(jìn)行分塊并組成視頻子幀和音頻子幀,再將音頻子幀和視頻子幀分別組成音頻幀和視頻幀,然后構(gòu)造同步幀、將音頻幀、視頻幀以及同步幀增加總幀頭構(gòu)成總幀,當(dāng)接收到播放請(qǐng)求時(shí),根據(jù)總幀中的同步幀確定每個(gè)第一子幀的播放時(shí)間,當(dāng)目標(biāo)第一子幀的播放時(shí)間到來時(shí),根據(jù)視頻幀起始偏移和音頻幀起始偏移確定音頻幀頭和視頻幀頭,進(jìn)而根據(jù)視頻幀頭和音頻幀頭確定目標(biāo)視頻子幀頭和目標(biāo)音頻子幀頭從而根據(jù)目標(biāo)視頻子幀頭和目標(biāo)音頻子幀頭中分別存儲(chǔ)的視頻子幀的數(shù)長(zhǎng)度據(jù)和音頻子幀的數(shù)據(jù)長(zhǎng)度提取目標(biāo)視頻子幀和目標(biāo)音頻子幀,對(duì)目標(biāo)視頻子幀和目標(biāo)音頻子幀同時(shí)發(fā)送,實(shí)現(xiàn)了客戶端視頻和音頻的同步,且利用一幀一幀的發(fā)送數(shù)據(jù)使得視頻和音頻的同步效率高,學(xué)生可以清楚的學(xué)習(xí)鋼琴教學(xué)的內(nèi)容,從而提高了視頻教學(xué)的質(zhì)量。
圖3是根據(jù)一示例性實(shí)施例示出的一種鋼琴視頻教學(xué)中的同步系統(tǒng)框圖。參照?qǐng)D3,該鋼琴視頻教學(xué)中的同步系統(tǒng)包括:
獲取單元301,用于獲取鋼琴教學(xué)的音頻數(shù)據(jù)和視頻數(shù)據(jù);從該音頻數(shù)據(jù)中獲取音頻數(shù)據(jù)開始采集的時(shí)間,從該視頻數(shù)據(jù)中獲取視頻數(shù)據(jù)開始采集的時(shí)間;將該音頻數(shù)據(jù)開始采集的時(shí)間和該視頻數(shù)據(jù)開始采集的時(shí)間設(shè)定為主時(shí)間戳;其中,該音頻數(shù)據(jù)開始采集的時(shí)間和該視頻數(shù)據(jù)開始采集的時(shí)間相同。
分塊單元302,用于對(duì)該音頻數(shù)據(jù)及該視頻數(shù)據(jù)分別進(jìn)行分塊處理,形成多個(gè)音頻數(shù)據(jù)塊及多個(gè)視頻數(shù)據(jù)塊,該音頻數(shù)據(jù)塊和該視頻數(shù)據(jù)塊的數(shù)量相等。
第一增加單元303,用于在該多個(gè)音頻數(shù)據(jù)塊中的每一個(gè)音頻數(shù)據(jù)塊前增加音頻子幀頭形成音頻子幀,在該多個(gè)視頻數(shù)據(jù)塊中的每一個(gè)視頻數(shù)據(jù)塊前增加視頻子幀頭形成視頻子幀,該音頻子幀頭中存儲(chǔ)有該音頻子幀的數(shù)據(jù)長(zhǎng)度,該視頻子幀頭中存儲(chǔ)有該視頻子幀的數(shù)據(jù)長(zhǎng)度。
第二增加單元304,用于在多個(gè)該音頻子幀前增加音頻幀頭形成音頻幀,以及在多個(gè)該視頻子幀前增加視頻幀頭形成視頻幀。
第一確定單元305,用于根據(jù)采樣率和每個(gè)音頻數(shù)據(jù)塊的長(zhǎng)度確定每個(gè)第一子幀相對(duì)偏移時(shí)間,該每個(gè)第一子幀相對(duì)偏移時(shí)間和該主時(shí)間戳構(gòu)成該同步幀;其中,該第一子幀相對(duì)偏移時(shí)間為該子幀相對(duì)該主時(shí)間戳的偏移量。
構(gòu)成單元306,用于在同步幀前增加總幀頭,并按照總幀頭、同步幀、視頻幀、音頻幀的順序構(gòu)成總幀。
第二確定單元307,用于當(dāng)接收到視頻播放請(qǐng)求時(shí),根據(jù)總幀確定視頻幀和音頻幀,然后根據(jù)同步幀確定每個(gè)第一子幀的播放時(shí)間。
提取單元308,用于當(dāng)目標(biāo)第一子幀的播放時(shí)間到來時(shí),根據(jù)該視頻幀和該音頻幀提取目標(biāo)視頻子幀和目標(biāo)音頻子幀,并發(fā)送該目標(biāo)視頻子幀和該目標(biāo)音頻子幀;其中,該目標(biāo)第一子幀為當(dāng)前需要發(fā)送的第一子幀。
可選地,該總幀頭中依次包括:
總幀長(zhǎng)、視頻幀起始偏移和音頻幀起始偏移,該視頻幀起始偏移為該視頻幀頭相對(duì)于該總幀頭的偏移量,該音頻幀起始偏移為該音頻幀頭相對(duì)于該總幀頭的偏移量。
可選地,該視頻幀頭中依次包括:視頻幀長(zhǎng)、視頻總子幀數(shù)和多個(gè)視頻子幀中每個(gè)視頻子幀相對(duì)偏移,該視頻子幀相對(duì)偏移為該視頻子幀頭相對(duì)視頻幀頭的偏移量;該音頻幀頭存儲(chǔ)的數(shù)據(jù)依次為音頻幀長(zhǎng)、音頻總子幀數(shù)和多個(gè)音頻子幀中每個(gè)音頻子幀相對(duì)偏移,該音頻子幀相對(duì)偏移為該音頻子幀頭相對(duì)音頻幀頭的偏移量。
可選地,該提取單元308包括:
第一確定模塊,根據(jù)該總幀頭中存儲(chǔ)的該視頻幀起始偏移和該音頻幀起始偏移確定該視頻幀頭和該音頻幀頭。
第二確定模塊,用于根據(jù)該視頻幀頭中存儲(chǔ)的目標(biāo)視頻子幀相對(duì)偏移確定目標(biāo)視頻子幀頭,以及根據(jù)該音頻幀頭中存儲(chǔ)的目標(biāo)音頻子幀相對(duì)偏移確定目標(biāo)音頻子幀頭。
提取模塊,用于根據(jù)該目標(biāo)視頻子幀頭中存儲(chǔ)的目標(biāo)視頻子幀的數(shù)據(jù)長(zhǎng)度提取該目標(biāo)視頻子幀,根據(jù)該目標(biāo)音頻子幀頭中存儲(chǔ)的目標(biāo)音頻子幀的數(shù)據(jù)長(zhǎng)度提取該目標(biāo)音頻子幀。
本發(fā)明實(shí)施例中,將接收到視頻數(shù)據(jù)和音頻數(shù)據(jù)分別進(jìn)行分塊并組成視頻子幀和音頻子幀,再將音頻子幀和視頻子幀分別組成音頻幀和視頻幀,然后構(gòu)造同步幀、將音頻幀、視頻幀以及同步幀增加總幀頭構(gòu)成總幀,當(dāng)接收到播放請(qǐng)求時(shí),根據(jù)總幀中的同步幀確定每個(gè)第一子幀的播放時(shí)間,當(dāng)目標(biāo)第一子幀的播放時(shí)間到來時(shí),根據(jù)視頻幀起始偏移和音頻幀起始偏移確定音頻幀頭和視頻幀頭,進(jìn)而根據(jù)視頻幀頭和音頻幀頭確定目標(biāo)視頻子幀頭和目標(biāo)音頻子幀頭從而根據(jù)目標(biāo)視頻子幀頭和目標(biāo)音頻子幀頭中分別存儲(chǔ)的視頻子幀的數(shù)長(zhǎng)度據(jù)和音頻子幀的數(shù)據(jù)長(zhǎng)度提取目標(biāo)視頻子幀和目標(biāo)音頻子幀,對(duì)目標(biāo)視頻子幀和目標(biāo)音頻子幀同時(shí)發(fā)送,實(shí)現(xiàn)了客戶端視頻和音頻的同步,且利用一幀一幀的發(fā)送數(shù)據(jù)使得視頻和音頻的同步效率高,學(xué)生可以清楚的學(xué)習(xí)鋼琴教學(xué)的內(nèi)容,從而提高了視頻教學(xué)的質(zhì)量。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、cd-rom、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。