本發(fā)明涉及信息處理技術(shù)領(lǐng)域,具體涉及一種回放視頻文件的生成方法,以及一種回放視頻文件的生成裝置。
背景技術(shù):
流數(shù)據(jù)為可以采用流式傳輸?shù)姆绞皆诰W(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù),大型網(wǎng)站系統(tǒng)通常依賴(lài)于內(nèi)容分發(fā)網(wǎng)絡(luò)(Content Delivery Network,CDN)對(duì)流數(shù)據(jù)進(jìn)行傳輸。
視頻直播過(guò)程中,視頻直播端將實(shí)時(shí)錄制的視頻流數(shù)據(jù)推送至內(nèi)容分發(fā)網(wǎng)絡(luò)中的節(jié)點(diǎn)服務(wù)器,節(jié)點(diǎn)服務(wù)器會(huì)對(duì)接收的視頻流數(shù)據(jù)進(jìn)行緩存處理,待視頻直播結(jié)束后,將緩存的所有視頻流數(shù)據(jù)緩存為指定格式的回放視頻文件,例如mp4文件,供用戶調(diào)用和回看。
但是,現(xiàn)有技術(shù)中的回放視頻文件是在視頻直播結(jié)束后生成的,用戶只有等待視頻直播結(jié)束后才能夠從節(jié)點(diǎn)服務(wù)器調(diào)用到回放視頻文件,因此直播視頻存在回放延遲問(wèn)題,用戶體驗(yàn)較差。
另外,為使回放視頻文件適用于多種播放平臺(tái),節(jié)點(diǎn)服務(wù)器會(huì)對(duì)回放視頻文件進(jìn)行格式轉(zhuǎn)換,將其轉(zhuǎn)換成多種播放平臺(tái)均支持的格式。然而,由于回放視頻文件的尺寸較大,格式轉(zhuǎn)換操作需要耗費(fèi)較長(zhǎng)時(shí)間,因此針對(duì)回放視頻文件的格式轉(zhuǎn)換操作會(huì)進(jìn)一步加深直播視頻的回放延遲問(wèn)題,進(jìn)一步降低用戶體驗(yàn)。
技術(shù)實(shí)現(xiàn)要素:
鑒于上述問(wèn)題,提出了本發(fā)明以便提供一種克服上述問(wèn)題或者至少部分地解決上述問(wèn)題的回放視頻文件的生成方法和相應(yīng)的回放視頻文件的生成裝置。
依據(jù)本發(fā)明的一個(gè)方面,提供了一種回放視頻文件的生成方法,包括:
抓取視頻流數(shù)據(jù)并根據(jù)抓取的視頻流數(shù)據(jù)生成視頻流片段;
對(duì)當(dāng)前生成的視頻流片段進(jìn)行設(shè)定處理;
保存處理后的視頻流片段以供回放時(shí)調(diào)用。
可選地,在所述抓取視頻流數(shù)據(jù)并根據(jù)抓取的視頻流數(shù)據(jù)生成視頻流片段之后,所述方法還包括:
針對(duì)所述視頻流片段添加第一關(guān)聯(lián)標(biāo)識(shí);
根據(jù)所述第一關(guān)聯(lián)標(biāo)識(shí)關(guān)聯(lián)多個(gè)連續(xù)的視頻流片段,并將關(guān)聯(lián)的視頻流片段組成回放視頻文件。
可選地,所述視頻流片段由至少一個(gè)視頻畫(huà)面組組成。
可選地,所述抓取視頻流數(shù)據(jù)并根據(jù)抓取的視頻流數(shù)據(jù)生成視頻流片段包括:
依據(jù)預(yù)設(shè)條件抓取視頻流數(shù)據(jù)并將抓取的視頻流數(shù)據(jù)以視頻畫(huà)面組為單位進(jìn)行解析;
將至少一個(gè)連續(xù)的視頻畫(huà)面組存儲(chǔ)為視頻流片段。
可選地,所述對(duì)當(dāng)前生成的視頻流片段進(jìn)行設(shè)定處理包括:
將各個(gè)視頻流片段轉(zhuǎn)換為移動(dòng)客戶端可播放的設(shè)定格式。
可選地,在所述抓取視頻流數(shù)據(jù)并根據(jù)抓取的視頻流數(shù)據(jù)生成視頻流片段之后,所述方法還包括:
查找所述視頻流片段的視頻畫(huà)面組中時(shí)間偏移的問(wèn)題視頻幀;
對(duì)所述問(wèn)題視頻幀進(jìn)行修復(fù)。
可選地,所述查找所述視頻流片段的視頻畫(huà)面組中時(shí)間偏移的問(wèn)題視頻幀包括:
查找與上一視頻幀的時(shí)間差超出設(shè)定閾值的視頻幀。
可選地,在所述對(duì)所述問(wèn)題視頻幀進(jìn)行修復(fù)之前,所述方法還包括:
判定所述問(wèn)題視頻幀為I幀或P幀。
可選地,所述對(duì)所述問(wèn)題視頻幀進(jìn)行修復(fù)包括:
若所述問(wèn)題視頻幀為P幀,則刪除所述P幀以及后面與其連續(xù)的P幀。
可選地,所述對(duì)所述問(wèn)題視頻幀進(jìn)行修復(fù)還包括:
在所述問(wèn)題視頻幀的前一視頻幀后面進(jìn)行切片處理,將所述前一視頻幀作為第一目標(biāo)視頻流片段的最后一個(gè)視頻數(shù)據(jù)幀;
針對(duì)所述第一目標(biāo)視頻流片段添加與下一目標(biāo)視頻片段的第二關(guān)聯(lián)標(biāo)識(shí)。
可選地,所述對(duì)所述問(wèn)題視頻幀進(jìn)行修復(fù)包括:
若所述問(wèn)題視頻幀為I幀,則在所述I幀之前進(jìn)行切片處理,將所述I幀作為第二目標(biāo)視頻流片段的第一個(gè)視頻數(shù)據(jù)幀;
針對(duì)所述第二目標(biāo)視頻流片段添加與上一目標(biāo)視頻片段的第二關(guān)聯(lián)標(biāo)識(shí)。
可選地,所述第二關(guān)聯(lián)標(biāo)識(shí)為順序編號(hào)、時(shí)間信息、關(guān)聯(lián)的前一視頻片段和關(guān)聯(lián)的后一視頻片段之中至少一種。
根據(jù)本發(fā)明的另一個(gè)方面,提供了一種回放視頻文件的生成裝置,包括:
視頻流片段生成模塊,用于抓取視頻流數(shù)據(jù)并根據(jù)抓取的視頻流數(shù)據(jù)生成視頻流片段;
設(shè)定處理進(jìn)行模塊,用于對(duì)當(dāng)前生成的視頻流片段進(jìn)行設(shè)定處理;
視頻流片段保存模塊,用于保存處理后的視頻流片段以供回放時(shí)調(diào)用。
可選地,所述裝置還包括:
第一關(guān)聯(lián)標(biāo)識(shí)添加模塊,用于在所述抓取視頻流數(shù)據(jù)并根據(jù)抓取的視頻流數(shù)據(jù)生成視頻流片段之后,針對(duì)所述視頻流片段添加第一關(guān)聯(lián)標(biāo)識(shí);
視頻流片段關(guān)聯(lián)模塊,用于根據(jù)所述第一關(guān)聯(lián)標(biāo)識(shí)關(guān)聯(lián)多個(gè)連續(xù)的視頻流片段,并將關(guān)聯(lián)的視頻流片段組成回放視頻文件。
可選地,所述視頻流片段由至少一個(gè)視頻畫(huà)面組組成。
可選地,所述視頻流片段生成模塊包括:
視頻流數(shù)據(jù)抓取子模塊,用于依據(jù)預(yù)設(shè)條件抓取視頻流數(shù)據(jù);
視頻流數(shù)據(jù)解析子模塊,用于將抓取的視頻流數(shù)據(jù)以視頻畫(huà)面組為單位進(jìn)行解析;
視頻流片段存儲(chǔ)子模塊,用于將至少一個(gè)連續(xù)的視頻畫(huà)面組存儲(chǔ)為視頻流片段。
可選地,所述設(shè)定處理進(jìn)行模塊,具體用于將各個(gè)視頻流片段轉(zhuǎn)換為移動(dòng)客戶端可播放的設(shè)定格式。
可選地,所述裝置還包括:
問(wèn)題視頻幀查找模塊,用于在所述抓取視頻流數(shù)據(jù)并根據(jù)抓取的視頻流數(shù)據(jù)生成視頻流片段之后,查找所述視頻流片段的視頻畫(huà)面組中時(shí)間偏移的問(wèn)題視頻幀;
問(wèn)題視頻幀修復(fù)模塊,用于對(duì)所述問(wèn)題視頻幀進(jìn)行修復(fù)。
可選地,所述問(wèn)題視頻幀查找模塊,具體用于查找與上一視頻幀的時(shí)間差超出設(shè)定閾值的視頻幀。
可選地,所述裝置還包括:
幀種類(lèi)判斷模塊,用于在所述對(duì)所述問(wèn)題視頻幀進(jìn)行修復(fù)之前,判定所述問(wèn)題視頻幀為I幀或P幀。
可選地,所述問(wèn)題視頻幀修復(fù)模塊包括:
P幀刪除子模塊,用于若所述問(wèn)題視頻幀為P幀,則刪除所述P幀以及后面與其連續(xù)的P幀。
可選地,所述問(wèn)題視頻幀修復(fù)模塊還包括:
第一切片處理進(jìn)行子模塊,用于在所述問(wèn)題視頻幀的前一視頻幀后面進(jìn)行切片處理,將所述前一視頻幀作為第一目標(biāo)視頻流片段的最后一個(gè)視頻數(shù)據(jù)幀;
第二關(guān)聯(lián)標(biāo)識(shí)添加子模塊,用于針對(duì)所述第一目標(biāo)視頻流片段添加與下一目標(biāo)視頻片段的第二關(guān)聯(lián)標(biāo)識(shí)。
可選地,所述問(wèn)題視頻幀修復(fù)模塊包括:
第二切片處理進(jìn)行子模塊,用于若所述問(wèn)題視頻幀為I幀,則在所述I幀之前進(jìn)行切片處理,將所述I幀作為第二目標(biāo)視頻流片段的第一個(gè)視頻數(shù)據(jù)幀;
第二關(guān)聯(lián)標(biāo)識(shí)增添子模塊,用于針對(duì)所述第二目標(biāo)視頻流片段添加與上一目標(biāo)視頻片段的第二關(guān)聯(lián)標(biāo)識(shí)。
可選地,所述第二關(guān)聯(lián)標(biāo)識(shí)為順序編號(hào)、時(shí)間信息、關(guān)聯(lián)的前一視頻片段和關(guān)聯(lián)的后一視頻片段之中至少一種。
依據(jù)本發(fā)明實(shí)施例,對(duì)上傳的視頻流數(shù)據(jù)進(jìn)行抓取操作,并根據(jù)抓取的視頻流數(shù)據(jù)生成視頻流片段,視頻流片段的尺寸小于抓取的視頻流數(shù)據(jù)所屬的完整視頻流數(shù)據(jù)的尺寸,相比于現(xiàn)有技術(shù)待視頻直播結(jié)束后才生成回放視頻文件,本發(fā)明在直播過(guò)程中即可生成可供用戶調(diào)用和回放的視頻流片段,有效解決了直播視頻的回放延遲問(wèn)題,縮短了用戶等待回看直播視頻的時(shí)間,保證了用戶體驗(yàn)。
并且,本發(fā)明還對(duì)視頻流片段進(jìn)行設(shè)定處理,由于視頻流片段的尺寸較小,因此僅需耗費(fèi)較短時(shí)間即可完成對(duì)尺寸較小的視頻流片段的設(shè)定處理,相比于現(xiàn)有技術(shù)中待直播結(jié)束后對(duì)緩存的整個(gè)視頻流數(shù)據(jù)進(jìn)行設(shè)定處理,本發(fā)明在視頻直播結(jié)束時(shí)基本完成對(duì)整個(gè)視頻流數(shù)據(jù)的設(shè)定處理,進(jìn)一步解決了直播視頻的回放延遲問(wèn)題。
同時(shí),本發(fā)明還針對(duì)各個(gè)視頻流片段添加第一關(guān)聯(lián)標(biāo)識(shí),并根據(jù)第一關(guān)聯(lián)標(biāo)識(shí)關(guān)聯(lián)多個(gè)連續(xù)的視頻流片段,在識(shí)別到某一視頻流片段攜帶相關(guān)的第一關(guān)聯(lián)標(biāo)識(shí)后,無(wú)條件播放該視頻流片段,從而保證多個(gè)視頻流片段的連續(xù)播放。
另外,本發(fā)明中視頻流片段可以由至少一個(gè)視頻畫(huà)面組組成,在對(duì)視頻流片段進(jìn)行關(guān)聯(lián)前,本發(fā)明還可以對(duì)視頻流片段的視頻畫(huà)面組中出現(xiàn)時(shí)間偏移的問(wèn)題視頻幀進(jìn)行查找和修復(fù),對(duì)問(wèn)題視頻幀的修復(fù)操作保證了視頻流片段中至少一個(gè)視頻畫(huà)面組的連續(xù)播放。
上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書(shū)的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。
附圖說(shuō)明
通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
圖1示出了根據(jù)本發(fā)明實(shí)施例一的一種回放視頻文件的生成方法的步驟流程示意圖;
圖2示出了根據(jù)本發(fā)明實(shí)施例二的一種回放視頻文件的生成方法的步驟流程示意圖;
圖3示出了根據(jù)本發(fā)明實(shí)施例三的一種回放視頻文件的生成裝置的結(jié)構(gòu)框圖;
圖4示出了根據(jù)本發(fā)明實(shí)施例四的一種回放視頻文件的生成裝置的結(jié)構(gòu)框圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開(kāi)的示例性實(shí)施例。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
參照?qǐng)D1,示出了根據(jù)本發(fā)明實(shí)施例一的一種回放視頻文件的生成方法的步驟流程示意圖,所述方法具體可以包括如下步驟:
步驟101,抓取視頻流數(shù)據(jù)并根據(jù)抓取的視頻流數(shù)據(jù)生成視頻流片段。
本發(fā)明實(shí)施例所述的方法應(yīng)用于存在以流式傳輸方式傳輸?shù)囊曨l數(shù)據(jù)的場(chǎng)景,例如應(yīng)用在視頻直播場(chǎng)景、視頻轉(zhuǎn)播場(chǎng)景、視頻轉(zhuǎn)播過(guò)程等。視頻流上傳端將視頻流數(shù)據(jù)上傳至網(wǎng)絡(luò)服務(wù)器,視頻請(qǐng)求端從網(wǎng)絡(luò)服務(wù)器獲取視頻數(shù)據(jù)并對(duì)其進(jìn)行播放。
現(xiàn)有方案中回放視頻文件是在所有視頻流數(shù)據(jù)接收結(jié)束后生成的,回放視頻文件存在生成延遲問(wèn)題、直播視頻存在回放延遲問(wèn)題。
為解決回放視頻文件的生成延遲問(wèn)題,縮短用戶等待回看已播放的視頻的時(shí)間,本實(shí)施例對(duì)接收的視頻流數(shù)據(jù)進(jìn)行抓取,并根據(jù)抓取的視頻流數(shù)據(jù)生成視頻流片段,視頻流片段的尺寸小于完整視頻的尺寸,生成的視頻流片段具有可調(diào)用和可回放功能,視頻請(qǐng)求端可以在視頻流片段生成后從網(wǎng)絡(luò)服務(wù)器調(diào)用視頻流片段并對(duì)其進(jìn)行播放。
由于視頻流片段是在視頻直播過(guò)程中生成的,視頻請(qǐng)求端可以在視頻直播過(guò)程中對(duì)已生成的視頻流片段進(jìn)行調(diào)用,用戶可以在視頻直播過(guò)程中回看已播放的視頻流數(shù)據(jù),因此本方法有效縮短了用戶等待觀看回放視頻文件的時(shí)間,有效解決了直播視頻的回放延遲問(wèn)題。
在視頻流數(shù)據(jù)的抓取過(guò)程中,可以按照預(yù)設(shè)規(guī)則抓取視頻流數(shù)據(jù),例如按照預(yù)設(shè)抓取時(shí)長(zhǎng)對(duì)視頻流數(shù)據(jù)進(jìn)行抓取、按照預(yù)設(shè)數(shù)據(jù)尺寸對(duì)視頻流數(shù)據(jù)進(jìn)行抓取,生成視頻流片段。
步驟102,對(duì)當(dāng)前生成的視頻流片段進(jìn)行設(shè)定處理。
現(xiàn)有方法待所有視頻流數(shù)據(jù)傳輸結(jié)束后,對(duì)接收并緩存的所有視頻流數(shù)據(jù)進(jìn)行設(shè)定處理,例如對(duì)所有視頻流數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換處理。由于所有視頻流數(shù)據(jù)的尺寸較大,對(duì)所有流數(shù)據(jù)的設(shè)定處理需要耗費(fèi)較長(zhǎng)時(shí)間,因此該操作會(huì)延長(zhǎng)回放視頻文件的生成時(shí)間、加深直播視頻的回放延遲問(wèn)題。
而本申請(qǐng)?jiān)趯?duì)接收的視頻流數(shù)據(jù)進(jìn)行抓取并生成視頻流片段后,對(duì)視頻流片段進(jìn)行設(shè)定處理,處理后的視頻流片段可在多種播放平臺(tái)上播放。例如,對(duì)視頻流片段進(jìn)行格式處理,將視頻流數(shù)據(jù)的mp4(MPEG-4Part 14)文件格式轉(zhuǎn)碼成HLS(HTTP Live Streaming)文件格式,使處理后的視頻流數(shù)據(jù)適用于多種播放平臺(tái)。
由于視頻流片段的尺寸較小,因此針對(duì)視頻流片段的設(shè)定處理僅需耗費(fèi)較短時(shí)間。在視頻流數(shù)據(jù)的接收過(guò)程中,視頻流片段不斷生成,當(dāng)生成一新的視頻流片段后即對(duì)該片段進(jìn)行設(shè)定處理,當(dāng)所有視頻流數(shù)據(jù)接收結(jié)束后,僅需耗費(fèi)較短時(shí)間對(duì)最后一個(gè)視頻流片段進(jìn)行設(shè)定處理,即可完成對(duì)所有視頻流片段即所有視頻流數(shù)據(jù)的設(shè)定處理,因此相對(duì)于現(xiàn)有方案,本實(shí)施例可以有效解決直播視頻的回放延遲問(wèn)題,提高用戶體驗(yàn)。
步驟103,保存處理后的視頻流片段以供回放時(shí)調(diào)用。
對(duì)生成的視頻流片段進(jìn)行設(shè)定處理,得到多種平臺(tái)支持的視頻流片段,以在網(wǎng)絡(luò)服務(wù)器實(shí)現(xiàn)本申請(qǐng)的方案為例,網(wǎng)絡(luò)服務(wù)器對(duì)處理后的視頻流片段進(jìn)行保存,并生成對(duì)應(yīng)的播放地址。網(wǎng)絡(luò)服務(wù)器可以根據(jù)播放端發(fā)送的調(diào)用請(qǐng)求將視頻流片段的播放地址發(fā)送給播放端,播放端可以通過(guò)訪問(wèn)播放地址播放對(duì)應(yīng)的視頻流片段,供用戶回看已播放的直播視頻內(nèi)容。
具體可以將處理后的單個(gè)視頻流片段組成回放視頻文件,針對(duì)每個(gè)視頻流片段生成一播放地址,供視頻請(qǐng)求端調(diào)用;也可以將處理后的幾個(gè)視頻流片段組成回放視頻文件,針對(duì)幾個(gè)視頻流片段生成一播放地址;還可以在設(shè)定處理結(jié)束后,將處理后的所有視頻流片段組成完整的回放視頻文件,針對(duì)完整的回放視頻文件生成一播放地址,以供根據(jù)播放地址調(diào)出該回放視頻文件。
依據(jù)本發(fā)明實(shí)施例,對(duì)上傳的視頻流數(shù)據(jù)進(jìn)行抓取操作,并根據(jù)抓取的視頻流數(shù)據(jù)生成視頻流片段,視頻流片段的尺寸小于抓取的視頻流數(shù)據(jù)所屬的完整視頻流數(shù)據(jù)的尺寸,相比于現(xiàn)有技術(shù)待視頻直播結(jié)束后才生成回放視頻文件,本發(fā)明在直播過(guò)程中即可生成可供用戶調(diào)用和回放的視頻流片段,有效解決了直播視頻的回放延遲問(wèn)題,縮短了用戶等待回看直播視頻的時(shí)間,保證了用戶體驗(yàn)。
并且,本發(fā)明還對(duì)視頻流片段進(jìn)行設(shè)定處理,由于視頻流片段的尺寸較小,因此僅需耗費(fèi)較短時(shí)間即可完成對(duì)尺寸較小的視頻流片段的設(shè)定處理,相比于現(xiàn)有技術(shù)中待直播結(jié)束后對(duì)緩存的整個(gè)視頻流數(shù)據(jù)進(jìn)行設(shè)定處理,本方法在視頻直播結(jié)束時(shí)基本完成對(duì)整個(gè)視頻流數(shù)據(jù)的設(shè)定處理,進(jìn)一步解決了直播視頻的回放延遲問(wèn)題。
參照?qǐng)D2,示出了根據(jù)本發(fā)明實(shí)施例二的一種回放視頻文件的生成方法的步驟流程示意圖,所述方法具體可以包括如下步驟:
步驟201,依據(jù)預(yù)設(shè)條件抓取視頻流數(shù)據(jù)并將抓取的視頻流數(shù)據(jù)以視頻畫(huà)面組為單位進(jìn)行解析。
本發(fā)明實(shí)施例所述的方法應(yīng)用于存在以流式傳輸方式傳輸?shù)囊曨l數(shù)據(jù)的場(chǎng)景,例如應(yīng)用在視頻直播過(guò)程、視頻轉(zhuǎn)播過(guò)程、視頻轉(zhuǎn)播過(guò)程。視頻流數(shù)據(jù)上傳端可以以幀為單位對(duì)視頻流數(shù)據(jù)進(jìn)行傳輸,相應(yīng)地網(wǎng)絡(luò)服務(wù)器接收按幀傳輸?shù)囊曨l流數(shù)據(jù)。
本發(fā)明實(shí)施例可以預(yù)先設(shè)置抓取視頻流數(shù)據(jù)的條件,預(yù)設(shè)條件可以限定所抓取的視頻流數(shù)據(jù)的尺寸、視頻流數(shù)據(jù)的時(shí)長(zhǎng)。針對(duì)網(wǎng)絡(luò)服務(wù)器性能較好的情況,可以限定較小的視頻流數(shù)據(jù)尺寸或時(shí)長(zhǎng),如此可以盡快對(duì)實(shí)時(shí)抓取的視頻流數(shù)據(jù)進(jìn)行傳輸,從而使視頻流數(shù)據(jù)的傳輸具有更好的實(shí)時(shí)性。
視頻畫(huà)面組(Group of Pictures,GOP),一個(gè)GOP就是一組連續(xù)的畫(huà)面。在MPEG(Moving Picture Experts Group)編碼標(biāo)準(zhǔn)中,將畫(huà)面分為I幀(intra picture,內(nèi)部畫(huà)面)、P幀(predictive-frame,前向預(yù)測(cè)編碼幀)和B幀(bi-directional interpolated prediction frame,雙向預(yù)測(cè)內(nèi)插編碼幀),將屬于一個(gè)畫(huà)面的多個(gè)連續(xù)的幀的組合稱(chēng)為視頻畫(huà)面組,例如IBBPBBPBBPB BPBBP。
本發(fā)明實(shí)施例在按照預(yù)設(shè)條件抓取視頻流數(shù)據(jù)后,可以以視頻畫(huà)面組為單位對(duì)抓取的視頻流數(shù)據(jù)進(jìn)行解析,得到視頻畫(huà)面組個(gè)數(shù)、視頻畫(huà)面組之間的關(guān)聯(lián)關(guān)系等信息。
以視頻畫(huà)面組為單位,本發(fā)明實(shí)施例中抓取視頻流數(shù)據(jù)的預(yù)設(shè)條件還可以限定抓取的視頻畫(huà)面組的數(shù)目。
步驟202,將至少一個(gè)連續(xù)的視頻畫(huà)面組存儲(chǔ)為視頻流片段。
視頻流片段可以由至少一個(gè)視頻畫(huà)面組組成。按照視頻畫(huà)面組抓取的視頻流片段包括整數(shù)個(gè)視頻畫(huà)面組,而按照其他預(yù)設(shè)條件抓取的視頻流數(shù)據(jù)可能包括整數(shù)個(gè)視頻畫(huà)面組,還可能包括部分視頻畫(huà)面組。當(dāng)完成對(duì)視頻流數(shù)據(jù)的解析后,如果確定當(dāng)前視頻流數(shù)據(jù)中存在不完整的部分視頻畫(huà)面組,則可以將部分視頻畫(huà)面組劃分給下一次抓取的視頻流數(shù)據(jù),僅根據(jù)當(dāng)前視頻流數(shù)據(jù)中的完整的視頻畫(huà)面組生成視頻流片段。
對(duì)按幀傳輸?shù)囊曨l流數(shù)據(jù)進(jìn)行接收,基于跳幀、網(wǎng)絡(luò)延遲等原因使得接收的視頻幀之間可能存在時(shí)間戳偏移,時(shí)間戳偏移會(huì)導(dǎo)致多個(gè)視頻幀無(wú)法連續(xù)播放,導(dǎo)致視頻流片段無(wú)法連續(xù)播放,從而降低了用戶體驗(yàn)。為解決上述問(wèn)題,保證服務(wù)器中存儲(chǔ)的多個(gè)視頻流片段和多個(gè)視頻幀能夠連續(xù)播放,本發(fā)明實(shí)施例還可以對(duì)不同視頻流片段以及對(duì)視頻流片段中的問(wèn)題視頻幀進(jìn)行處理。
具體地,對(duì)不同視頻流片段之間進(jìn)行處理可以包括以下步驟:在抓取視頻流數(shù)據(jù)并根據(jù)抓取的視頻流數(shù)據(jù)生成視頻流片段之后,針對(duì)視頻流片段添加第一關(guān)聯(lián)標(biāo)識(shí);根據(jù)第一關(guān)聯(lián)標(biāo)識(shí)關(guān)聯(lián)多個(gè)連續(xù)的視頻流片段,并將關(guān)聯(lián)的視頻流片段組成回放視頻文件。其中回放視頻文件可以包括包括一個(gè)或多個(gè)視頻流片段。視頻請(qǐng)求端在識(shí)別到第一關(guān)聯(lián)標(biāo)識(shí)后,對(duì)第一關(guān)聯(lián)標(biāo)識(shí)對(duì)應(yīng)的視頻流片段進(jìn)行無(wú)條件播放,從而保證了多個(gè)視頻流片段的連續(xù)播放,保證了回放視頻文件的連續(xù)播放。
對(duì)視頻流片段中的問(wèn)題視頻幀進(jìn)行處理可以包括以下步驟:在抓取視頻流數(shù)據(jù)并根據(jù)抓取的視頻流數(shù)據(jù)生成視頻流片段之后,查找視頻流片段的視頻畫(huà)面組中時(shí)間偏移的問(wèn)題視頻幀;對(duì)問(wèn)題視頻幀進(jìn)行修復(fù)。完成對(duì)問(wèn)題視頻幀的修復(fù)后,視頻流片段可以正常播放。
視頻流數(shù)據(jù)上傳端按幀上傳視頻流數(shù)據(jù),相鄰兩個(gè)視頻幀之間的時(shí)間間隔非常短,例如相鄰兩個(gè)視頻幀之間的時(shí)間差小于1s,如果在上傳時(shí)以及上傳過(guò)程中視頻幀正常不存在時(shí)間偏移等問(wèn)題,則網(wǎng)絡(luò)服務(wù)器接收的相鄰兩個(gè)視頻幀之間的時(shí)間差不變;如果在上傳時(shí)以及上傳過(guò)程中發(fā)生嚴(yán)重問(wèn)題,導(dǎo)致發(fā)生較大的時(shí)間偏移,則網(wǎng)絡(luò)服務(wù)器接收的相鄰兩個(gè)視頻幀之間的時(shí)間差變得非常大;如果在上傳時(shí)以及上傳過(guò)程中發(fā)生輕微問(wèn)題,導(dǎo)致發(fā)生較小的時(shí)間偏移,則網(wǎng)絡(luò)服務(wù)器接收的相鄰兩個(gè)視頻幀之間的時(shí)間差會(huì)變大,但是變大幅度較小。
本發(fā)明實(shí)施例可以預(yù)先設(shè)定相鄰兩個(gè)視頻幀之間的時(shí)間差閾值。當(dāng)相鄰兩個(gè)視頻幀之間的時(shí)間差小于時(shí)間差閾值時(shí),可以說(shuō)明相鄰兩個(gè)視頻幀之間未發(fā)生時(shí)間偏移,或者說(shuō)明相鄰兩個(gè)視頻幀之間發(fā)生時(shí)間偏移,但是發(fā)生的時(shí)間偏移是在可接受范圍內(nèi),不會(huì)對(duì)視頻幀播放造成嚴(yán)重影響;當(dāng)相鄰兩個(gè)視頻幀之間的時(shí)間差超出時(shí)間差閾值時(shí),可以說(shuō)明后接收的視頻幀存在與上一視頻幀發(fā)生時(shí)間偏移,后接收的視頻幀是問(wèn)題視頻幀。因此,查找視頻流片段的視頻畫(huà)面組中時(shí)間偏移的問(wèn)題視頻幀的步驟可以通過(guò)查找與上一視頻幀的時(shí)間差超出設(shè)定閾值的視頻幀的方法實(shí)現(xiàn)。
視頻流片段中包括至少一個(gè)視頻畫(huà)面組,視頻畫(huà)面組中的的圖像幀包括I幀和P幀,一個(gè)視頻畫(huà)面組中的I幀與上一個(gè)視頻畫(huà)面組中的P幀相鄰,一個(gè)視頻畫(huà)面組中的最后一個(gè)P幀與下一個(gè)視頻畫(huà)面組中的I幀相鄰,基于I幀和P幀的不同功能和所處位置,本發(fā)明實(shí)施例對(duì)I幀和P幀采用了不同修復(fù)方法。因此,在對(duì)問(wèn)題視頻幀進(jìn)行修復(fù)之前,還需要判斷問(wèn)題視頻幀的種類(lèi),是I幀還是P幀。
針對(duì)一個(gè)視頻畫(huà)面組,如果判定問(wèn)題視頻幀為P幀,由于P幀是前向預(yù)測(cè)幀,雖然去除P幀畫(huà)面會(huì)出現(xiàn)卡主情況,但是畫(huà)面還存在,未出現(xiàn)黑屏,用戶還是可以繼續(xù)觀看,那么對(duì)于P幀的修復(fù)方法可以為刪除P幀以及后面與其連續(xù)的P幀。例如,一個(gè)視頻畫(huà)面組為(I P P P P P P P P),如果第五個(gè)P幀是問(wèn)題視頻幀,則刪除第五個(gè)P幀及其后面的連續(xù)的多個(gè)P幀,修復(fù)后的視頻畫(huà)面組為(I P P P P)。
一個(gè)視頻流片段中包括多個(gè)視頻畫(huà)面組,在一個(gè)視頻流片段中,如果問(wèn)題視頻幀所在的視頻畫(huà)面組后面還存在其他視頻畫(huà)面組,則在根據(jù)上述方法刪除問(wèn)P幀以及后面與其連續(xù)P幀后,修復(fù)后的視頻畫(huà)面組中的最后一個(gè)P幀與下一個(gè)視頻畫(huà)面組中的I幀存在時(shí)間偏移,從而使得兩個(gè)視頻畫(huà)面組無(wú)法正常播放。
為解決上述問(wèn)題,保證修復(fù)后的視頻畫(huà)面組和相鄰的下一個(gè)視頻畫(huà)面組正常播放,本發(fā)明實(shí)施例可以對(duì)修復(fù)后的視頻畫(huà)面組和相鄰的下一個(gè)視頻畫(huà)面組進(jìn)行切片處理,得到兩個(gè)視頻流片段;之后對(duì)視頻流片段添加第二關(guān)聯(lián)標(biāo)識(shí),播放器在識(shí)別到第二關(guān)聯(lián)標(biāo)識(shí)后,對(duì)兩個(gè)視頻流片段進(jìn)行連續(xù)播放。
第二關(guān)聯(lián)標(biāo)識(shí)可以添加在包含修復(fù)后的視頻畫(huà)面組的視頻流片段中。視頻請(qǐng)求端如果識(shí)別到當(dāng)前播放的視頻流片段攜帶第二關(guān)聯(lián)標(biāo)識(shí),則待當(dāng)前播放的視頻流片段播放結(jié)束后,不考慮下一個(gè)視頻流片段是否存在時(shí)間偏移,直接對(duì)下一個(gè)視頻流片段進(jìn)行播放,從而實(shí)現(xiàn)多個(gè)視頻畫(huà)面組的連續(xù)播放。
第二關(guān)聯(lián)標(biāo)識(shí)還可以添加在包含下一個(gè)視頻畫(huà)面組的視頻流片段中。待當(dāng)前播放的視頻流片段播放結(jié)束后,如果視頻請(qǐng)求端識(shí)別到下一個(gè)視頻流片段攜帶第二關(guān)聯(lián)標(biāo)識(shí),則不考慮下一個(gè)視頻流片段是否存在時(shí)間偏移,直接對(duì)下一個(gè)視頻流片段進(jìn)行播放。
第二關(guān)聯(lián)標(biāo)識(shí)可以為多種形式,例如順序編號(hào)、時(shí)間信息、關(guān)聯(lián)的前一視頻片段和關(guān)聯(lián)的后一視頻片段之中至少一種。本發(fā)明實(shí)施例中,第一關(guān)聯(lián)標(biāo)識(shí)與第二關(guān)聯(lián)標(biāo)識(shí)可以為相同標(biāo)識(shí),也可以為不相同標(biāo)識(shí)。
通過(guò)上述分析可知,在刪除P幀以及后面與其連續(xù)的P幀后,對(duì)問(wèn)題視頻幀進(jìn)行修復(fù)還可以包括:在問(wèn)題視頻幀的前一視頻幀后面進(jìn)行切片處理,將前一視頻幀作為第一目標(biāo)視頻流片段的最后一個(gè)視頻數(shù)據(jù)幀;針對(duì)第一目標(biāo)視頻流片段添加與下一目標(biāo)視頻片段的第二關(guān)聯(lián)標(biāo)識(shí)。
例如,視頻流片段中包括兩個(gè)相鄰的視頻畫(huà)面組(I P P P P P P P P I P P P P P P P P),如果第一個(gè)視頻畫(huà)面組中的第六個(gè)P幀出現(xiàn)問(wèn)題,則首先,刪除第一個(gè)視頻畫(huà)面組中的第六個(gè)P幀、第七個(gè)P幀和第八個(gè)P幀;其次,在第一個(gè)視頻畫(huà)面組中的第五個(gè)P幀后面進(jìn)行切片處理,得到兩個(gè)視頻流片段,即(I P P P P P)和(I P P P P P P P P);最后,對(duì)視頻流片段(I P P P P P)添加第二關(guān)聯(lián)標(biāo)識(shí)。
當(dāng)一個(gè)視頻流片段包括多個(gè)視頻畫(huà)面組時(shí),如果判定處于中間位置的視頻畫(huà)面組中的I幀出現(xiàn)問(wèn)題,即問(wèn)題視頻幀為I幀,則對(duì)問(wèn)題視頻幀進(jìn)行修復(fù)的步驟可以包括:首先,在I幀之前進(jìn)行切片處理,將I幀作為第二目標(biāo)視頻流片段的第一個(gè)視頻數(shù)據(jù)幀;其次,針對(duì)第二目標(biāo)視頻流片段添加與上一目標(biāo)視頻片段的第二關(guān)聯(lián)標(biāo)識(shí)。視頻請(qǐng)求端在識(shí)別到當(dāng)前播放的上一目標(biāo)視頻片段或第二目標(biāo)視頻流片段攜帶第二關(guān)聯(lián)標(biāo)識(shí)后,無(wú)條件對(duì)第二目標(biāo)視頻流片段進(jìn)行播放,從而保證了兩個(gè)視頻畫(huà)面組的連續(xù)播放。
步驟203,將各個(gè)視頻流片段轉(zhuǎn)換為移動(dòng)客戶端可播放的設(shè)定格式。
為使生成的視頻流片段可以在移動(dòng)客戶端上播放,本實(shí)施例會(huì)將生成的視頻流片段轉(zhuǎn)換成移動(dòng)客戶端可播放的格式,例如可以將視頻流數(shù)據(jù)的mp4(MPEG-4Part 14)文件格式轉(zhuǎn)碼成HLS(HTTP Live Streaming)文件格式。
在視頻流數(shù)據(jù)的接收過(guò)程中,視頻流片段不斷生成,當(dāng)生成一新的視頻流片段后對(duì)尺寸較小的視頻流片段進(jìn)行格式轉(zhuǎn)換,當(dāng)所有視頻流數(shù)據(jù)接收結(jié)束后,僅需耗費(fèi)較短時(shí)間對(duì)最后一個(gè)視頻流片段進(jìn)行格式處理即可完成對(duì)所有視頻流數(shù)據(jù)的格式轉(zhuǎn)換,因此相對(duì)于現(xiàn)有方法待視頻流數(shù)據(jù)傳輸結(jié)束后對(duì)緩存的所有視頻流數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換,本實(shí)施例可以進(jìn)一步縮短用戶等待回看直播視頻的時(shí)間,提高用戶體驗(yàn)。
步驟204,保存處理后的視頻流片段以供回放時(shí)調(diào)用。
依據(jù)本發(fā)明實(shí)施例,對(duì)上傳的視頻流數(shù)據(jù)進(jìn)行抓取操作,并根據(jù)抓取的視頻流數(shù)據(jù)生成視頻流片段,視頻流片段的尺寸小于抓取的視頻流數(shù)據(jù)所屬的完整視頻流數(shù)據(jù)的尺寸,相比于現(xiàn)有技術(shù)待視頻直播結(jié)束后才生成回放視頻文件,本發(fā)明在直播過(guò)程中即可生成可供用戶調(diào)用和回放的視頻流片段,有效解決了直播視頻的回放延遲問(wèn)題,縮短了用戶等待回看直播視頻的時(shí)間,保證了用戶體驗(yàn)。
并且,本發(fā)明還對(duì)視頻流片段進(jìn)行設(shè)定處理,由于視頻流片段的尺寸較小,因此僅需耗費(fèi)較短時(shí)間即可完成對(duì)尺寸較小的視頻流片段的設(shè)定處理,相比于現(xiàn)有技術(shù)中待直播結(jié)束后對(duì)緩存的整個(gè)視頻流數(shù)據(jù)進(jìn)行設(shè)定處理,本方法在視頻直播結(jié)束時(shí)基本完成對(duì)整個(gè)視頻流數(shù)據(jù)的設(shè)定處理,進(jìn)一步解決了直播視頻的回放延遲問(wèn)題。
同時(shí),本發(fā)明還針對(duì)各個(gè)視頻流片段添加第一關(guān)聯(lián)標(biāo)識(shí),并根據(jù)第一關(guān)聯(lián)標(biāo)識(shí)關(guān)聯(lián)多個(gè)連續(xù)的視頻流片段,專(zhuān)屬播放器識(shí)別到某一視頻流片段的第一關(guān)聯(lián)標(biāo)識(shí)后,無(wú)條件播放該視頻流片段,從而保證多個(gè)視頻流片段的連續(xù)播放。
另外,本發(fā)明中視頻流片段可以由至少一個(gè)視頻畫(huà)面組組成,在對(duì)視頻流片段進(jìn)行關(guān)聯(lián)前,本發(fā)明還可以對(duì)視頻流片段的視頻畫(huà)面組中出現(xiàn)時(shí)間偏移的問(wèn)題視頻幀進(jìn)行查找和修復(fù),對(duì)問(wèn)題視頻幀的修復(fù)操作保證了視頻流片段中至少一個(gè)視頻畫(huà)面組的連續(xù)播放。
圖3示出了根據(jù)本發(fā)明實(shí)施例三的一種回放視頻文件的生成裝置的結(jié)構(gòu)框圖。圖3中的回放視頻文件的生成裝置包括:
視頻流片段生成模塊301,用于抓取視頻流數(shù)據(jù)并根據(jù)抓取的視頻流數(shù)據(jù)生成視頻流片段。
設(shè)定處理進(jìn)行模塊302,用于對(duì)當(dāng)前生成的視頻流片段進(jìn)行設(shè)定處理。
視頻流片段保存模塊303,用于保存處理后的視頻流片段以供回放時(shí)調(diào)用。
依據(jù)本發(fā)明實(shí)施例,對(duì)上傳的視頻流數(shù)據(jù)進(jìn)行抓取操作,并根據(jù)抓取的視頻流數(shù)據(jù)生成視頻流片段,視頻流片段的尺寸小于抓取的視頻流數(shù)據(jù)所屬的完整視頻流數(shù)據(jù)的尺寸,相比于現(xiàn)有技術(shù)待視頻直播結(jié)束后才生成回放視頻文件,本發(fā)明在直播過(guò)程中即可生成可供用戶調(diào)用和回放的視頻流片段,有效解決了直播視頻的回放延遲問(wèn)題,縮短了用戶等待回看直播視頻的時(shí)間,保證了用戶體驗(yàn)。
并且,本發(fā)明還對(duì)視頻流片段進(jìn)行設(shè)定處理,由于視頻流片段的尺寸較小,因此僅需耗費(fèi)較短時(shí)間即可完成對(duì)尺寸較小的視頻流片段的設(shè)定處理,相比于現(xiàn)有技術(shù)中待直播結(jié)束后對(duì)緩存的整個(gè)視頻流數(shù)據(jù)進(jìn)行設(shè)定處理,本方法在視頻直播結(jié)束時(shí)基本完成對(duì)整個(gè)視頻流數(shù)據(jù)的設(shè)定處理,進(jìn)一步解決了直播視頻的回放延遲問(wèn)題。
圖4示出了根據(jù)本發(fā)明實(shí)施例四的一種回放視頻文件的生成裝置的結(jié)構(gòu)框圖。圖4中的回放視頻文件的生成裝置包括:
視頻流片段生成模塊401,用于抓取視頻流數(shù)據(jù)并根據(jù)抓取的視頻流數(shù)據(jù)生成視頻流片段。
設(shè)定處理進(jìn)行模塊402,用于對(duì)當(dāng)前生成的視頻流片段進(jìn)行設(shè)定處理。
視頻流片段保存模塊403,用于保存處理后的視頻流片段以供回放時(shí)調(diào)用。
所述視頻流片段生成模塊401包括:
視頻流數(shù)據(jù)抓取子模塊4011,用于依據(jù)預(yù)設(shè)條件抓取視頻流數(shù)據(jù);
視頻流數(shù)據(jù)解析子模塊4012,用于將抓取的視頻流數(shù)據(jù)以視頻畫(huà)面組為單位進(jìn)行解析;
視頻流片段存儲(chǔ)子模塊4013,用于將至少一個(gè)連續(xù)的視頻畫(huà)面組存儲(chǔ)為視頻流片段。
本發(fā)明實(shí)施例中,優(yōu)選地,所述設(shè)定處理進(jìn)行模塊402,具體用于將各個(gè)視頻流片段轉(zhuǎn)換為移動(dòng)客戶端可播放的設(shè)定格式。
本發(fā)明實(shí)施例中,優(yōu)選地,所述裝置還包括:
第一關(guān)聯(lián)標(biāo)識(shí)添加模塊,用于在所述抓取視頻流數(shù)據(jù)并根據(jù)抓取的視頻流數(shù)據(jù)生成視頻流片段之后,針對(duì)所述視頻流片段添加第一關(guān)聯(lián)標(biāo)識(shí);
視頻流片段關(guān)聯(lián)模塊,用于根據(jù)所述第一關(guān)聯(lián)標(biāo)識(shí)關(guān)聯(lián)多個(gè)連續(xù)的視頻流片段,并將關(guān)聯(lián)的視頻流片段組成回放視頻文件。
本發(fā)明實(shí)施例中,優(yōu)選地,所述視頻流片段由至少一個(gè)視頻畫(huà)面組組成。
本發(fā)明實(shí)施例中,優(yōu)選地,所述回放視頻文件的生成裝置還包括:
問(wèn)題視頻幀查找模塊,用于在所述抓取視頻流數(shù)據(jù)并根據(jù)抓取的視頻流數(shù)據(jù)生成視頻流片段之后,查找所述視頻流片段的視頻畫(huà)面組中時(shí)間偏移的問(wèn)題視頻幀;
問(wèn)題視頻幀修復(fù)模塊,用于對(duì)所述問(wèn)題視頻幀進(jìn)行修復(fù)。
本發(fā)明實(shí)施例中,優(yōu)選地,所述問(wèn)題視頻幀查找模塊,具體用于查找與上一視頻幀的時(shí)間差超出設(shè)定閾值的視頻幀。
本發(fā)明實(shí)施例中,優(yōu)選地,所述回放視頻文件的生成裝置還包括:
幀種類(lèi)判斷模塊,用于在所述對(duì)所述問(wèn)題視頻幀進(jìn)行修復(fù)之前,判定所述問(wèn)題視頻幀為I幀或P幀。
本發(fā)明實(shí)施例中,優(yōu)選地,所述問(wèn)題視頻幀修復(fù)模塊包括:
P幀刪除子模塊,用于若所述問(wèn)題視頻幀為P幀,則刪除所述P幀以及后面與其連續(xù)的P幀。
本發(fā)明實(shí)施例中,優(yōu)選地,所述問(wèn)題視頻幀修復(fù)模塊還包括:
第一切片處理進(jìn)行子模塊,用于在所述問(wèn)題視頻幀的前一視頻幀后面進(jìn)行切片處理,將所述前一視頻幀作為第一目標(biāo)視頻流片段的最后一個(gè)視頻數(shù)據(jù)幀;
第二關(guān)聯(lián)標(biāo)識(shí)添加子模塊,用于針對(duì)所述第一目標(biāo)視頻流片段添加與下一目標(biāo)視頻片段的第二關(guān)聯(lián)標(biāo)識(shí)。
本發(fā)明實(shí)施例中,優(yōu)選地,所述問(wèn)題視頻幀修復(fù)模塊包括:
第二切片處理進(jìn)行子模塊,用于若所述問(wèn)題視頻幀為I幀,則在所述I幀之前進(jìn)行切片處理,將所述I幀作為第二目標(biāo)視頻流片段的第一個(gè)視頻數(shù)據(jù)幀;
第二關(guān)聯(lián)標(biāo)識(shí)增添子模塊,用于針對(duì)所述第二目標(biāo)視頻流片段添加與上一目標(biāo)視頻片段的第二關(guān)聯(lián)標(biāo)識(shí)。
本發(fā)明實(shí)施例中,優(yōu)選地,所述第二關(guān)聯(lián)標(biāo)識(shí)為順序編號(hào)、時(shí)間信息、關(guān)聯(lián)的前一視頻片段和關(guān)聯(lián)的后一視頻片段之中至少一種。
依據(jù)本發(fā)明實(shí)施例,對(duì)上傳的視頻流數(shù)據(jù)進(jìn)行抓取操作,并根據(jù)抓取的視頻流數(shù)據(jù)生成視頻流片段,視頻流片段的尺寸小于抓取的視頻流數(shù)據(jù)所屬的完整視頻流數(shù)據(jù)的尺寸,相比于現(xiàn)有技術(shù)待視頻直播結(jié)束后才生成回放視頻文件,本發(fā)明在直播過(guò)程中即可生成可供用戶調(diào)用和回放的視頻流片段,有效解決了直播視頻的回放延遲問(wèn)題,縮短了用戶等待回看直播視頻的時(shí)間,保證了用戶體驗(yàn)。
并且,本發(fā)明還對(duì)視頻流片段進(jìn)行設(shè)定處理,由于視頻流片段的尺寸較小,因此僅需耗費(fèi)較短時(shí)間即可完成對(duì)尺寸較小的視頻流片段的設(shè)定處理,相比于現(xiàn)有技術(shù)中待直播結(jié)束后對(duì)緩存的整個(gè)視頻流數(shù)據(jù)進(jìn)行設(shè)定處理,本方法在視頻直播結(jié)束時(shí)基本完成對(duì)整個(gè)視頻流數(shù)據(jù)的設(shè)定處理,進(jìn)一步解決了直播視頻的回放延遲問(wèn)題。
同時(shí),本發(fā)明還針對(duì)各個(gè)視頻流片段添加第一關(guān)聯(lián)標(biāo)識(shí),并根據(jù)第一關(guān)聯(lián)標(biāo)識(shí)關(guān)聯(lián)多個(gè)連續(xù)的視頻流片段,專(zhuān)屬播放器識(shí)別到某一視頻流片段的第一關(guān)聯(lián)標(biāo)識(shí)后,無(wú)條件播放該視頻流片段,從而保證多個(gè)視頻流片段的連續(xù)播放。
另外,本發(fā)明中視頻流片段可以由至少一個(gè)視頻畫(huà)面組組成,在對(duì)視頻流片段進(jìn)行關(guān)聯(lián)前,本發(fā)明還可以對(duì)視頻流片段的視頻畫(huà)面組中出現(xiàn)時(shí)間偏移的問(wèn)題視頻幀進(jìn)行查找和修復(fù),對(duì)問(wèn)題視頻幀的修復(fù)操作保證了視頻流片段中至少一個(gè)視頻畫(huà)面組的連續(xù)播放。
在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類(lèi)系統(tǒng)所要求的結(jié)構(gòu)是顯而易見(jiàn)的。此外,本發(fā)明也不針對(duì)任何特定編程語(yǔ)言。應(yīng)當(dāng)明白,可以利用各種編程語(yǔ)言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語(yǔ)言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
在此處所提供的說(shuō)明書(shū)中,說(shuō)明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說(shuō)明書(shū)的理解。
類(lèi)似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開(kāi)并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開(kāi)的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說(shuō),如下面的權(quán)利要求書(shū)所反映的那樣,發(fā)明方面在于少于前面公開(kāi)的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書(shū)由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過(guò)程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的所有特征以及如此公開(kāi)的任何方法或者設(shè)備的所有過(guò)程或單元進(jìn)行組合。除非另外明確陳述,本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來(lái)代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書(shū)中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來(lái)使用。
本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來(lái)實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的回放視頻文件的生成設(shè)備中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說(shuō)明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來(lái)實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過(guò)同一個(gè)硬件項(xiàng)來(lái)具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱(chēng)。
本發(fā)明公開(kāi)了A1、一種回放視頻文件的生成方法,包括:
抓取視頻流數(shù)據(jù)并根據(jù)抓取的視頻流數(shù)據(jù)生成視頻流片段;
對(duì)當(dāng)前生成的視頻流片段進(jìn)行設(shè)定處理;
保存處理后的視頻流片段以供回放時(shí)調(diào)用。
A2、根據(jù)A1所述的方法,其中,在所述抓取視頻流數(shù)據(jù)并根據(jù)抓取的視頻流數(shù)據(jù)生成視頻流片段之后,所述方法還包括:
針對(duì)所述視頻流片段添加第一關(guān)聯(lián)標(biāo)識(shí);
根據(jù)所述第一關(guān)聯(lián)標(biāo)識(shí)關(guān)聯(lián)多個(gè)連續(xù)的視頻流片段,并將關(guān)聯(lián)的視頻流片段組成回放視頻文件。
A3、根據(jù)A1所述的方法,其中,所述視頻流片段由至少一個(gè)視頻畫(huà)面組組成。
A4、根據(jù)A3所述的方法,其中,所述抓取視頻流數(shù)據(jù)并根據(jù)抓取的視頻流數(shù)據(jù)生成視頻流片段包括:
依據(jù)預(yù)設(shè)條件抓取視頻流數(shù)據(jù)并將抓取的視頻流數(shù)據(jù)以視頻畫(huà)面組為單位進(jìn)行解析;
將至少一個(gè)連續(xù)的視頻畫(huà)面組存儲(chǔ)為視頻流片段。
A5、根據(jù)A1所述的方法,其中,所述對(duì)當(dāng)前生成的視頻流片段進(jìn)行設(shè)定處理包括:
將各個(gè)視頻流片段轉(zhuǎn)換為移動(dòng)客戶端可播放的設(shè)定格式。
A6、根據(jù)A3所述的方法,其中,在所述抓取視頻流數(shù)據(jù)并根據(jù)抓取的視頻流數(shù)據(jù)生成視頻流片段之后,所述方法還包括:
查找所述視頻流片段的視頻畫(huà)面組中時(shí)間偏移的問(wèn)題視頻幀;
對(duì)所述問(wèn)題視頻幀進(jìn)行修復(fù)。
A7、根據(jù)A6所述的方法,其中,所述查找所述視頻流片段的視頻畫(huà)面組中時(shí)間偏移的問(wèn)題視頻幀包括:
查找與上一視頻幀的時(shí)間差超出設(shè)定閾值的視頻幀。
A8、根據(jù)A6所述的方法,其中,在所述對(duì)所述問(wèn)題視頻幀進(jìn)行修復(fù)之前,所述方法還包括:
判定所述問(wèn)題視頻幀為I幀或P幀。
A9、根據(jù)A8所述的方法,其中,所述對(duì)所述問(wèn)題視頻幀進(jìn)行修復(fù)包括:
若所述問(wèn)題視頻幀為P幀,則刪除所述P幀以及后面與其連續(xù)的P幀。
A10、根據(jù)A9所述的方法,其中,所述對(duì)所述問(wèn)題視頻幀進(jìn)行修復(fù)還包括:
在所述問(wèn)題視頻幀的前一視頻幀后面進(jìn)行切片處理,將所述前一視頻幀作為第一目標(biāo)視頻流片段的最后一個(gè)視頻數(shù)據(jù)幀;
針對(duì)所述第一目標(biāo)視頻流片段添加與下一目標(biāo)視頻片段的第二關(guān)聯(lián)標(biāo)識(shí)。
A11、根據(jù)A8所述的方法,其中,所述對(duì)所述問(wèn)題視頻幀進(jìn)行修復(fù)包括:
若所述問(wèn)題視頻幀為I幀,則在所述I幀之前進(jìn)行切片處理,將所述I幀作為第二目標(biāo)視頻流片段的第一個(gè)視頻數(shù)據(jù)幀;
針對(duì)所述第二目標(biāo)視頻流片段添加與上一目標(biāo)視頻片段的第二關(guān)聯(lián)標(biāo)識(shí)。
A12、根據(jù)A10所述的方法,其中,所述第二關(guān)聯(lián)標(biāo)識(shí)為順序編號(hào)、時(shí)間信息、關(guān)聯(lián)的前一視頻片段和關(guān)聯(lián)的后一視頻片段之中至少一種。
本發(fā)明還公開(kāi)了B13、一種回放視頻文件的生成裝置,包括:
視頻流片段生成模塊,用于抓取視頻流數(shù)據(jù)并根據(jù)抓取的視頻流數(shù)據(jù)生成視頻流片段;
設(shè)定處理進(jìn)行模塊,用于對(duì)當(dāng)前生成的視頻流片段進(jìn)行設(shè)定處理;
視頻流片段保存模塊,用于保存處理后的視頻流片段以供回放時(shí)調(diào)用。
B14、根據(jù)B13所述的裝置,其中,所述裝置還包括:
第一關(guān)聯(lián)標(biāo)識(shí)添加模塊,用于在所述抓取視頻流數(shù)據(jù)并根據(jù)抓取的視頻流數(shù)據(jù)生成視頻流片段之后,針對(duì)所述視頻流片段添加第一關(guān)聯(lián)標(biāo)識(shí);
視頻流片段關(guān)聯(lián)模塊,用于根據(jù)所述第一關(guān)聯(lián)標(biāo)識(shí)關(guān)聯(lián)多個(gè)連續(xù)的視頻流片段,并將關(guān)聯(lián)的視頻流片段組成回放視頻文件。
B15、根據(jù)B13所述的裝置,其中,所述視頻流片段由至少一個(gè)視頻畫(huà)面組組成。
B16、根據(jù)B15所述的裝置,其中,所述視頻流片段生成模塊包括:
視頻流數(shù)據(jù)抓取子模塊,用于依據(jù)預(yù)設(shè)條件抓取視頻流數(shù)據(jù);
視頻流數(shù)據(jù)解析子模塊,用于將抓取的視頻流數(shù)據(jù)以視頻畫(huà)面組為單位進(jìn)行解析;
視頻流片段存儲(chǔ)子模塊,用于將至少一個(gè)連續(xù)的視頻畫(huà)面組存儲(chǔ)為視頻流片段。
B17、根據(jù)B13所述的裝置,其中:
所述設(shè)定處理進(jìn)行模塊,具體用于將各個(gè)視頻流片段轉(zhuǎn)換為移動(dòng)客戶端可播放的設(shè)定格式。
B18、根據(jù)B15所述的裝置,其中,所述裝置還包括:
問(wèn)題視頻幀查找模塊,用于在所述抓取視頻流數(shù)據(jù)并根據(jù)抓取的視頻流數(shù)據(jù)生成視頻流片段之后,查找所述視頻流片段的視頻畫(huà)面組中時(shí)間偏移的問(wèn)題視頻幀;
問(wèn)題視頻幀修復(fù)模塊,用于對(duì)所述問(wèn)題視頻幀進(jìn)行修復(fù)。
B19、根據(jù)B18所述的裝置,其中:
所述問(wèn)題視頻幀查找模塊,具體用于查找與上一視頻幀的時(shí)間差超出設(shè)定閾值的視頻幀。
B20、根據(jù)B18所述的裝置,其中,所述裝置還包括:
幀種類(lèi)判斷模塊,用于在所述對(duì)所述問(wèn)題視頻幀進(jìn)行修復(fù)之前,判定所述問(wèn)題視頻幀為I幀或P幀。
B21、根據(jù)B20所述的裝置,其中,所述問(wèn)題視頻幀修復(fù)模塊包括:
P幀刪除子模塊,用于若所述問(wèn)題視頻幀為P幀,則刪除所述P幀以及后面與其連續(xù)的P幀。
B22、根據(jù)B21所述的裝置,其中,所述問(wèn)題視頻幀修復(fù)模塊還包括:
第一切片處理進(jìn)行子模塊,用于在所述問(wèn)題視頻幀的前一視頻幀后面進(jìn)行切片處理,將所述前一視頻幀作為第一目標(biāo)視頻流片段的最后一個(gè)視頻數(shù)據(jù)幀;
第二關(guān)聯(lián)標(biāo)識(shí)添加子模塊,用于針對(duì)所述第一目標(biāo)視頻流片段添加與下一目標(biāo)視頻片段的第二關(guān)聯(lián)標(biāo)識(shí)。
B23、根據(jù)B20所述的裝置,其中,所述問(wèn)題視頻幀修復(fù)模塊包括:
第二切片處理進(jìn)行子模塊,用于若所述問(wèn)題視頻幀為I幀,則在所述I幀之前進(jìn)行切片處理,將所述I幀作為第二目標(biāo)視頻流片段的第一個(gè)視頻數(shù)據(jù)幀;
第二關(guān)聯(lián)標(biāo)識(shí)增添子模塊,用于針對(duì)所述第二目標(biāo)視頻流片段添加與上一目標(biāo)視頻片段的第二關(guān)聯(lián)標(biāo)識(shí)。
B24、根據(jù)B22所述的裝置,其中,所述第二關(guān)聯(lián)標(biāo)識(shí)為順序編號(hào)、時(shí)間信息、關(guān)聯(lián)的前一視頻片段和關(guān)聯(lián)的后一視頻片段之中至少一種。