多媒體直播方法及裝置的制造方法
【專利摘要】本發(fā)明實施例公開了一種多媒體直播方法及裝置。其中,所述方法包括:在直播過程中生成包含至少一個虛擬數(shù)據(jù)片段的片段標(biāo)識的多媒體描述文件,所述虛擬數(shù)據(jù)片段為未到達本地的多媒體數(shù)據(jù);根據(jù)客戶端發(fā)送的播放列表請求消息將所述多媒體描述文件返回至所述客戶端,以使所述客戶端根據(jù)片段標(biāo)識請求播放的數(shù)據(jù)片段;根據(jù)所述客戶端發(fā)送的片段標(biāo)識將對應(yīng)的實際數(shù)據(jù)片段返回至客戶端,以使所述客戶端播放實際接收的數(shù)據(jù)片段。本發(fā)明實施例通過預(yù)先生成包含虛擬數(shù)據(jù)片段的片段標(biāo)識的多媒體描述文件,將對應(yīng)的多媒體描述文件預(yù)先發(fā)送至客戶端,能夠有效減少數(shù)據(jù)延遲時間,既能滿足數(shù)據(jù)傳輸?shù)膶崟r性,又能提高負載能力,具有普適性。
【專利說明】
多媒體直播方法及裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明實施例涉及多媒體技術(shù)領(lǐng)域,尤其涉及一種多媒體直播方法及裝置。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)技術(shù)的高速發(fā)展,為迎合用戶需求,多媒體網(wǎng)絡(luò)直播技術(shù)也隨之快速發(fā)展起來。由于多媒體網(wǎng)絡(luò)直播系統(tǒng)可以應(yīng)客戶的要求把活動現(xiàn)場的音頻或視頻信號經(jīng)壓縮后,傳送到多媒體服務(wù)器上,通過互聯(lián)網(wǎng)供廣大網(wǎng)友或授權(quán)特定人群收聽或收看,而日益受到人們的歡迎和喜愛。
[0003]目前多媒體網(wǎng)絡(luò)直播系統(tǒng)基本都是采用如下方案來實現(xiàn):基于實時流傳輸協(xié)議(Real Time Streaming Protocol,RTSP)或?qū)崟r消息傳輸協(xié)議(Real Time MessagingProtocol,RTMP)等類型的實時傳輸協(xié)議進行多媒體直播。
[0004]但是,這種直播方案一般僅用于對實時性要求高且對用戶數(shù)量要求不高的應(yīng)用場景。雖然數(shù)據(jù)傳輸實時性較高,但負載能力較低,不具有普遍適用性。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供一種多媒體直播方法及裝置,既能滿足數(shù)據(jù)傳輸?shù)膶崟r性,又能提高負載能力,具有普適性。
[0006]第一方面,本發(fā)明實施例提供了一種多媒體直播方法,該方法包括:
[0007]在直播過程中生成包含至少一個虛擬數(shù)據(jù)片段的片段標(biāo)識的多媒體描述文件,所述虛擬數(shù)據(jù)片段為未到達本地的多媒體數(shù)據(jù);
[0008]根據(jù)客戶端發(fā)送的播放列表請求消息將所述多媒體描述文件返回至所述客戶端,以使所述客戶端根據(jù)片段標(biāo)識請求播放的數(shù)據(jù)片段;
[0009]根據(jù)所述客戶端發(fā)送的片段標(biāo)識將對應(yīng)的實際數(shù)據(jù)片段返回至客戶端,以使所述客戶端播放實際接收的數(shù)據(jù)片段。
[0010]進一步的,所述方法還包括:
[0011 ]確定虛擬數(shù)據(jù)片段的播放時長;
[0012]根據(jù)所述客戶端發(fā)送的片段標(biāo)識將對應(yīng)的實際數(shù)據(jù)片段返回至客戶端,包括:
[0013]根據(jù)接收到客戶端發(fā)送的數(shù)據(jù)片段請求消息的時間、接收到的數(shù)據(jù)量和數(shù)據(jù)到達客戶端的延遲時間更新所述播放時長,并將更新后的播放時長及對應(yīng)的數(shù)據(jù)片段返回至客戶端,所述數(shù)據(jù)片段請求消息中包含片段標(biāo)識。
[0014]進一步的,所述方法還包括:
[0015]確定虛擬數(shù)據(jù)片段的起始播放時間,并將所述起始播放時間返回至客戶端,以使所述客戶端根據(jù)所述起始播放時間按時播放對應(yīng)的虛擬數(shù)據(jù)片段。
[0016]進一步的,確定虛擬數(shù)據(jù)片段的起始播放時間,包括:
[0017]根據(jù)已接收的數(shù)據(jù)片段的起始播放時間和播放時長確定虛擬數(shù)據(jù)片段的起始播放時間;
[0018]或者,根據(jù)已接收的數(shù)據(jù)片段的起始播放時間和更新后的播放時長確定虛擬數(shù)據(jù)片段的起始播放時間。
[0019]進一步的,所述播放時長和所述起始播放時間包含在所述多媒體描述文件中。
[0020]進一步的,所述多媒體描述文件包含預(yù)設(shè)個數(shù)數(shù)據(jù)片段;
[0021]所述方法還包括:
[0022]在未接收到數(shù)據(jù)片段或接收到的數(shù)據(jù)片段的個數(shù)少于所述預(yù)設(shè)個數(shù)時,觸發(fā)生成包含至少一個虛擬數(shù)據(jù)片段的片段標(biāo)識的多媒體描述文件。
[0023]進一步的,所述多媒體描述文件為M3U8描述文件,所述數(shù)據(jù)片段為TS數(shù)據(jù)流。
[0024]第二方面,本發(fā)明實施例還提供了一種多媒體直播裝置,該裝置包括:
[0025]文件生成模塊,用于在直播過程中生成包含至少一個虛擬數(shù)據(jù)片段的片段標(biāo)識的多媒體描述文件,所述虛擬數(shù)據(jù)片段為未到達本地的多媒體數(shù)據(jù);
[0026]文件發(fā)送模塊,用于根據(jù)客戶端發(fā)送的播放列表請求消息將所述多媒體描述文件返回至所述客戶端,以使所述客戶端根據(jù)片段標(biāo)識請求播放的數(shù)據(jù)片段;
[0027]數(shù)據(jù)發(fā)送模塊,用于根據(jù)所述客戶端發(fā)送的片段標(biāo)識將對應(yīng)的實際數(shù)據(jù)片段返回至客戶端,以使所述客戶端播放實際接收的數(shù)據(jù)片段。
[0028]進一步的,所述裝置還包括:
[0029]播放時長確定模塊,用于確定虛擬數(shù)據(jù)片段的播放時長;
[0030]所述數(shù)據(jù)發(fā)送模塊具體用于:
[0031 ]根據(jù)接收到客戶端發(fā)送的數(shù)據(jù)片段請求消息的時間、接收到的數(shù)據(jù)量和數(shù)據(jù)到達客戶端的延遲時間更新所述播放時長,并將更新后的播放時長及對應(yīng)的數(shù)據(jù)片段返回至客戶端,所述數(shù)據(jù)片段請求消息中包含片段標(biāo)識。
[0032]進一步的,所述裝置還包括:
[0033]起始時間確定模塊,用于確定虛擬數(shù)據(jù)片段的起始播放時間,并將所述起始播放時間返回至客戶端,以使所述客戶端根據(jù)所述起始播放時間按時播放對應(yīng)的虛擬數(shù)據(jù)片段。
[0034]進一步的,所述播放時長確定模塊具體用于:
[0035]根據(jù)已接收的數(shù)據(jù)片段的起始播放時間和播放時長確定虛擬數(shù)據(jù)片段的起始播放時間;或者,根據(jù)已接收的數(shù)據(jù)片段的起始播放時間和更新后的播放時長確定虛擬數(shù)據(jù)片段的起始播放時間。
[0036]進一步的,所述播放時長和所述起始播放時間包含在所述多媒體描述文件中。
[0037]進一步的,所述多媒體描述文件包含預(yù)設(shè)個數(shù)數(shù)據(jù)片段;
[0038]所述文件生成模塊還用于:
[0039]在未接收到數(shù)據(jù)片段或接收到的數(shù)據(jù)片段的個數(shù)少于所述預(yù)設(shè)個數(shù)時,觸發(fā)生成包含至少一個虛擬數(shù)據(jù)片段的片段標(biāo)識的多媒體描述文件。
[0040]進一步的,所述多媒體描述文件為M3U8描述文件,所述數(shù)據(jù)片段為TS數(shù)據(jù)流。
[0041]本發(fā)明實施例通過預(yù)先生成包含虛擬數(shù)據(jù)片段的片段標(biāo)識的多媒體描述文件,將對應(yīng)的多媒體描述文件預(yù)先發(fā)送至客戶端,再根據(jù)客戶端的數(shù)據(jù)片段播放請求將實際播放的數(shù)據(jù)片段返回至客戶端,而無需等到全部數(shù)據(jù)片段到達本地再生成多媒體描述文件,有效減少數(shù)據(jù)延遲時間,因此,本發(fā)明實施例既能滿足數(shù)據(jù)傳輸?shù)膶崟r性,又能提高負載能力,具有普適性。
【附圖說明】
[0042]圖1是本發(fā)明實施例一中的一種多媒體直播方法的流程圖;
[0043]圖2是本發(fā)明實施例二中的一種多媒體直播方法的流程圖;
[0044]圖3是本發(fā)明實施例三中的一種多媒體直播裝置的結(jié)構(gòu)圖。
【具體實施方式】
[0045]下面結(jié)合附圖和實施例對本發(fā)明作進一步的詳細說明。可以理解的是,此處所描述的具體實施例僅僅用于解釋本發(fā)明,而非對本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部結(jié)構(gòu)。
[0046]實施例一
[0047]圖1為本發(fā)明實施例一提供的一種多媒體直播方法的流程圖,本實施例可適用于多媒體直播的情況,該方法可以由本發(fā)明實施例提供的多媒體直播裝置來執(zhí)行,該裝置可采用硬件或軟件的方式實現(xiàn),該裝置也可集成于移動終端、平板電腦、固定終端或服務(wù)器等能夠向客戶端提供直播服務(wù)的設(shè)備中,如圖1所示,具體包括:
[0048]S101、在直播過程中生成包含至少一個虛擬數(shù)據(jù)片段的片段標(biāo)識的多媒體描述文件,所述虛擬數(shù)據(jù)片段為未到達本地的多媒體數(shù)據(jù)。
[0049]具體的,本實施例適用于如下場景,以執(zhí)行主體為服務(wù)器為例進行說明。在直播開始時,多媒體采集設(shè)備(例如,視頻采集設(shè)備或音頻采集設(shè)備)將現(xiàn)場采集到的數(shù)據(jù)按照預(yù)設(shè)周期(例如5s)傳送給服務(wù)器,傳輸?shù)臄?shù)據(jù)片段對應(yīng)為預(yù)設(shè)周期內(nèi)采集到的現(xiàn)場數(shù)據(jù),例如為播放時長為5s的數(shù)據(jù)片段。服務(wù)器接收到數(shù)據(jù)后會將若干個預(yù)設(shè)周期(包含I個)的數(shù)據(jù)片段對應(yīng)的片段標(biāo)識形成多媒體描述文件進行存儲,以等待客戶端的請求;或者根據(jù)協(xié)議標(biāo)準(zhǔn)將接收到的數(shù)據(jù)片段進行重新劃分,例如,將連續(xù)接收的1s數(shù)據(jù)形成一個數(shù)據(jù)片段,并定義對應(yīng)的片段標(biāo)識形成多媒體描述文件進行存儲,以等待客戶端的請求。為減少客戶端的播放延遲時間,保證客戶端播放的實時性,本實施例在檢測到即將進行現(xiàn)場直播時且未接收到數(shù)據(jù)片段之前或接收到的數(shù)據(jù)片段的個數(shù)少于多媒體文件中預(yù)定的預(yù)設(shè)個數(shù)時觸發(fā)生成多媒體描述文件。
[0050]其中,所述片段標(biāo)識可以為但不限于片段編號和片段存儲地址(例如,URL)。所述多媒體包括音頻和視頻。如果對應(yīng)的數(shù)據(jù)片段為已接收的數(shù)據(jù)片段,則直接為其分配片段編號或片段存儲地址。如果對應(yīng)的數(shù)據(jù)片段為虛擬數(shù)據(jù)片段,則為其設(shè)置對應(yīng)的片段編號,將每個片段編號對應(yīng)的片段存儲地址設(shè)置為空白,待接收到實際數(shù)據(jù)之后再為其分配實際的片段存儲地址,并建立每個片段編號與實際分配的片段存儲地址之間的映射關(guān)系;或者,預(yù)先為其隨機分配對應(yīng)的初始片段編號或初始片段存儲地址,待實際數(shù)據(jù)到達后再建立初始片段編號與實際分配的片段編號之間的對應(yīng)關(guān)系,或建立初始片段存儲地址與實際分配的初始片段存儲地址之間的對應(yīng)關(guān)系。
[0051 ]所述多媒體描述文件為由片段標(biāo)識組成的播放列表,其中至少包括一個虛擬數(shù)據(jù)片段的片段標(biāo)識。此外,所述多媒體描述文件還包含各數(shù)據(jù)片段對應(yīng)的起始播放時間和/或每個數(shù)據(jù)片段對應(yīng)的播放時長。其中,如果所述數(shù)據(jù)片段為已接收到的數(shù)據(jù)片段,則其對應(yīng)的起始播放時間為多媒體設(shè)備開始采集該數(shù)據(jù)片段的時間,與現(xiàn)場時間一致,其對應(yīng)的播放時長為多媒體的數(shù)據(jù)采集周期(見下述)。如果所述數(shù)據(jù)片段為虛擬數(shù)據(jù)片段,當(dāng)其前面已有接收的數(shù)據(jù)片段時,則虛擬數(shù)據(jù)片段對應(yīng)的起始播放時間為已接收的數(shù)據(jù)片段的起始播放時間加上播放時長,虛擬數(shù)據(jù)片段對應(yīng)的播放時長根據(jù)實際接收的數(shù)據(jù)情況進行設(shè)定,或者設(shè)置為數(shù)據(jù)采集周期;當(dāng)其前面未有接收的數(shù)據(jù)片段時,則將虛擬數(shù)據(jù)片段對應(yīng)的起始播放時間設(shè)置為當(dāng)前現(xiàn)場時間,對應(yīng)的播放時長設(shè)定為數(shù)據(jù)采集周期。
[0052]S102、根據(jù)客戶端發(fā)送的播放列表請求消息將所述多媒體描述文件返回至所述客戶端,以使所述客戶端根據(jù)片段標(biāo)識請求播放的數(shù)據(jù)片段。
[0053]在客戶端有直播請求時,首先向服務(wù)器發(fā)送播放列表請求消息,所述服務(wù)器將上述步驟SlOl生成的多媒體描述文件返回至所述客戶端,所述客戶端根據(jù)片段標(biāo)識請求播放的數(shù)據(jù)片段。
[0054]具體的,所述客戶端在請求數(shù)據(jù)片段時,根據(jù)所述多媒體文件中包含的各片段標(biāo)識對應(yīng)的起始播放時間,按照時間的先后順序依次向所述服務(wù)器發(fā)送數(shù)據(jù)片段請求消息,并將對應(yīng)的片段標(biāo)識添加在數(shù)據(jù)片段請求消息中。
[0055]S103、根據(jù)所述客戶端發(fā)送的片段標(biāo)識將對應(yīng)的實際數(shù)據(jù)片段返回至客戶端,以使所述客戶端播放實際接收的數(shù)據(jù)片段。
[0056]其中,實際接收數(shù)據(jù)片段可能包含整個采集周期的數(shù)據(jù),也可能為小于采集周期的數(shù)據(jù)。當(dāng)為整個采集周期的數(shù)據(jù)時,則將對應(yīng)的數(shù)據(jù)片段返回至客戶端,客戶端完成播放。當(dāng)為小于采集周期的數(shù)據(jù)時,為減少數(shù)據(jù)延遲及保證客戶端播放的流暢性,將接收到的數(shù)據(jù)實時傳輸至客戶端,直到滿一個采集周期。
[0057]本實施例通過預(yù)先生成包含虛擬數(shù)據(jù)片段的片段標(biāo)識的多媒體描述文件,將對應(yīng)的多媒體描述文件預(yù)先發(fā)送至客戶端,再根據(jù)客戶端的數(shù)據(jù)片段播放請求將實際播放的數(shù)據(jù)片段返回至客戶端,而無需等到全部數(shù)據(jù)片段到達本地再生成多媒體描述文件,有效減少數(shù)據(jù)延遲時間,因此,本發(fā)明實施例既能滿足數(shù)據(jù)傳輸?shù)膶崟r性,又能提高負載能力,具有普適性。
[0058]在上述技術(shù)方案的基礎(chǔ)上,為進一步減少數(shù)據(jù)延遲,所述方法還包括:
[0059]確定虛擬數(shù)據(jù)片段的播放時長;
[0060]根據(jù)所述客戶端發(fā)送的片段標(biāo)識將對應(yīng)的實際數(shù)據(jù)片段返回至客戶端,包括:
[0061 ]根據(jù)接收到客戶端發(fā)送的數(shù)據(jù)片段請求消息的時間、接收到的數(shù)據(jù)量和數(shù)據(jù)到達客戶端的延遲時間更新所述播放時長,并將更新后的播放時長及對應(yīng)的數(shù)據(jù)片段返回至客戶端,所述數(shù)據(jù)片段請求消息中包含片段標(biāo)識。
[0062]其中,虛擬數(shù)據(jù)片段的播放時長具體可根據(jù)上述實施例中的相關(guān)步驟進行確定,這里不再贅述。
[0063]服務(wù)器在接收到客戶端發(fā)送的數(shù)據(jù)片段請求消息后,根據(jù)接收到上述數(shù)據(jù)片段請求消息的時間、當(dāng)前接收到的多媒體采集設(shè)備發(fā)送的數(shù)據(jù)量,以及數(shù)據(jù)到達客戶端的延遲時間,更新所述播放時長,使所述數(shù)據(jù)片段到達客戶端開始播放之前能夠到達客戶端。
[0064]例如,如果客戶端當(dāng)前播放的數(shù)據(jù)片段的播放時長為5s,在該數(shù)據(jù)片段開始播放時,向服務(wù)器請求下一片段標(biāo)識對應(yīng)的數(shù)據(jù)片段,服務(wù)器接收到該請求消息后,根據(jù)當(dāng)前接收到的數(shù)據(jù)量(例如,此時共接收4s時長的數(shù)據(jù)),考慮到數(shù)據(jù)達到客戶端的延遲,則只將最近接收的3s時長的數(shù)據(jù)形成數(shù)據(jù)片段發(fā)送至客戶端,所述客戶端根據(jù)更新后的播放時長播放數(shù)據(jù)片段,從而使客戶端能夠連續(xù)播放。
[0065]在上述技術(shù)方案的基礎(chǔ)上,為保持直播在時間上的連續(xù)性,所述方法還包括:
[0066]確定虛擬數(shù)據(jù)片段的起始播放時間,并將所述起始播放時間返回至客戶端,以使所述客戶端根據(jù)所述起始播放時間按時播放對應(yīng)的虛擬數(shù)據(jù)片段。
[0067]其中,確定虛擬數(shù)據(jù)片段的起始播放時間包括以下兩種方式:
[0068]第一種方式:根據(jù)已接收的數(shù)據(jù)片段的起始播放時間和播放時長確定虛擬數(shù)據(jù)片段的起始播放時間。
[0069]所述虛擬數(shù)據(jù)片段的起始播放時間為已接收的數(shù)據(jù)片段的起始播放時間加上對應(yīng)的播放時長。例如,已接收的數(shù)據(jù)片段的起始播放時間為10:00,對應(yīng)的播放時長為5s,則與其相鄰的虛擬數(shù)據(jù)片段的起始播放時間為10:05。
[0070]第二種方式:根據(jù)已接收的數(shù)據(jù)片段的起始播放時間和更新后的播放時長確定虛擬數(shù)據(jù)片段的起始播放時間。
[0071]所述虛擬數(shù)據(jù)片段的起始播放時間為已接收的數(shù)據(jù)片段的起始播放時間加上更新后的播放時長。例如,已接收的數(shù)據(jù)片段的起始播放時間為10:00,以上述更新后的播放時長為3s為例,則與其相鄰的虛擬數(shù)據(jù)片段的起始播放時間為10:03。
[0072]在上述技術(shù)方案的基礎(chǔ)上,所述多媒體描述文件包含預(yù)設(shè)個數(shù)數(shù)據(jù)片段;
[0073]所述方法還包括:
[0074]在未接收到數(shù)據(jù)片段或接收到的數(shù)據(jù)片段的個數(shù)少于所述預(yù)設(shè)個數(shù)時,觸發(fā)生成包含至少一個虛擬數(shù)據(jù)片段的片段標(biāo)識的多媒體描述文件。
[0075]在上述技術(shù)方案的基礎(chǔ)上,本實施例在傳統(tǒng)Apple的動態(tài)碼率自適應(yīng)技術(shù)(HTTPLive Streaming,HLS)技術(shù)的基礎(chǔ)上進行實現(xiàn),則所述多媒體描述文件對應(yīng)為M3U8描述文件,所述數(shù)據(jù)片段對應(yīng)為TS數(shù)據(jù)流。
[0076]實施例二
[0077]圖2為本發(fā)明實施例二提供的一種多媒體直播方法的流程圖,本實施例在傳統(tǒng)HLS技術(shù)的基礎(chǔ)上進行實現(xiàn),為本發(fā)明的優(yōu)選實施例,如圖2所示,具體包括:
[0078]S201、在直播過程中生成M3U8描述文件,所述M3U8描述文件中至少包含一個虛擬數(shù)據(jù)片段的片段標(biāo)識、起始播放時間和播放時長。
[0079]在HLS技術(shù)中,服務(wù)端在生成M3U8描述文件時,一般會給出3段數(shù)據(jù)片段的片段標(biāo)識例如URL,并且這3段數(shù)據(jù)片段的片段標(biāo)識會隨著新接收到的數(shù)據(jù)片段的情況不斷地進行更新。其中,所述虛擬數(shù)據(jù)片段可以為第一段,也可以為第二段和第三段這里不做具體限定。
[0080]所述起始播放時間為多媒體采集設(shè)備采集每段現(xiàn)場數(shù)據(jù)時對應(yīng)的起始時間,播放時長限定為10s。具體的,對于已接收到的1s的數(shù)據(jù)片段,將其對應(yīng)的起始播放時間定義采集該段現(xiàn)場數(shù)據(jù)時對應(yīng)的起始時間,其對應(yīng)的播放時長定義為1s;對于未接收到1s的數(shù)據(jù)片段即虛擬數(shù)據(jù)片段,其對應(yīng)的播放時長也定義為10s,其對于的起始播放時間為已接收到的1s的數(shù)據(jù)片段的起始時間加上播放時長即10s。
[0081 ]本實例可采用如下程序來生成M3U8描述文件:
[0082]#EXTM3U
[0083]#EXT-X-TARGETDURAT1N:5
[0084]#EXTINF:5,
[0085]./0.ts
[0086]#EXTINF:5,
[0087]./l.ts
[0088]其中,#EXTM3U為每個M3U8文件第一行必須是這個tagJEXT-X-TARGETDURAT1N為指定最大的媒體段時間長度(秒),#EXTINF中指定的時間長度必須小于或等于這個最大值。該值只能出現(xiàn)一次。#EXTINF為描述單個媒體文件的長度。后面為媒體文件,如./0.ts。
[0089]S202、客戶端通過http請求M3U8描述文件。
[0090]S203、服務(wù)端向客戶端返回一個M3U8描述文件。
[0091]S204、客戶端解析M3U8描述文件獲取片段標(biāo)識播放列表,再按起始播放時間依次向服務(wù)器請求每一片段標(biāo)識對應(yīng)的TS數(shù)據(jù)流。
[0092]S205、服務(wù)端根據(jù)所述客戶端發(fā)送的片段標(biāo)識將對應(yīng)的實際數(shù)據(jù)片段返回至客戶端。
[0093]其中,實際接收數(shù)據(jù)片段可能為包含1s的數(shù)據(jù),也可能為小于1s的數(shù)據(jù)。當(dāng)為1s的數(shù)據(jù)時,則將對應(yīng)的數(shù)據(jù)片段返回至客戶端,客戶端完成播放。當(dāng)為小于1s的數(shù)據(jù)時,為減少數(shù)據(jù)延遲及保證客戶端播放的流暢性,將接收到的數(shù)據(jù)實時傳輸至客戶端,直到滿 1s0
[0094]S206、所述客戶端播放實際接收的數(shù)據(jù)片段。
[0095]在現(xiàn)有技術(shù)中,服務(wù)器返回M3U8描述文件的時候,是根據(jù)當(dāng)前已經(jīng)在服務(wù)器存在的3個1s的數(shù)據(jù)片段生成的,例如,服務(wù)器為了生成一個3段的M3U8描述文件,必須等這三段數(shù)據(jù)片段已經(jīng)到達本地才能生成,然后下發(fā)給客戶端。因此,這些數(shù)據(jù)片段已經(jīng)是產(chǎn)生了延時的,如果每一段數(shù)據(jù)片段有10秒,那么這就有30秒的延時了。等到客戶端再來請求每段數(shù)據(jù)片段時,延時就會更大了。這種時延級別,是不足以支撐大多數(shù)應(yīng)用場景的,比如體育直播,互動教育直播等。而本實施例通過預(yù)先生成包含虛擬數(shù)據(jù)片段的M3U8描述文件,可以有效地節(jié)省這個延時,例如,該M3U8描述文件包含一個虛擬數(shù)據(jù)片段,那么至少可以節(jié)省I Os的延遲時間。
[0096]實施例三
[0097]圖3所示為本發(fā)明實施例三提供的一種多媒體直播裝置的結(jié)構(gòu)示意圖,本實施例可適用于多媒體直播的情況,該裝置可采用硬件或軟件的方式實現(xiàn),該裝置也可集成于移動終端、平板電腦、固定終端或服務(wù)器中,該裝置的具體結(jié)構(gòu)如下:文件生成模塊31、文件發(fā)送模塊32和數(shù)據(jù)發(fā)送模塊33。
[0098]所述文件生成模塊31用于在直播過程中生成包含至少一個虛擬數(shù)據(jù)片段的片段標(biāo)識的多媒體描述文件,所述虛擬數(shù)據(jù)片段為未到達本地的多媒體數(shù)據(jù)。
[0099]所述文件發(fā)送模塊32用于根據(jù)客戶端發(fā)送的播放列表請求消息將所述多媒體描述文件返回至所述客戶端,以使所述客戶端根據(jù)片段標(biāo)識請求播放的數(shù)據(jù)片段。
[0100]所述數(shù)據(jù)發(fā)送模塊33用于根據(jù)所述客戶端發(fā)送的片段標(biāo)識將對應(yīng)的實際數(shù)據(jù)片段返回至客戶端,以使所述客戶端播放實際接收的數(shù)據(jù)片段。
[0101]上述產(chǎn)品可執(zhí)行本發(fā)明任意實施例所提供的方法,具備執(zhí)行方法相應(yīng)的功能模塊和有益效果。
[0102]在上述技術(shù)方案的基礎(chǔ)上,所述裝置還包括:播放時長確定模塊34。
[0103]所述播放時長確定模塊34用于確定虛擬數(shù)據(jù)片段的播放時長。
[0104]所述數(shù)據(jù)發(fā)送模塊33具體用于根據(jù)接收到客戶端發(fā)送的數(shù)據(jù)片段請求消息的時間、接收到的數(shù)據(jù)量和數(shù)據(jù)到達客戶端的延遲時間更新所述播放時長,并將更新后的播放時長及對應(yīng)的數(shù)據(jù)片段返回至客戶端,所述數(shù)據(jù)片段請求消息中包含片段標(biāo)識。
[0105]在上述技術(shù)方案的基礎(chǔ)上,所述裝置還包括:起始時間確定模塊35。
[0106]所述起始時間確定模塊35用于確定虛擬數(shù)據(jù)片段的起始播放時間,并將所述起始播放時間返回至客戶端,以使所述客戶端根據(jù)所述起始播放時間按時播放對應(yīng)的虛擬數(shù)據(jù)片段。
[0107]在上述技術(shù)方案的基礎(chǔ)上,所述播放時長確定模塊34具體用于根據(jù)已接收的數(shù)據(jù)片段的起始播放時間和播放時長確定虛擬數(shù)據(jù)片段的起始播放時間;或者,根據(jù)已接收的數(shù)據(jù)片段的起始播放時間和更新后的播放時長確定虛擬數(shù)據(jù)片段的起始播放時間。
[0108]在上述技術(shù)方案的基礎(chǔ)上,所述播放時長和所述起始播放時間包含在所述多媒體描述文件中。
[0109]在上述技術(shù)方案的基礎(chǔ)上,所述多媒體描述文件包含預(yù)設(shè)個數(shù)數(shù)據(jù)片段;
[0110]所述文件生成模塊31還用于在未接收到數(shù)據(jù)片段或接收到的數(shù)據(jù)片段的個數(shù)少于所述預(yù)設(shè)個數(shù)時,觸發(fā)生成包含至少一個虛擬數(shù)據(jù)片段的片段標(biāo)識的多媒體描述文件。
[0111]在上述技術(shù)方案的基礎(chǔ)上,所述多媒體描述文件為M3U8描述文件,所述數(shù)據(jù)片段為TS數(shù)據(jù)流。
[0112]上述產(chǎn)品同樣可執(zhí)行本發(fā)明任意實施例所提供的方法,具備執(zhí)行方法相應(yīng)的功能模塊和有益效果。
[0113]注意,上述僅為本發(fā)明的較佳實施例及所運用技術(shù)原理。本領(lǐng)域技術(shù)人員會理解,本發(fā)明不限于這里所述的特定實施例,對本領(lǐng)域技術(shù)人員來說能夠進行各種明顯的變化、重新調(diào)整和替代而不會脫離本發(fā)明的保護范圍。因此,雖然通過以上實施例對本發(fā)明進行了較為詳細的說明,但是本發(fā)明不僅僅限于以上實施例,在不脫離本發(fā)明構(gòu)思的情況下,還可以包括更多其他等效實施例,而本發(fā)明的范圍由所附的權(quán)利要求范圍決定。
【主權(quán)項】
1.一種多媒體直播方法,其特征在于,包括: 在直播過程中生成包含至少一個虛擬數(shù)據(jù)片段的片段標(biāo)識的多媒體描述文件,所述虛擬數(shù)據(jù)片段為未到達本地的多媒體數(shù)據(jù); 根據(jù)客戶端發(fā)送的播放列表請求消息將所述多媒體描述文件返回至所述客戶端,以使所述客戶端根據(jù)片段標(biāo)識請求播放的數(shù)據(jù)片段; 根據(jù)所述客戶端發(fā)送的片段標(biāo)識將對應(yīng)的實際數(shù)據(jù)片段返回至客戶端,以使所述客戶端播放實際接收的數(shù)據(jù)片段。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括: 確定虛擬數(shù)據(jù)片段的播放時長; 根據(jù)所述客戶端發(fā)送的片段標(biāo)識將對應(yīng)的實際數(shù)據(jù)片段返回至客戶端,包括: 根據(jù)接收到客戶端發(fā)送的數(shù)據(jù)片段請求消息的時間、接收到的數(shù)據(jù)量和數(shù)據(jù)到達客戶端的延遲時間更新所述播放時長,并將更新后的播放時長及對應(yīng)的數(shù)據(jù)片段返回至客戶端,所述數(shù)據(jù)片段請求消息中包含片段標(biāo)識。3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,還包括: 確定虛擬數(shù)據(jù)片段的起始播放時間,并將所述起始播放時間返回至客戶端,以使所述客戶端根據(jù)所述起始播放時間按時播放對應(yīng)的虛擬數(shù)據(jù)片段。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,確定虛擬數(shù)據(jù)片段的起始播放時間,包括: 根據(jù)已接收的數(shù)據(jù)片段的起始播放時間和播放時長確定虛擬數(shù)據(jù)片段的起始播放時間; 或者,根據(jù)已接收的數(shù)據(jù)片段的起始播放時間和更新后的播放時長確定虛擬數(shù)據(jù)片段的起始播放時間。5.根據(jù)權(quán)利要求2或4所述的方法,其特征在于,所述播放時長和所述起始播放時間包含在所述多媒體描述文件中。6.根據(jù)權(quán)利要求1或2或4所述的方法,其特征在于,所述多媒體描述文件包含預(yù)設(shè)個數(shù)數(shù)據(jù)片段; 所述方法還包括: 在未接收到數(shù)據(jù)片段或接收到的數(shù)據(jù)片段的個數(shù)少于所述預(yù)設(shè)個數(shù)時,觸發(fā)生成包含至少一個虛擬數(shù)據(jù)片段的片段標(biāo)識的多媒體描述文件。7.根據(jù)權(quán)利要求1或2或4所述的方法,其特征在于,所述多媒體描述文件為M3U8描述文件,所述數(shù)據(jù)片段為TS數(shù)據(jù)流。8.一種多媒體直播裝置,其特征在于,包括: 文件生成模塊,用于在直播過程中生成包含至少一個虛擬數(shù)據(jù)片段的片段標(biāo)識的多媒體描述文件,所述虛擬數(shù)據(jù)片段為未到達本地的多媒體數(shù)據(jù); 文件發(fā)送模塊,用于根據(jù)客戶端發(fā)送的播放列表請求消息將所述多媒體描述文件返回至所述客戶端,以使所述客戶端根據(jù)片段標(biāo)識請求播放的數(shù)據(jù)片段; 數(shù)據(jù)發(fā)送模塊,用于根據(jù)所述客戶端發(fā)送的片段標(biāo)識將對應(yīng)的實際數(shù)據(jù)片段返回至客戶端,以使所述客戶端播放實際接收的數(shù)據(jù)片段。9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,還包括: 播放時長確定模塊,用于確定虛擬數(shù)據(jù)片段的播放時長; 所述數(shù)據(jù)發(fā)送模塊具體用于: 根據(jù)接收到客戶端發(fā)送的數(shù)據(jù)片段請求消息的時間、接收到的數(shù)據(jù)量和數(shù)據(jù)到達客戶端的延遲時間更新所述播放時長,并將更新后的播放時長及對應(yīng)的數(shù)據(jù)片段返回至客戶端,所述數(shù)據(jù)片段請求消息中包含片段標(biāo)識。10.根據(jù)權(quán)利要求8或9所述的裝置,其特征在于,還包括: 起始時間確定模塊,用于確定虛擬數(shù)據(jù)片段的起始播放時間,并將所述起始播放時間返回至客戶端,以使所述客戶端根據(jù)所述起始播放時間按時播放對應(yīng)的虛擬數(shù)據(jù)片段。11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述播放時長確定模塊具體用于: 根據(jù)已接收的數(shù)據(jù)片段的起始播放時間和播放時長確定虛擬數(shù)據(jù)片段的起始播放時間;或者,根據(jù)已接收的數(shù)據(jù)片段的起始播放時間和更新后的播放時長確定虛擬數(shù)據(jù)片段的起始播放時間。12.根據(jù)權(quán)利要求9或11所述的裝置,其特征在于,所述播放時長和所述起始播放時間包含在所述多媒體描述文件中。13.根據(jù)權(quán)利要求8或9或11所述的裝置,其特征在于,所述多媒體描述文件包含預(yù)設(shè)個數(shù)數(shù)據(jù)片段; 所述文件生成模塊還用于: 在未接收到數(shù)據(jù)片段或接收到的數(shù)據(jù)片段的個數(shù)少于所述預(yù)設(shè)個數(shù)時,觸發(fā)生成包含至少一個虛擬數(shù)據(jù)片段的片段標(biāo)識的多媒體描述文件。14.根據(jù)權(quán)利要求8或9或11所述的裝置,其特征在于,所述多媒體描述文件為M3U8描述文件,所述數(shù)據(jù)片段為TS數(shù)據(jù)流。
【文檔編號】H04N21/262GK105872598SQ201610262765
【公開日】2016年8月17日
【申請日】2016年4月25日
【發(fā)明人】蔡鈞, 陳明鵬
【申請人】樂視控股(北京)有限公司, 樂視云計算有限公司