本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種傳輸直播視頻的方法和裝置。
背景技術(shù):
隨著視頻技術(shù)和網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)直播得到了快速的推廣,成為了人們生活中最常用的娛樂方式之一。直播視頻的圖像幀一般可分為關(guān)鍵幀和非關(guān)鍵幀,一般,在直播視頻中,間隔設(shè)置有關(guān)鍵幀,其余圖像幀則為非關(guān)鍵幀,每個(gè)非關(guān)鍵幀的解碼需要參考其前面最近的一個(gè)關(guān)鍵幀。
在網(wǎng)絡(luò)直播的過程中,主播終端會持續(xù)向服務(wù)器上傳其拍攝的直播視頻,服務(wù)器將接收到的直播視頻發(fā)送給該主播的直播間中的觀眾終端。觀眾終端進(jìn)入直播間時(shí)會向服務(wù)器發(fā)送視頻請求,服務(wù)器會將接收到視頻請求后主播終端上傳的所有圖像幀都發(fā)送給該觀眾終端。然而,服務(wù)器發(fā)送給觀眾終端的前幾個(gè)圖像幀很可能是非關(guān)鍵幀,由于非關(guān)鍵幀的解碼需要參考其前面的關(guān)鍵幀,觀眾終端在沒有之前的關(guān)鍵幀的情況下是無法對接收到的非關(guān)鍵幀進(jìn)行解碼的,所以這樣做會導(dǎo)致傳輸資源浪費(fèi)。因此,現(xiàn)在一般采用的做法是從視頻請求后主播終端發(fā)送的第一個(gè)關(guān)鍵幀開始,向該觀眾終端發(fā)送圖像幀。
在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:
通過上述方式發(fā)送直播視頻,會導(dǎo)致觀眾終端在發(fā)送視頻請求后需要間隔一段時(shí)間(服務(wù)器接收到下一個(gè)關(guān)鍵幀并發(fā)送給觀眾終端時(shí))才能夠開始播放直播視頻,導(dǎo)致直播視頻播放滯后。
技術(shù)實(shí)現(xiàn)要素:
為了解決現(xiàn)有技術(shù)的問題,本發(fā)明實(shí)施例提供了一種傳輸直播視頻的方法和裝置。所述技術(shù)方案如下:
第一方面,提供了一種傳輸直播視頻的方法,所述方法包括:
接收第一終端發(fā)送的目標(biāo)直播視頻的視頻請求;
從緩存的所述目標(biāo)直播視頻的第一關(guān)鍵幀開始,向所述第一終端發(fā)送緩存的所述目標(biāo)直播視頻的圖像幀,其中,所述第一關(guān)鍵幀是當(dāng)前接收到的所述目標(biāo)直播視頻的主播終端發(fā)送的圖像幀之前的關(guān)鍵幀;
當(dāng)接收到所述主播終端發(fā)送的第二關(guān)鍵幀后,從所述第二關(guān)鍵幀開始,向所述第一終端發(fā)送所述目標(biāo)直播視頻的圖像幀。
可選的,所述方法還包括:
在接收所述主播終端發(fā)送的所述目標(biāo)直播視頻的過程中,對接收到的所述目標(biāo)視頻的圖像幀進(jìn)行緩存,如果接收到的圖像幀為關(guān)鍵幀,則刪除之前緩存的所述目標(biāo)直播視頻的所有圖像幀。
這樣,可以在緩存圖像幀的過程中降低存儲空間的占用。
可選的,所述第一關(guān)鍵幀是當(dāng)前接收到的所述目標(biāo)直播視頻的主播終端發(fā)送的圖像幀之前的最近的關(guān)鍵幀。
這樣,可以在緩存圖像幀的過程中降低存儲空間的占用。
可選的,所述從緩存的所述目標(biāo)直播視頻的第一關(guān)鍵幀開始,向所述第一終端發(fā)送緩存的所述目標(biāo)直播視頻的圖像幀,包括:
當(dāng)接收到所述目標(biāo)直播視頻的在所述視頻請求后的第M個(gè)圖像幀時(shí),獲取緩存的所述目標(biāo)直播視頻的從第一關(guān)鍵幀開始的第N個(gè)圖像幀,其中,M和N為正整數(shù),且N等于M;
將所述第N個(gè)圖像幀,發(fā)送給所述第一終端。
可選的,所述將所述第N個(gè)圖像幀,發(fā)送給所述第一終端,包括:
將所述第N個(gè)圖像幀的時(shí)間戳,修改為所述第M個(gè)圖像幀的時(shí)間戳;
將修改時(shí)間戳后的第N個(gè)圖像幀,發(fā)送給所述第一終端。
可選的,所述接收第一終端發(fā)送的目標(biāo)直播視頻的視頻請求之后,還包括:
將后續(xù)接收到的所述主播終端發(fā)送的目標(biāo)直播視頻的音頻幀,發(fā)送給所述第一終端。
這樣,可以保證目標(biāo)直播視頻在第一終端穩(wěn)定播放。
第二方面,提供了一種傳輸直播視頻的裝置,所述裝置包括:
接收模塊,用于接收第一終端發(fā)送的目標(biāo)直播視頻的視頻請求;
第一發(fā)送模塊,用于從緩存的所述目標(biāo)直播視頻的第一關(guān)鍵幀開始,向所述第一終端發(fā)送緩存的所述目標(biāo)直播視頻的圖像幀,其中,所述第一關(guān)鍵幀是當(dāng)前接收到的所述目標(biāo)直播視頻的主播終端發(fā)送的圖像幀之前的關(guān)鍵幀;
第二發(fā)送模塊,用于當(dāng)接收到所述主播終端發(fā)送的第二關(guān)鍵幀后,從所述第二關(guān)鍵幀開始,向所述第一終端發(fā)送所述目標(biāo)直播視頻的圖像幀。
可選的,所述裝置還包括緩存模塊,用于:
在接收所述主播終端發(fā)送的所述目標(biāo)直播視頻的過程中,對接收到的所述目標(biāo)視頻的圖像幀進(jìn)行緩存,如果接收到的圖像幀為關(guān)鍵幀,則刪除之前緩存的所述目標(biāo)直播視頻的所有圖像幀。
可選的,所述第一關(guān)鍵幀是當(dāng)前接收到的所述目標(biāo)直播視頻的主播終端發(fā)送的圖像幀之前的最近的關(guān)鍵幀。
可選的,所述第一發(fā)送模塊,用于:
當(dāng)接收到所述目標(biāo)直播視頻的在所述視頻請求后的第M個(gè)圖像幀時(shí),獲取緩存的所述目標(biāo)直播視頻的從第一關(guān)鍵幀開始的第N個(gè)圖像幀,其中,M和N為正整數(shù),且N等于M;
將所述第N個(gè)圖像幀,發(fā)送給所述第一終端。
可選的,所述第一發(fā)送模塊,用于:
將所述第N個(gè)圖像幀的時(shí)間戳,修改為所述第M個(gè)圖像幀的時(shí)間戳;
將修改時(shí)間戳后的第N個(gè)圖像幀,發(fā)送給所述第一終端。
可選的,所述第二發(fā)送模塊,還用于:
在接收第一終端發(fā)送的目標(biāo)直播視頻的視頻請求之后,將后續(xù)接收到的所述主播終端發(fā)送的目標(biāo)直播視頻的音頻幀,發(fā)送給所述第一終端。
本發(fā)明實(shí)施例提供的技術(shù)方案帶來的有益效果是:
本發(fā)明實(shí)施例中,接收第一終端發(fā)送的目標(biāo)直播視頻的視頻請求,從緩存的目標(biāo)直播視頻的第一關(guān)鍵幀開始,向第一終端發(fā)送緩存的目標(biāo)直播視頻的圖像幀,其中,第一關(guān)鍵幀是當(dāng)前接收的目標(biāo)直播視頻的主播終端發(fā)送的圖像幀之前的關(guān)鍵幀,當(dāng)接收到主播終端發(fā)送的第二關(guān)鍵幀后,從第二關(guān)鍵幀開始,向第一終端發(fā)送目標(biāo)直播視頻的圖像幀。這樣,在第一終端發(fā)送視頻請求后無需等待下一個(gè)關(guān)鍵幀,就能夠開始播放目標(biāo)直播視頻,從而,可以防止直播視頻播放滯后。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實(shí)施例提供的一種系統(tǒng)框架的示意圖;
圖2是本發(fā)明實(shí)施例提供的一種傳輸直播視頻的方法的流程示意圖;
圖3是本發(fā)明實(shí)施例提供的一種傳輸直播視頻的裝置的結(jié)構(gòu)示意圖;
圖4是本發(fā)明實(shí)施例提供的一種服務(wù)器的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
本發(fā)明實(shí)施例提供了一種傳輸直播視頻的方法,該方法可以由服務(wù)器實(shí)現(xiàn)。其中,該服務(wù)器可以是視頻直播應(yīng)用程序的后臺服務(wù)器,或者視頻直播網(wǎng)站的網(wǎng)站服務(wù)器。服務(wù)器可以包括處理器、存儲器、收發(fā)器等部件。處理器,可以為CPU(Central Processing Unit,中央處理單元)等,可以用于調(diào)取緩存的圖像幀,確定圖像幀是否為關(guān)鍵幀,為圖像幀修改時(shí)間戳,等處理。存儲器,可以為RAM(Random Access Memory,隨機(jī)存取存儲器),F(xiàn)lash(閃存)等,可以用于存儲接收到的數(shù)據(jù)、處理過程所需的數(shù)據(jù)、處理過程中生成的數(shù)據(jù)等,如接收到的圖像幀,圖像幀的時(shí)間戳、幀號,音頻幀等。收發(fā)器,可以用于與終端進(jìn)行數(shù)據(jù)傳輸,例如,接收主播終端發(fā)送的目標(biāo)直播視頻的圖像幀,將圖像幀發(fā)送給直播間中的觀眾終端,可以包括天線、匹配電路、調(diào)制解調(diào)器等。
本發(fā)明實(shí)施例的系統(tǒng)框架圖可以如圖1所示。
本發(fā)明實(shí)施例中,某主播可以在其終端(即主播終端)上登錄視頻直播應(yīng)用程序,在視頻直播應(yīng)用程序進(jìn)行操作開始視頻直播。在視頻直播的過程中,主播終端會通過攝像頭拍攝本地的直播視頻(即目標(biāo)直播視頻),并實(shí)時(shí)上傳給服務(wù)器。服務(wù)器可以將接收到的目標(biāo)直播視頻,發(fā)送給主播終端對應(yīng)的直播間中的觀眾賬戶的登錄終端,這些終端可以對目標(biāo)直播視頻進(jìn)行播放,直播間中的觀眾就可以觀看目標(biāo)直播視頻了。
服務(wù)器在接收主播終端發(fā)送的目標(biāo)直播視頻的過程中,可以對目標(biāo)直播視頻的圖像幀進(jìn)行緩存。緩存的機(jī)制可以多種多樣,以下給出了幾種可行的緩存方式:
方式一,可以緩存最近的一組視頻圖像編碼序列(其中,視頻圖像編碼序列包括一個(gè)關(guān)鍵幀和所有基于該關(guān)鍵幀解碼的非關(guān)鍵幀),相應(yīng)的處理可以如下:在接收主播終端發(fā)送的目標(biāo)直播視頻的過程中,對接收到的目標(biāo)視頻的圖像幀進(jìn)行緩存,如果接收到的圖像幀為關(guān)鍵幀,則刪除之前緩存的目標(biāo)直播視頻的所有圖像幀。
在實(shí)施中,服務(wù)器在接收主播終端發(fā)送的目標(biāo)直播視頻的過程中,每接收到一個(gè)圖像幀,則可以判斷該圖像幀是否為關(guān)鍵幀。判斷的方式可以是通過圖像幀中的配置信息確定其是否為關(guān)鍵幀,或者通過目標(biāo)直播視頻最初開始傳輸時(shí)主播終端發(fā)送的配置信息(可以記錄關(guān)鍵幀的在視頻中的分布方式)確定該圖像幀是否為關(guān)鍵幀。如果當(dāng)前接收的圖像幀為關(guān)鍵幀,則服務(wù)器可以對該圖像幀進(jìn)行緩存,同時(shí)對之前緩存的目標(biāo)直播視頻的所有圖像幀進(jìn)行刪除,這里實(shí)際刪除的是該關(guān)鍵幀之前的一組視頻圖像編碼序列,若該關(guān)鍵幀是目標(biāo)直播視頻的第一個(gè)圖像幀,則此時(shí)沒有緩存,沒有需要?jiǎng)h除的圖像幀。如果當(dāng)前接收的圖像幀為非關(guān)鍵幀,則服務(wù)器可以對該圖像幀進(jìn)行緩存,同時(shí)不進(jìn)行刪除的操作。
基于上述的處理,服務(wù)器則可以始終保持緩存最近的一組視頻圖像編碼序列。
方式二,可以對目標(biāo)直播視頻進(jìn)行完整緩存,即從目標(biāo)直播視頻開播開始緩存目標(biāo)直播視頻的圖像幀,直到目標(biāo)直播視頻結(jié)束直播。
方式三,可以緩存時(shí)間最近的預(yù)設(shè)時(shí)長的直播視頻,超過預(yù)設(shè)時(shí)長的歷史視頻部分則刪除。
如圖2所示,本發(fā)明實(shí)施例提供的傳輸直播視頻的方法的處理流程可以包括如下的步驟:
步驟201,接收第一終端發(fā)送的目標(biāo)直播視頻的視頻請求。
在實(shí)施中,某個(gè)用戶想要觀看上述主播的直播視頻(即目標(biāo)直播視頻)時(shí),可以在他的終端(即第一終端)上啟動(dòng)上述視頻直播應(yīng)用程序,并在視頻直播應(yīng)用程序中選擇該主播的直播間,應(yīng)用程序則會開啟直播間界面。同時(shí),會觸發(fā)第一終端向服務(wù)器發(fā)送目標(biāo)直播視頻的視頻請求,該視頻請求中可以攜帶有該直播間的標(biāo)識信息。服務(wù)器接收視頻請求,對視頻請求進(jìn)行解析,根據(jù)其中的直播間的標(biāo)識信息,確定對應(yīng)的目標(biāo)直播視頻。
步驟202,從緩存的目標(biāo)直播視頻的第一關(guān)鍵幀開始,向第一終端發(fā)送緩存的目標(biāo)直播視頻的圖像幀。
其中,第一關(guān)鍵幀可以是當(dāng)前接收到的目標(biāo)直播視頻的主播終端發(fā)送的圖像幀之前的關(guān)鍵幀。優(yōu)選的,第一關(guān)鍵幀是當(dāng)前接收到的目標(biāo)直播視頻的主播終端發(fā)送的圖像幀之前的最近的關(guān)鍵幀?;谏鲜龇绞揭坏木彺鏅C(jī)制,第一關(guān)鍵幀可以是緩存的一組視頻圖像編碼序列中的關(guān)鍵幀。
在實(shí)施中,以上述方式一為例,在緩存的一組視頻圖像編碼序列中只包括一個(gè)關(guān)鍵幀,而且該關(guān)鍵幀為緩存的各圖像幀中時(shí)間最早的一個(gè)圖像幀。服務(wù)器在接收到目標(biāo)直播視頻的視頻請求后,可以獲取緩存的關(guān)鍵幀(即第一關(guān)鍵幀)。從這個(gè)第一關(guān)鍵幀開始,將緩存的目標(biāo)直播視頻的圖像幀依次發(fā)送給第一終端。具體的發(fā)送方式可以根據(jù)需求任意設(shè)置,例如,每接收到目標(biāo)直播視頻的一個(gè)新的圖像幀,則向第一終端發(fā)送一個(gè)緩存的圖像幀,或者,按照一定時(shí)間間隔向第一終端發(fā)送緩存的圖像幀。
第一終端在接收到服務(wù)器發(fā)送的目標(biāo)直播視頻的圖像幀后,可以根據(jù)圖像幀的時(shí)間順序(可以基于圖像幀的時(shí)間戳)進(jìn)行播放。
可選的,服務(wù)器可以每接收到目標(biāo)直播視頻的一個(gè)新的圖像幀,則向第一終端發(fā)送一個(gè)緩存的圖像幀,相應(yīng)的處理方式可以包括如下步驟:
步驟一,當(dāng)接收到目標(biāo)直播視頻的在視頻請求后的第M個(gè)圖像幀時(shí),獲取緩存的目標(biāo)直播視頻的從第一關(guān)鍵幀開始的第N個(gè)圖像幀(按圖像幀時(shí)間順序),其中,M和N為正整數(shù),且N等于M。
其中,第一關(guān)鍵幀即為從第一關(guān)鍵幀開始的第一個(gè)圖像幀,即當(dāng)N=1時(shí),第N個(gè)圖像幀即為緩存的第一關(guān)鍵幀。
在實(shí)施中,服務(wù)器接收到目標(biāo)直播視頻的視頻請求后,接收到視頻請求后主播終端發(fā)送的第一個(gè)圖像幀時(shí),可以獲取緩存的第一關(guān)鍵幀(假設(shè)第一關(guān)鍵幀的幀號為P),進(jìn)行后續(xù)的發(fā)送處理。當(dāng)接收到視頻請求后主播終端發(fā)送的第二個(gè)圖像幀時(shí),可以在緩存的圖像幀中獲取第一關(guān)鍵幀的后一個(gè)圖像幀(幀號為P+1的圖像幀),進(jìn)行后續(xù)的發(fā)送處理。當(dāng)接收到視頻請求后主播終端發(fā)送的第三個(gè)圖像幀時(shí),可以在緩存的圖像幀中獲取第一關(guān)鍵幀后的第二個(gè)圖像幀(幀號為P+2的圖像幀),進(jìn)行后續(xù)的發(fā)送處理,依此類推。
以上述方式一為例,當(dāng)接收到目標(biāo)直播視頻的在視頻請求后的第M個(gè)圖像幀時(shí),服務(wù)器可以在緩存的目標(biāo)直播視頻的圖像幀中獲取按時(shí)序排列的第N個(gè)圖像幀,N=M。
步驟二,將第N個(gè)圖像幀,發(fā)送給第一終端。
可選的,在發(fā)送緩存的圖像幀時(shí),可以進(jìn)行如下處理:將上述第N個(gè)圖像幀的時(shí)間戳,修改為上述第M個(gè)圖像幀的時(shí)間戳;將修改時(shí)間戳后的第N個(gè)圖像幀,發(fā)送給第一終端。
在實(shí)施中,服務(wù)器在接收到目標(biāo)直播視頻的在視頻請求后的第M個(gè)圖像幀時(shí),可以獲取該圖像幀的時(shí)間戳(記做時(shí)間戳X)。進(jìn)而,服務(wù)器在緩存的目標(biāo)直播視頻的圖像幀中,獲取從第一關(guān)鍵幀開始的第N個(gè)圖像幀后,可以將此第N個(gè)圖像幀的時(shí)間戳修改為時(shí)間戳X。然后,將修改時(shí)間戳后的圖像幀發(fā)送給第一終端。
步驟203,當(dāng)接收到主播終端發(fā)送的第二關(guān)鍵幀后,從第二關(guān)鍵幀開始,向第一終端發(fā)送目標(biāo)直播視頻的圖像幀。
在實(shí)施中,服務(wù)器會持續(xù)接收主播終端發(fā)送目標(biāo)直播視頻的圖像幀,并可以對每個(gè)圖像幀確定是否為關(guān)鍵幀。當(dāng)服務(wù)器確定當(dāng)前接收圖像幀為關(guān)鍵幀時(shí),服務(wù)器則可以將該圖像幀(即第二關(guān)鍵幀)發(fā)送給第一終端,并且將后續(xù)接收自主播終端的目標(biāo)直播視頻的圖像幀逐一轉(zhuǎn)發(fā)給第一終端。自此,第一終端播放的直播視頻便與直播間中其它終端達(dá)到同步(在此之前,播放的是緩存的視頻)。
第一終端在接收到服務(wù)器發(fā)送的目標(biāo)直播視頻的圖像幀后,可以根據(jù)圖像幀的時(shí)間順序(可以基于圖像幀的時(shí)間戳)進(jìn)行播放。
本發(fā)明實(shí)施例中,上述介紹了目標(biāo)直播視頻的圖像幀的處理方式,如果目標(biāo)直播視頻中還包括音頻數(shù)據(jù),則服務(wù)器在接收第一終端發(fā)送的目標(biāo)直播視頻的視頻請求之后,還可以進(jìn)行如下處理:將后續(xù)接收到的主播終端發(fā)送的目標(biāo)直播視頻的音頻幀,發(fā)送給第一終端。
在實(shí)施中,因?yàn)槊總€(gè)音頻幀都可以獨(dú)立解碼,無需參考其它音頻幀,所以也不存在關(guān)鍵幀,服務(wù)器可以將后續(xù)接收自主播終端的音頻幀逐一轉(zhuǎn)發(fā)給第一終端。
本發(fā)明實(shí)施例中,接收第一終端發(fā)送的目標(biāo)直播視頻的視頻請求,從緩存的目標(biāo)直播視頻的第一關(guān)鍵幀開始,向第一終端發(fā)送緩存的目標(biāo)直播視頻的圖像幀,其中,第一關(guān)鍵幀是當(dāng)前接收的目標(biāo)直播視頻的主播終端發(fā)送的圖像幀之前的關(guān)鍵幀,當(dāng)接收到主播終端發(fā)送的第二關(guān)鍵幀后,從第二關(guān)鍵幀開始,向第一終端發(fā)送目標(biāo)直播視頻的圖像幀。這樣,在第一終端發(fā)送視頻請求后無需等待下一個(gè)關(guān)鍵幀,就能夠開始播放目標(biāo)直播視頻,從而,可以防止直播視頻播放滯后。
基于相同的技術(shù)構(gòu)思,本發(fā)明實(shí)施例還提供了一種傳輸直播視頻的裝置,該裝置可以是上述實(shí)施例中的服務(wù)器,如圖3所示,該裝置包括:
接收模塊310,用于接收第一終端發(fā)送的目標(biāo)直播視頻的視頻請求;
第一發(fā)送模塊320,用于從緩存的所述目標(biāo)直播視頻的第一關(guān)鍵幀開始,向所述第一終端發(fā)送緩存的所述目標(biāo)直播視頻的圖像幀,其中,所述第一關(guān)鍵幀是當(dāng)前接收到的所述目標(biāo)直播視頻的主播終端發(fā)送的圖像幀之前的關(guān)鍵幀;
第二發(fā)送模塊330,用于當(dāng)接收到所述主播終端發(fā)送的第二關(guān)鍵幀后,從所述第二關(guān)鍵幀開始,向所述第一終端發(fā)送所述目標(biāo)直播視頻的圖像幀。
可選的,所述裝置還包括緩存模塊,用于:
在接收所述主播終端發(fā)送的所述目標(biāo)直播視頻的過程中,對接收到的所述目標(biāo)視頻的圖像幀進(jìn)行緩存,如果接收到的圖像幀為關(guān)鍵幀,則刪除之前緩存的所述目標(biāo)直播視頻的所有圖像幀。
可選的,所述第一關(guān)鍵幀是當(dāng)前接收到的所述目標(biāo)直播視頻的主播終端發(fā)送的圖像幀之前的最近的關(guān)鍵幀。
可選的,所述第一發(fā)送模塊320,用于:
當(dāng)接收到所述目標(biāo)直播視頻的在所述視頻請求后的第M個(gè)圖像幀時(shí),獲取緩存的所述目標(biāo)直播視頻的從第一關(guān)鍵幀開始的第N個(gè)圖像幀,其中,M和N為正整數(shù),且N等于M;
將所述第N個(gè)圖像幀,發(fā)送給所述第一終端。
可選的,所述第一發(fā)送模塊320,用于:
將所述第N個(gè)圖像幀的時(shí)間戳,修改為所述第M個(gè)圖像幀的時(shí)間戳;
將修改時(shí)間戳后的第N個(gè)圖像幀,發(fā)送給所述第一終端。
可選的,所述第二發(fā)送模塊330,還用于:
在接收第一終端發(fā)送的目標(biāo)直播視頻的視頻請求之后,將后續(xù)接收到的所述主播終端發(fā)送的目標(biāo)直播視頻的音頻幀,發(fā)送給所述第一終端。
本發(fā)明實(shí)施例中,接收第一終端發(fā)送的目標(biāo)直播視頻的視頻請求,從緩存的目標(biāo)直播視頻的第一關(guān)鍵幀開始,向第一終端發(fā)送緩存的目標(biāo)直播視頻的圖像幀,其中,第一關(guān)鍵幀是當(dāng)前接收的目標(biāo)直播視頻的主播終端發(fā)送的圖像幀之前的關(guān)鍵幀,當(dāng)接收到主播終端發(fā)送的第二關(guān)鍵幀后,從第二關(guān)鍵幀開始,向第一終端發(fā)送目標(biāo)直播視頻的圖像幀。這樣,在第一終端發(fā)送視頻請求后無需等待下一個(gè)關(guān)鍵幀,就能夠開始播放目標(biāo)直播視頻,從而,可以防止直播視頻播放滯后。
需要說明的是:上述實(shí)施例提供的獲取歌曲信息的裝置在獲取歌曲信息時(shí),僅以上述各功能模塊的劃分進(jìn)行舉例說明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將設(shè)備的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實(shí)施例提供的獲取歌曲信息的裝置與獲取歌曲信息的方法實(shí)施例屬于同一構(gòu)思,其具體實(shí)現(xiàn)過程詳見方法實(shí)施例,這里不再贅述。
圖4是本發(fā)明實(shí)施例提供的服務(wù)器的結(jié)構(gòu)示意圖。該服務(wù)器1900可因配置或性能不同而產(chǎn)生比較大的差異,可以包括一個(gè)或一個(gè)以上中央處理器(central processing units,CPU)1922(例如,一個(gè)或一個(gè)以上處理器)和存儲器1932,一個(gè)或一個(gè)以上存儲應(yīng)用程序1942或數(shù)據(jù)1944的存儲介質(zhì)1930(例如一個(gè)或一個(gè)以上海量存儲設(shè)備)。其中,存儲器1932和存儲介質(zhì)1930可以是短暫存儲或持久存儲。存儲在存儲介質(zhì)1930的程序可以包括一個(gè)或一個(gè)以上模塊(圖示沒標(biāo)出),每個(gè)模塊可以包括對服務(wù)器中的一系列指令操作。更進(jìn)一步地,中央處理器1922可以設(shè)置為與存儲介質(zhì)1930通信,在服務(wù)器1900上執(zhí)行存儲介質(zhì)1930中的一系列指令操作。
服務(wù)器1900還可以包括一個(gè)或一個(gè)以上電源1926,一個(gè)或一個(gè)以上有線或無線網(wǎng)絡(luò)接口1950,一個(gè)或一個(gè)以上輸入輸出接口1958,一個(gè)或一個(gè)以上鍵盤1956,和/或,一個(gè)或一個(gè)以上操作系統(tǒng)1941,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,F(xiàn)reeBSDTM等等。
服務(wù)器1900可以包括有存儲器,以及一個(gè)或者一個(gè)以上的程序,其中一個(gè)或者一個(gè)以上程序存儲于存儲器中,且經(jīng)配置以由一個(gè)或者一個(gè)以上處理器執(zhí)行所述一個(gè)或者一個(gè)以上程序包含用于進(jìn)行以下操作的指令:
接收第一終端發(fā)送的目標(biāo)直播視頻的視頻請求;
從緩存的所述目標(biāo)直播視頻的第一關(guān)鍵幀開始,向所述第一終端發(fā)送緩存的所述目標(biāo)直播視頻的圖像幀,其中,所述第一關(guān)鍵幀是當(dāng)前接收到的所述目標(biāo)直播視頻的主播終端發(fā)送的圖像幀之前的關(guān)鍵幀;
當(dāng)接收到所述主播終端發(fā)送的第二關(guān)鍵幀后,從所述第二關(guān)鍵幀開始,向所述第一終端發(fā)送所述目標(biāo)直播視頻的圖像幀。
可選的,所述方法還包括:
在接收所述主播終端發(fā)送的所述目標(biāo)直播視頻的過程中,對接收到的所述目標(biāo)視頻的圖像幀進(jìn)行緩存,如果接收到的圖像幀為關(guān)鍵幀,則刪除之前緩存的所述目標(biāo)直播視頻的所有圖像幀。
可選的,所述第一關(guān)鍵幀是當(dāng)前接收到的所述目標(biāo)直播視頻的主播終端發(fā)送的圖像幀之前的最近的關(guān)鍵幀。
可選的,所述從緩存的所述目標(biāo)直播視頻的第一關(guān)鍵幀開始,向所述第一終端發(fā)送緩存的所述目標(biāo)直播視頻的圖像幀,包括:
當(dāng)接收到所述目標(biāo)直播視頻的在所述視頻請求后的第M個(gè)圖像幀時(shí),獲取緩存的所述目標(biāo)直播視頻的從第一關(guān)鍵幀開始的第N個(gè)圖像幀,其中,M和N為正整數(shù),且N等于M;
將所述第N個(gè)圖像幀,發(fā)送給所述第一終端。
可選的,所述將所述第N個(gè)圖像幀,發(fā)送給所述第一終端,包括:
將所述第N個(gè)圖像幀的時(shí)間戳,修改為所述第M個(gè)圖像幀的時(shí)間戳;
將修改時(shí)間戳后的第N個(gè)圖像幀,發(fā)送給所述第一終端。
可選的,所述接收第一終端發(fā)送的目標(biāo)直播視頻的視頻請求之后,還包括:
將后續(xù)接收到的所述主播終端發(fā)送的目標(biāo)直播視頻的音頻幀,發(fā)送給所述第一終端。
本發(fā)明實(shí)施例中,接收第一終端發(fā)送的目標(biāo)直播視頻的視頻請求,從緩存的目標(biāo)直播視頻的第一關(guān)鍵幀開始,向第一終端發(fā)送緩存的目標(biāo)直播視頻的圖像幀,其中,第一關(guān)鍵幀是當(dāng)前接收的目標(biāo)直播視頻的主播終端發(fā)送的圖像幀之前的關(guān)鍵幀,當(dāng)接收到主播終端發(fā)送的第二關(guān)鍵幀后,從第二關(guān)鍵幀開始,向第一終端發(fā)送目標(biāo)直播視頻的圖像幀。這樣,在第一終端發(fā)送視頻請求后無需等待下一個(gè)關(guān)鍵幀,就能夠開始播放目標(biāo)直播視頻,從而,可以防止直播視頻播放滯后。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計(jì)算機(jī)可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。