一種流媒體點播編輯系統(tǒng)及點播方法
【專利摘要】本發(fā)明提供一種流媒體點播編輯系統(tǒng),包括:音視頻處理單元,用于根據(jù)跳轉(zhuǎn)指令對所接收到的流媒體碎片文件進(jìn)行跳轉(zhuǎn)處理,獲取跳轉(zhuǎn)文件,其中所述跳轉(zhuǎn)文件具有包含用戶ID信息在內(nèi)的跳轉(zhuǎn)信息;直播單元,用于在接收到所述跳轉(zhuǎn)文件后根據(jù)所述跳轉(zhuǎn)信息進(jìn)行播放節(jié)目的跳轉(zhuǎn),并根據(jù)所述用戶ID信息將跳轉(zhuǎn)后的節(jié)目的音視頻文件推送給與所述用戶ID信息相對應(yīng)的用戶及進(jìn)行播放;調(diào)度單元,用于協(xié)調(diào)所述音視頻處理單元和所述直播單元的工作。本發(fā)明還提供一種流媒體點播編輯的方法。
【專利說明】一種流媒體點播編輯系統(tǒng)及點播方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種流媒體點播編輯系統(tǒng)和方法,尤其涉及一種利用計算機或數(shù)據(jù)處理裝置對用戶點播的節(jié)目進(jìn)行編輯的系統(tǒng)和方法。
技術(shù)背景
[0002]互聯(lián)網(wǎng)視頻播放、尤其電視節(jié)目信號直播,已經(jīng)吸引大批用戶的注目。不論是在PC端,還是在移動終端,現(xiàn)在思維活躍的用戶總希望在不同的節(jié)目之間進(jìn)行切換,哪個節(jié)目也不想落下收看,也就是希望在一個時間段收看到多套節(jié)目,更希望在重點段落或精彩情節(jié)可以做到回看甚至反復(fù)播放。
[0003]面對數(shù)量眾多的用戶群,每個用戶的品味、著眼點都不盡相同,就需要為用戶提供一種可行的解決方案,在實時播放節(jié)目的同時,用戶可根據(jù)自身的偏好對節(jié)目的播放內(nèi)容和播放時長進(jìn)行“私人定制”,將獲得最優(yōu)的用戶體驗。如,用戶在觀看cctv5播放的節(jié)目的同時,還希望偶爾關(guān)注一下北京電視體育頻道的播放節(jié)目,通常需要重新打開北京電視體育頻道的網(wǎng)頁并找到相應(yīng)的播放節(jié)目,這樣會讓用戶體驗很差?;蛘?,在現(xiàn)有技術(shù)中,在網(wǎng)絡(luò)播放器旁設(shè)置相應(yīng)節(jié)目的鏈接,這需要在兩套節(jié)目之間來回切換,而每次切換重新緩沖。因此,在現(xiàn)有技術(shù)中,要么需要同時下載這兩套節(jié)目的視頻,需要耗費兩倍的帶寬,要么需要在兩套節(jié)目之間來回切換,而每次切換重新緩沖給用戶帶來的體驗很差。
【發(fā)明內(nèi)容】
[0004]為了解決上述技術(shù)問題,本發(fā)明提供了一種流媒體點播編輯系統(tǒng),包括:音視頻處理單元,用于根據(jù)跳轉(zhuǎn)指令對所接收到的流媒體碎片文件進(jìn)行跳轉(zhuǎn)處理,獲取跳轉(zhuǎn)文件,其中所述跳轉(zhuǎn)文件具有包含用戶ID信息在內(nèi)的跳轉(zhuǎn)信息;直播單元,用于在接收到所述跳轉(zhuǎn)文件后根據(jù)所述跳轉(zhuǎn)信息進(jìn)行播放節(jié)目的跳轉(zhuǎn),并根據(jù)所述用戶ID信息將跳轉(zhuǎn)后的節(jié)目的音視頻文件推送給與所述用戶ID信息相對應(yīng)的用戶及進(jìn)行播放;調(diào)度單元,用于協(xié)調(diào)所述音視頻處理單元和所述直播單元的工作。
[0005]優(yōu)選地,還包括:預(yù)處理單元,用于對預(yù)錄制節(jié)目的音視頻文件進(jìn)行預(yù)處理,將所述預(yù)錄制節(jié)目的音視頻文件轉(zhuǎn)換為固定時長的流媒體碎片文件;所述調(diào)度單元協(xié)調(diào)所述預(yù)處理單元、所述音視頻處理單元和所述直播單元的工作。
[0006]優(yōu)選地,所述調(diào)度單元從所述預(yù)處理單元接收經(jīng)過預(yù)處理后的所述固定時長的流媒體碎片文件,并將經(jīng)預(yù)處理后的所述固定時長的流媒體碎片文件轉(zhuǎn)發(fā)至所述音視頻處理單元進(jìn)行所述跳轉(zhuǎn)處理后再發(fā)送到所述直播單元,或?qū)⒔?jīng)預(yù)處理后的所述固定時長的流媒體碎片文件不經(jīng)過所述音視頻處理單元的所述跳轉(zhuǎn)處理而發(fā)送到所述直播單元。
[0007]優(yōu)選地,所述預(yù)處理還包括對所述固定時長的流媒體碎片文件進(jìn)行轉(zhuǎn)碼處理。
[0008]優(yōu)選地,所述調(diào)度單元讓不需要進(jìn)行跳轉(zhuǎn)處理的所述流媒體碎片文件不經(jīng)所述音視頻處理單元進(jìn)行所述跳轉(zhuǎn)處理,而直接被發(fā)送至所述直播單元。
[0009]優(yōu)選地,所述音視頻處理單元還對所接收到的流媒體碎片文件進(jìn)行轉(zhuǎn)碼處理;其中,所述調(diào)度單元將需要進(jìn)行轉(zhuǎn)碼處理的所述流媒體碎片文件轉(zhuǎn)發(fā)至所述音視頻處理單元進(jìn)行所述轉(zhuǎn)碼處理。
[0010]優(yōu)選地,所述音視頻處理單元在跳轉(zhuǎn)時刻將跨越了跳轉(zhuǎn)時刻的原節(jié)目的流媒體碎片文件在跳轉(zhuǎn)時刻之前的部分與跨越了跳轉(zhuǎn)時刻的目標(biāo)節(jié)目的流媒體碎片文件在跳轉(zhuǎn)時刻之后的部分切合成所述跳轉(zhuǎn)文件。
[0011]優(yōu)選地,所述直播單元根據(jù)時間戳信息按順序輸出原節(jié)目在跳轉(zhuǎn)時刻之前的流媒體碎片文件、所述跳轉(zhuǎn)文件、目標(biāo)節(jié)目在跳轉(zhuǎn)時刻之后的流媒體碎片文件。
[0012]優(yōu)選地,所述跳轉(zhuǎn)文件的所述時間戳信息和所述用戶ID信息包含在所述跳轉(zhuǎn)文件的文件名中。
[0013]優(yōu)選地,在所述跳轉(zhuǎn)文件的文件名中,跳轉(zhuǎn)后的目標(biāo)節(jié)目流媒體碎片文件的時間戳信息以與跳轉(zhuǎn)前的節(jié)目流媒體碎片文件的時間戳信息不同的方式進(jìn)行顯示。
[0014]優(yōu)選地,所述音視頻處理單元將跨越了跳轉(zhuǎn)時刻的原節(jié)目流媒體碎片文件在跳轉(zhuǎn)時刻之前的部分剪切為單獨的第一跳轉(zhuǎn)文件,將跨越了跳轉(zhuǎn)時刻的目標(biāo)頻道流媒體碎片文件在跳轉(zhuǎn)時刻之后的部分剪切為單獨的第二跳轉(zhuǎn)文件。
[0015]優(yōu)選地,所述直播單元在每次跳轉(zhuǎn)時根據(jù)時間戳信息按順序輸出原節(jié)目在跳轉(zhuǎn)時刻之前的流媒體碎片文件、所述第一跳轉(zhuǎn)文件、所述第二跳轉(zhuǎn)文件和目標(biāo)節(jié)目在跳轉(zhuǎn)時刻之后的流媒體碎片文件。
[0016]優(yōu)選地,在跳轉(zhuǎn)時刻與當(dāng)前的原節(jié)目的流媒體碎片文件的結(jié)束時間點一致但與需要跳轉(zhuǎn)的目標(biāo)節(jié)目的流媒體碎片文件的開始時間點不一致時,所述音視頻處理單元將當(dāng)前的原節(jié)目的流媒體碎片文件與需要跳轉(zhuǎn)的目標(biāo)節(jié)目的流媒體碎片文件的在所述跳轉(zhuǎn)時刻至需要跳轉(zhuǎn)的目標(biāo)節(jié)目的流媒體碎片文件的結(jié)束時間點之間的部分切合成所述跳轉(zhuǎn)文件。
[0017]本發(fā)明還提供一種流媒體點播編輯的方法,包括:音視頻處理步驟,根據(jù)跳轉(zhuǎn)指令對所接收到的流媒體碎片文件進(jìn)行跳轉(zhuǎn)處理,獲取跳轉(zhuǎn)文件,其中所述跳轉(zhuǎn)文件具有包含用戶ID信息在內(nèi)的跳轉(zhuǎn)信息;直播處理步驟,在接收到所述跳轉(zhuǎn)文件后根據(jù)所述跳轉(zhuǎn)信息進(jìn)行播放節(jié)目的跳轉(zhuǎn),并根據(jù)所述用戶ID信息將跳轉(zhuǎn)后的節(jié)目的音視頻文件推送給與所述用戶ID信息相對應(yīng)的用戶及進(jìn)行播放;調(diào)度處理步驟,由調(diào)度單元協(xié)調(diào)音視頻處理單元和直播單元的工作。
[0018]優(yōu)選地,還包括:預(yù)處理步驟,對預(yù)錄制節(jié)目的音視頻文件進(jìn)行預(yù)處理,將所述預(yù)錄制節(jié)目的音視頻文件轉(zhuǎn)換為固定時長的流媒體碎片文件;其中,如果當(dāng)前點播的節(jié)目或跳轉(zhuǎn)的目標(biāo)節(jié)目為所述預(yù)錄制節(jié)目的音視頻文件,在所述調(diào)度處理步驟中,所述調(diào)度單元讓預(yù)處理單元對所述預(yù)錄制節(jié)目的音視頻文件實施所述預(yù)處理步驟。
[0019]優(yōu)選地,在所述調(diào)度處理步驟中,如果所述調(diào)度單元所接收的經(jīng)預(yù)處理后的所述固定時長的流媒體碎片文件是需要進(jìn)行跳轉(zhuǎn)處理的流媒體碎片文件,則將所述固定時長的流媒體碎片文件轉(zhuǎn)發(fā)至所述音視頻處理單元進(jìn)行所述跳轉(zhuǎn)處理后再發(fā)送到所述直播單元,如果所述調(diào)度單元所接收的經(jīng)預(yù)處理后的所述固定時長的流媒體碎片文件是不需要進(jìn)行跳轉(zhuǎn)處理的流媒體碎片文件,則將所述固定時長的流媒體碎片文件發(fā)送到所述直播單元。
[0020]優(yōu)選地,所述預(yù)處理還包括對所述固定時長的流媒體碎片文件進(jìn)行轉(zhuǎn)碼處理。
[0021]優(yōu)選地,所述音視頻處理步驟還對所接收到的流媒體碎片文件進(jìn)行轉(zhuǎn)碼處理;其中,在所述調(diào)度后處理步驟中,所述調(diào)度單元將需要進(jìn)行轉(zhuǎn)碼處理的所述流媒體碎片文件轉(zhuǎn)發(fā)至所述音視頻處理單元進(jìn)行所述轉(zhuǎn)碼處理。
[0022]優(yōu)選地,在所述調(diào)度處理步驟中,讓不需要進(jìn)行跳轉(zhuǎn)處理的所述流媒體碎片文件不經(jīng)所述音視頻處理單元進(jìn)行所述跳轉(zhuǎn)處理,而直接被發(fā)送至所述直播單元。
[0023]優(yōu)選地,所述音視頻處理步驟在跳轉(zhuǎn)時刻將跨越了跳轉(zhuǎn)時刻的原節(jié)目的流媒體碎片文件在跳轉(zhuǎn)時刻之前的部分與跨越了跳轉(zhuǎn)時刻的目標(biāo)節(jié)目的流媒體碎片文件在跳轉(zhuǎn)時刻之后的部分切合成所述跳轉(zhuǎn)文件。
[0024]優(yōu)選地,所述直播處理步驟根據(jù)時間戳信息按順序輸出原節(jié)目在跳轉(zhuǎn)時刻之前的流媒體碎片文件、所述跳轉(zhuǎn)文件、目標(biāo)節(jié)目在跳轉(zhuǎn)時刻之后的流媒體碎片文件。
[0025]優(yōu)選地,所述跳轉(zhuǎn)文件的所述時間戳信息和所述用戶ID信息包含在所述跳轉(zhuǎn)文件的文件名中。
[0026]優(yōu)選地,在所述跳轉(zhuǎn)文件的文件名中,跳轉(zhuǎn)后的目標(biāo)節(jié)目流媒體碎片文件的時間戳信息以與跳轉(zhuǎn)前的節(jié)目流媒體碎片文件的時間戳信息不同的方式進(jìn)行顯示。
[0027]優(yōu)選地,所述音視頻處理步驟將跨越了跳轉(zhuǎn)時刻的原節(jié)目流媒體碎片文件在跳轉(zhuǎn)時刻之前的部分剪切為單獨的第一跳轉(zhuǎn)文件,將跨越了跳轉(zhuǎn)時刻的目標(biāo)頻道流媒體碎片文件在跳轉(zhuǎn)時刻之后的部分剪切為單獨的第二跳轉(zhuǎn)文件。
[0028]優(yōu)選地,所述直播處理步驟在每次跳轉(zhuǎn)時根據(jù)時間戳信息按順序輸出原節(jié)目在跳轉(zhuǎn)時刻之前的流媒體碎片文件、所述第一跳轉(zhuǎn)文件、所述第二跳轉(zhuǎn)文件和目標(biāo)節(jié)目在跳轉(zhuǎn)時刻之后的流媒體碎片文件。
[0029]優(yōu)選地,所述音視頻處理步驟在跳轉(zhuǎn)時刻與當(dāng)前的原節(jié)目的流媒體碎片文件的結(jié)束時間點一致但與需要跳轉(zhuǎn)的目標(biāo)節(jié)目的流媒體碎片文件的開始時間點不一致時,將當(dāng)前的原節(jié)目的流媒體碎片文件與需要跳轉(zhuǎn)的目標(biāo)節(jié)目的流媒體碎片文件的在所述跳轉(zhuǎn)時刻至需要跳轉(zhuǎn)的目標(biāo)節(jié)目的流媒體碎片文件的結(jié)束時間點之間的部分切合成所述跳轉(zhuǎn)文件。
[0030]本發(fā)明的流媒體點播編輯系統(tǒng)可以在當(dāng)前播放界面直接進(jìn)行播放切換,并通過在服務(wù)器端對視頻進(jìn)行切合處理使得用戶端在切換頻道時不需要同時下載兩套節(jié)目,節(jié)約了帶寬。切合后的視頻對于用戶端來說相當(dāng)于一個訂制的私有頻道,避免了切換到目標(biāo)頻道需要等待緩沖的時間。本發(fā)明的流媒體點播編輯系統(tǒng)雖然在用戶切換頻道后有一定的延時才完成切換,但由于用戶在延時的時間里觀看的是原頻道的內(nèi)容,其用戶體驗大大優(yōu)于同時下載兩套節(jié)目可能帶來的卡頓和暫停觀看等待緩沖完成的用戶體驗。
【專利附圖】
【附圖說明】
[0031]圖1為本發(fā)明實施方式涉及的流媒體點播編輯系統(tǒng)的結(jié)構(gòu)框圖;
圖2為本發(fā)明實施方式涉及的流媒體點播編輯系統(tǒng)的處理流程圖;
圖3為本發(fā)明實施方式涉及的流媒體點播編輯系統(tǒng)的預(yù)處理模塊的處理流程圖;
圖4A-C為本發(fā)明實施方式涉及的流媒體點播編輯系統(tǒng)的切合處理的示例圖。
【具體實施方式】
[0032]目前,不論是數(shù)字電視點播系統(tǒng)還是網(wǎng)絡(luò)點播系統(tǒng)都是采用一定的流媒體格式傳輸信號,其中廣泛采用的方式是M3U8格式的TS流,但不限于M3U8格式的TS流。下面以輸入和輸出均為M3U8格式的TS流為例根據(jù)附圖所示實施方式闡述本項發(fā)明。此次公開的實施方式可以認(rèn)為在所有方面均為例示,不具限制性。本發(fā)明的范圍不受上述實施方式的說明所限,僅由權(quán)利要求書的范圍所示,而且包括與權(quán)利要求范圍具有同樣意思及權(quán)利要求范圍內(nèi)的所有變形。
[0033]本系統(tǒng)主要用于數(shù)字點播臺、視頻網(wǎng)站等單位的節(jié)目制作和播出,具有輸入端和輸出端。輸入的信號可以是直播的流媒體數(shù)據(jù)(數(shù)字電視頻道的TS文件流)也可以是廣告等預(yù)錄制節(jié)目的音視頻文件;輸出端連接若干用戶的播放終端。為方便描述,以下以單個用戶的點播操作及輸入頻道包括兩個M3U8流媒體頻道BTVl和BTV2為例進(jìn)行說明。
[0034]圖1為本發(fā)明的流媒體點播編輯系統(tǒng)的結(jié)構(gòu)框圖。如圖1所示,本實施方式的流媒體點播編輯系統(tǒng)包括預(yù)處理單元1、調(diào)度單元2、音視頻處理單元3、直播單元4、和點播端
5。點播端5可以是計算機、機頂盒和手機等點播設(shè)備,可以顯示系統(tǒng)輸入端的節(jié)目列表等各種信息,用戶通過點播端5進(jìn)行點播和切換節(jié)目等操作。系統(tǒng)的輸入端可以是直播的流媒體數(shù)據(jù)(如電視頻道數(shù)據(jù))的下載源,也可以是包括已錄制的音視頻節(jié)目、廣告等在內(nèi)的預(yù)錄制節(jié)目庫。點播端5可以與調(diào)度單元2進(jìn)行通信,用戶輸入的點播指令被發(fā)送給調(diào)度單元2,調(diào)度單元2可以將輸入端的信息發(fā)送給點播端5,從而用戶可以在點播端5 了解輸入端的節(jié)目內(nèi)容等信息。調(diào)度單元2中配置有數(shù)據(jù)庫,用戶輸入的點播指令被轉(zhuǎn)換后存儲在數(shù)據(jù)庫中。調(diào)度單元2與預(yù)處理單元1、音視頻處理單元3、和直播單元4進(jìn)行了可通信連接,用自身的數(shù)據(jù)庫中存儲的設(shè)定信息協(xié)調(diào)各單元的運行。
[0035]預(yù)處理單元I包括預(yù)處理模塊11和預(yù)錄制節(jié)目庫模塊12 ;預(yù)錄制節(jié)目庫模塊12用于存儲預(yù)錄制節(jié)目的音視頻文件,可能是已錄制的電視節(jié)目、廣告等。預(yù)處理模塊11對存儲在預(yù)錄制節(jié)目庫模塊12中的預(yù)錄制節(jié)目進(jìn)行預(yù)處理,預(yù)處理包括轉(zhuǎn)碼處理和流化處理。轉(zhuǎn)碼處理是根據(jù)系統(tǒng)預(yù)先設(shè)置的音視頻文件的編碼格式和參數(shù)將所接收到的音視頻文件的編碼格式和參數(shù)進(jìn)行調(diào)整,使其與系統(tǒng)預(yù)先設(shè)置的音視頻文件的編碼格式和參數(shù)一致。流化處理是將預(yù)錄制節(jié)目的音視頻文件轉(zhuǎn)換為固定時長的流媒體碎片文件(例如長度均為10秒的TS文件)。已錄制的節(jié)目通常以音視頻文件的形式保存在預(yù)錄制節(jié)目庫模塊12中,一段節(jié)目對應(yīng)一個或者幾個音視頻文件,這種存儲格式通常不符合流媒體播放和處理的要求,因此轉(zhuǎn)碼后還需要進(jìn)行流化處理。在對視頻文件進(jìn)行轉(zhuǎn)碼處理后,預(yù)處理模塊11將該音視頻文件轉(zhuǎn)換為10秒時長的TS流文件。預(yù)處理單元I將預(yù)處理后的TS文件按一定規(guī)則順序命名后發(fā)送給調(diào)度單元2。
[0036]調(diào)度單元2具有調(diào)度模塊21和數(shù)據(jù)庫模塊22。調(diào)度模塊21與預(yù)處理單元1、音視頻處理單元3、和直播單元4進(jìn)行了可通信連接,用以協(xié)調(diào)各單元的運行,同時與點播端5進(jìn)行了可通信連接,用以接收用戶輸入的點播指令,所接收的點播指令被轉(zhuǎn)換為指令條目存儲在數(shù)據(jù)庫模塊22,控制系統(tǒng)運行的各種參數(shù)也以指令條目的形式預(yù)先存儲在數(shù)據(jù)庫模塊22。當(dāng)有新用戶(新的點播端5)接入系統(tǒng)時,調(diào)度單元2將輸入頻道和預(yù)錄制節(jié)目列表等初始化信息發(fā)送給點播端5。調(diào)度模塊21根據(jù)數(shù)據(jù)庫模塊22中預(yù)設(shè)的各輸入頻道的視頻數(shù)據(jù)下載地址可以下載各頻道的視頻數(shù)據(jù)并存儲在數(shù)據(jù)庫模塊22中,同時,可以接收由預(yù)處理單元I對預(yù)錄制節(jié)目進(jìn)行了預(yù)處理后的TS文件。調(diào)度單元2根據(jù)用戶輸入的點播指令將接收到的TS文件依次送至音視頻處理單元3進(jìn)行處理,并接收由音視頻處理單元3處理后的TS文件。處理后的TS文件被調(diào)度單元2發(fā)送給直播單元4。
[0037]音視頻處理單元3具有文件處理模塊31和存儲模塊32。文件處理模塊31從調(diào)度單元2接收TS文件,對接收到的TS文件進(jìn)行編碼轉(zhuǎn)換、添加臺標(biāo)等常規(guī)的視頻處理并將跨越跳轉(zhuǎn)時刻的原節(jié)目和目標(biāo)節(jié)目的兩個TS文件切合成一個跳轉(zhuǎn)TS文件。由音視頻處理單元3處理后的TS文件發(fā)回給調(diào)度單元2,并由調(diào)度單元2轉(zhuǎn)發(fā)給直播單元4。
[0038]直播單元4具有播放模塊41和文件庫模塊42。直播單元4的播放模塊41接收音視頻處理單元3發(fā)送的TS文件,并存儲在文件庫模塊42中。每個輸入頻道或預(yù)錄制節(jié)目的TS文件存放在文件庫模塊42的不同路徑下。
[0039]點播端5設(shè)置在用戶一端,可以是計算機、手機或機頂盒等數(shù)字設(shè)備,可以顯示從調(diào)度單元2接收的系統(tǒng)輸入端的頻道及預(yù)錄制節(jié)目列表等各種信息。用戶通過點播端5選擇要收看的節(jié)目、進(jìn)行頻道切換等操作,用戶輸入的上述設(shè)定被發(fā)送給調(diào)度單元2。由于系統(tǒng)可能有很多用戶,系統(tǒng)中的點播端5通常有很多個。
[0040]圖2是本發(fā)明的點播編輯系統(tǒng)的處理流程圖。以下結(jié)合圖2具體說明本發(fā)明的系統(tǒng)的處理流程。
[0041]當(dāng)本發(fā)明的系統(tǒng)啟動后,調(diào)度模塊21將數(shù)據(jù)庫模塊22中所存儲的供預(yù)處理單元
1、音視頻處理單元3、直播單元4和點播端5運行所需的預(yù)先設(shè)定的參數(shù)發(fā)送給各單元進(jìn)行初始化(步驟SI)。數(shù)據(jù)庫模塊22中預(yù)先存有對本發(fā)明的系統(tǒng)各部分的設(shè)定信息,例如,數(shù)據(jù)庫模塊22可以存有以下信息:包含各輸入頻道的相關(guān)信息的頻道信息表、包含預(yù)錄制節(jié)目的信息的視頻文件信息表、包含前述音視頻處理單元3進(jìn)行的轉(zhuǎn)碼處理的參數(shù)的轉(zhuǎn)碼參數(shù)信息表、包括臺標(biāo)和字幕等信息的素材信息表。當(dāng)本發(fā)明的系統(tǒng)啟動后,在步驟SI中,調(diào)度模塊21將與包含各輸入頻道的相關(guān)信息的頻道信息表、包含預(yù)錄制節(jié)目的信息的視頻文件信息表相對應(yīng)的輸入端的各頻道、預(yù)錄制節(jié)目的視頻文件的列表及其播放地址等信息發(fā)送給點播端5 ;調(diào)度單元2的調(diào)度模塊21根據(jù)轉(zhuǎn)碼參數(shù)信息表向音視頻處理單元3發(fā)送關(guān)于目標(biāo)音視頻格式的信息,根據(jù)素材信息表向音視頻處理單元3發(fā)送需要添加到視頻中的臺標(biāo)或字幕等素材信息;調(diào)度單元2的調(diào)度模塊21循環(huán)檢測用戶新下達(dá)的點播指令,如果存在用戶新下達(dá)的點播指令則讀取指令并據(jù)此進(jìn)行操作或命令各單元進(jìn)行相應(yīng)操作。上述發(fā)送給點播端5的信息在點播端5顯示給用戶,用戶在點播端5選擇要播放的頻道或節(jié)目。
[0042]當(dāng)有用戶在點播端5輸入點播指令時,該點播指令被傳送給調(diào)度單元2的調(diào)度模塊21,并由調(diào)度模塊21轉(zhuǎn)發(fā)送至音視頻處理單元3 (步驟S2)。在步驟S2中,用戶可以根據(jù)點播端5顯示的有關(guān)頻道或節(jié)目等信息,下達(dá)點播指令,并由點播端5將點播指令發(fā)送給調(diào)度模塊21,調(diào)度模塊21在數(shù)據(jù)庫模塊22的數(shù)據(jù)庫中為該用戶建立一個用戶信息表,存儲該用戶的播放狀態(tài)、通訊地址等信息。
[0043]調(diào)度模塊21判斷該點播指令涉及的節(jié)目內(nèi)容是預(yù)錄制節(jié)目還是直播的流媒體數(shù)據(jù)(步驟S3)。
[0044]如果該點播指令涉及的節(jié)目內(nèi)容是預(yù)錄制節(jié)目(步驟S3:是),預(yù)處理單元I的預(yù)處理模塊11接收調(diào)度單元2發(fā)送的指令,從預(yù)錄制節(jié)目庫模塊12中提取該節(jié)目對應(yīng)的視頻文件,對該文件進(jìn)行預(yù)處理后發(fā)送給調(diào)度單元2,并將經(jīng)過預(yù)處理后該節(jié)目對應(yīng)的TS文件存儲至數(shù)據(jù)庫模塊22中(步驟S4)。
[0045]如果該點播指令涉及的節(jié)目內(nèi)容是直播節(jié)目(步驟S3:否),調(diào)度單元2的調(diào)度模塊21根據(jù)該點播指令下載相應(yīng)的直播節(jié)目的輸入頻道的M3U8文件,并開始下載該輸入頻道的TS流文件,將所下載的該輸入頻道的TS流文件存儲到數(shù)據(jù)庫模塊22中,將下載的相應(yīng)的TS文件轉(zhuǎn)發(fā)給音視頻處理單元3 (步驟S5)。文件處理模塊31對該TS文件進(jìn)行轉(zhuǎn)碼處理,并將上述經(jīng)轉(zhuǎn)碼處理后的TS文件暫存在存儲模塊32中(步驟S6)。
[0046]調(diào)度單元2的調(diào)度模塊21判斷在當(dāng)前處理的TS文件的時間戳范圍內(nèi)或其結(jié)束時刻用戶是否指令進(jìn)行跳轉(zhuǎn)(步驟S7)。在步驟S7中,如果用戶希望轉(zhuǎn)換當(dāng)前播放的節(jié)目,可以通過點播端5顯示的有關(guān)頻道或節(jié)目等信息,選擇需要跳轉(zhuǎn)的目標(biāo)節(jié)目信息,下達(dá)將當(dāng)前播放的節(jié)目轉(zhuǎn)換到目標(biāo)節(jié)目的跳轉(zhuǎn)指令。通常而言,跳轉(zhuǎn)指令可以包括所希望跳轉(zhuǎn)播放的節(jié)目及時間點。系統(tǒng)在進(jìn)行跳轉(zhuǎn)處理時,需要花費一定的時間,因此用戶需要距所希望跳轉(zhuǎn)播放節(jié)目的時間點的一定時間間隔之前下達(dá)跳轉(zhuǎn)指令。例如,上述一定時間間隔為10秒,當(dāng)用戶需要在10:00: OOam跳轉(zhuǎn)播放節(jié)目時,用戶須在9:59:50am之前下達(dá)跳轉(zhuǎn)指令。上述一定時間間隔至少為系統(tǒng)實現(xiàn)播放節(jié)目進(jìn)行正常跳轉(zhuǎn)所需的時間。如果用戶下達(dá)跳轉(zhuǎn)指令的時間點距所希望跳轉(zhuǎn)播放節(jié)目的時間點不足上述一定時間間隔,則系統(tǒng)可以順延所希望跳轉(zhuǎn)播放節(jié)目的時間點;如果用戶下達(dá)跳轉(zhuǎn)指令的時間點距所希望跳轉(zhuǎn)播放節(jié)目的時間點超過上述一定時間間隔,則系統(tǒng)可以相應(yīng)地提前所希望跳轉(zhuǎn)播放節(jié)目的時間點,或暫存所述跳轉(zhuǎn)指令,直到上述一定時間間隔時啟動跳轉(zhuǎn)指令。當(dāng)前TS文件的時間戳范圍指的是該TS文件在節(jié)目安排中的時間范圍,對直播節(jié)目的TS文件來說與其在源頻道中被播出的時間范圍相同,對預(yù)錄制節(jié)目的TS文件來說是其被設(shè)定播出的時間范圍。在此,所述TS文件的時間戳范圍包括從該TS文件的開始的時間點至下一個TS文件的開始的時間點,其中下一個TS文件的開始的時間點也就是該TS文件的結(jié)束的時間點,但結(jié)束時間點不包括在時間戳范圍內(nèi)。也就是說,如果跳轉(zhuǎn)時間點正好處在前后兩個TS文件的銜接點上,該跳轉(zhuǎn)時間點在下一個TS文件的時間戳范圍內(nèi),而不在該TS文件的時間戳范圍內(nèi)。例如,一個TS文件的長度為10秒,時長是從9:59:50am到10:00: OOam,其起始時間9:59:50am屬于該TS文件的時間戳范圍,結(jié)束時間10:00:00am屬于下一個TS文件的時間戳范圍。
[0047]如果調(diào)度模塊21判斷用戶下達(dá)了在當(dāng)前TS文件的時間戳范圍內(nèi)進(jìn)行跳轉(zhuǎn)的指令(步驟S7:是),則調(diào)度模塊21將跳轉(zhuǎn)指令轉(zhuǎn)發(fā)給音視頻處理單元3的文件處理模塊31,并從上述數(shù)據(jù)庫模塊22中讀取相應(yīng)的預(yù)錄制節(jié)目視頻文件的TS文件并將其轉(zhuǎn)發(fā)給文件處理模塊31,或指示文件處理模塊31從存儲模塊32中讀取暫存的經(jīng)轉(zhuǎn)碼處理后的直播節(jié)目視頻文件的相應(yīng)TS文件(步驟S8)。在當(dāng)前點播的是預(yù)錄制節(jié)目時,調(diào)度模塊21從上述數(shù)據(jù)庫模塊22中讀取相應(yīng)的預(yù)錄制節(jié)目視頻文件的TS文件,并將其轉(zhuǎn)發(fā)給文件處理模塊31 ;在當(dāng)前點播的是直播節(jié)目時,調(diào)度模塊21指示文件處理模塊31從存儲模塊32中讀取暫存的經(jīng)轉(zhuǎn)碼處理后的直播節(jié)目視頻文件的相應(yīng)TS文件。
[0048]文件處理模塊31基于跳轉(zhuǎn)指令判斷是否在其所接收的TS文件結(jié)束時進(jìn)行跳轉(zhuǎn)(步驟S9)。例如,文件處理模塊31所接收的TS文件的長度為10秒(比如從9:59:50am到10:00:OOam),如果所希望跳轉(zhuǎn)播放節(jié)目的時間點正好在10:00:OOam,則說明在所接收的TS文件結(jié)束(即下一個TS文件開始)時進(jìn)行跳轉(zhuǎn),如果所希望跳轉(zhuǎn)播放節(jié)目的時間點正好在9:59:55am,則說明在所接收的TS文件未結(jié)束時進(jìn)行跳轉(zhuǎn)。
[0049]如果文件處理模塊31判斷在其所接收的TS文件結(jié)束時進(jìn)行跳轉(zhuǎn)(步驟S9:是),則繼續(xù)判斷所接收的TS文件結(jié)束時的時間點是否與需要跳轉(zhuǎn)的目標(biāo)節(jié)目的TS文件的開始的時間點一致(步驟S10)。如果原節(jié)目和目標(biāo)節(jié)目都是直播節(jié)目,那么兩個節(jié)目的TS文件的時間戳可能是同步的,也就是說兩個頻道的TS文件的起止時間是一致的。在這種情況下,在原節(jié)目TS文件結(jié)束時進(jìn)行的跳轉(zhuǎn)可以直接跳轉(zhuǎn)到目標(biāo)節(jié)目的相應(yīng)TS文件而不必進(jìn)行切合。如果文件處理模塊31判斷所接收的TS文件結(jié)束時的時間點與需要跳轉(zhuǎn)的目標(biāo)節(jié)目的TS文件的開始的時間點一致(步驟SlO:是),則進(jìn)入步驟S20,對該TS文件進(jìn)行跳轉(zhuǎn)信息處理。如果文件處理模塊31判斷所接收的TS文件結(jié)束時的時間點與需要跳轉(zhuǎn)的目標(biāo)節(jié)目的TS文件的開始的時間點不一致(步驟SlO:否),則進(jìn)入步驟S11,將該TS文件暫存至存儲模塊32。
[0050]如果文件處理模塊31判斷在其所接收的TS文件未結(jié)束時進(jìn)行跳轉(zhuǎn)(步驟S9:否),文件處理模塊31將該TS文件暫存至存儲模塊32 (步驟SI I ),然后進(jìn)入步驟S12。
[0051]在步驟S12中,調(diào)度單元2的調(diào)度模塊21基于跳轉(zhuǎn)指令判斷需要跳轉(zhuǎn)的目標(biāo)節(jié)目的TS文件是預(yù)錄制節(jié)目還是直播的流媒體數(shù)據(jù)。如果調(diào)度模塊21判斷需要跳轉(zhuǎn)的目標(biāo)節(jié)目的TS文件是預(yù)錄制節(jié)目(步驟S12:是),調(diào)度模塊21向預(yù)處理單元I的預(yù)處理模塊11發(fā)送指令,從預(yù)錄制節(jié)目庫模塊12中提取需要跳轉(zhuǎn)的目標(biāo)節(jié)目對應(yīng)的視頻文件,對該需要跳轉(zhuǎn)的目標(biāo)節(jié)目對應(yīng)的視頻文件進(jìn)行預(yù)處理后發(fā)送給調(diào)度單元2,并將預(yù)處理后的需要跳轉(zhuǎn)的目標(biāo)節(jié)目的TS文件存儲至數(shù)據(jù)庫模塊22 (步驟S13)。調(diào)度模塊21將需要跳轉(zhuǎn)的目標(biāo)節(jié)目的TS文件發(fā)送給音視頻處理單元3的文件處理模塊31 (步驟S14)。
[0052]如果調(diào)度模塊21判斷需要跳轉(zhuǎn)的目標(biāo)節(jié)目的TS文件是直播的流媒體數(shù)據(jù)(步驟S12:否),調(diào)度單元2的調(diào)度模塊21需要跳轉(zhuǎn)的輸入頻道信息下載相應(yīng)的直播節(jié)目的輸入頻道的M3U8文件,并開始下載該輸入頻道的TS流文件,將所下載的該輸入頻道的TS流文件發(fā)送給音視頻處理單元3的文件處理模塊31,同時將其存儲到數(shù)據(jù)庫模塊22中(步驟S15)。
[0053]文件處理模塊31判斷是否接收到需要跳轉(zhuǎn)的目標(biāo)節(jié)目的TS文件(步驟S16)。如果文件處理模塊31判斷沒有接收到需要跳轉(zhuǎn)的目標(biāo)節(jié)目的TS文件(步驟S16:否),則繼續(xù)等待。如果文件處理模塊31判斷接收到需要跳轉(zhuǎn)的目標(biāo)節(jié)目的TS文件(步驟S16:是),文件處理模塊31判斷需要跳轉(zhuǎn)的目標(biāo)節(jié)目的TS文件是預(yù)錄制節(jié)目還是直播的流媒體數(shù)據(jù)(步驟S17)。如果文件處理模塊31判斷需要跳轉(zhuǎn)的目標(biāo)節(jié)目的TS文件是直播的流媒體數(shù)據(jù)(步驟S17:否),文件處理模塊31將需要跳轉(zhuǎn)的目標(biāo)節(jié)目的TS文件進(jìn)行轉(zhuǎn)碼處理,并從上述存儲模塊32中讀取該跨越跳轉(zhuǎn)時刻的TS文件(即在其未結(jié)束時需要進(jìn)行跳轉(zhuǎn)的TS文件),將上述跨越跳轉(zhuǎn)時刻的TS文件和經(jīng)轉(zhuǎn)碼處理后的需要跳轉(zhuǎn)的目標(biāo)節(jié)目的TS文件切合成跳轉(zhuǎn)TS文件(步驟S18),然后進(jìn)入步驟S20。
[0054]如果文件處理模塊31判斷需要跳轉(zhuǎn)的目標(biāo)節(jié)目的TS文件是預(yù)錄制節(jié)目(步驟S17:是),文件處理模塊31從上述存儲模塊32中讀取該跨越跳轉(zhuǎn)時刻的TS文件(即在其未結(jié)束時需要進(jìn)行跳轉(zhuǎn)的TS文件),并將該跨越跳轉(zhuǎn)時刻的TS文件和需要跳轉(zhuǎn)的目標(biāo)節(jié)目的TS文件切合成跳轉(zhuǎn)TS文件(步驟S19),然后進(jìn)入步驟S20。
[0055]在步驟S20中,文件處理模塊31對上述需要跳轉(zhuǎn)的TS文件進(jìn)行跳轉(zhuǎn)信息處理。具體的跳轉(zhuǎn)信息處理過程將在后詳述。
[0056]音視頻處理單元3的文件處理模塊31將進(jìn)行跳轉(zhuǎn)信息處理后的TS文件(跳轉(zhuǎn)文件)發(fā)回給調(diào)度單元2的調(diào)度模塊21,并由調(diào)度模塊21轉(zhuǎn)發(fā)給直播單元4的播放模塊41(步驟S21)。收到跳轉(zhuǎn)文件后,直播單元4的播放模塊41根據(jù)跳轉(zhuǎn)文件中的跳轉(zhuǎn)信息進(jìn)行跳轉(zhuǎn)(步驟S22),即將跳轉(zhuǎn)文件記入M3U8文件中。如后所述,直播單元4的下載地址中存有與該用戶ID對應(yīng)的M3U8文件。在跳轉(zhuǎn)前,在步驟S24中播放模塊41將原節(jié)目的TS文件的文件名和地址按時間戳順序記入M3U8文件,由與該用戶ID對應(yīng)的播放端進(jìn)行播放;跳轉(zhuǎn)發(fā)生時,在步驟S22中,播放模塊41將跳轉(zhuǎn)TS文件的文件名和地址記入與該用戶ID對應(yīng)的M3U8文件,其順序在原節(jié)目的TS文件之后;然后,播放模塊41根據(jù)跳轉(zhuǎn)文件中的跳轉(zhuǎn)信息確定跳轉(zhuǎn)后要播放的目標(biāo)節(jié)目的TS文件的時間戳或序號,在之后的步驟S24中將跳轉(zhuǎn)后要播放的目標(biāo)節(jié)目的TS文件的文件名和地址按時間戳順序記入與該用戶ID對應(yīng)的M3U8文件。
[0057]如果調(diào)度模塊21判斷當(dāng)前TS文件的時間戳范圍內(nèi)或其結(jié)束時間沒有跳轉(zhuǎn)(步驟S7:否),則調(diào)度模塊21從上述數(shù)據(jù)庫模塊22中讀取相應(yīng)的預(yù)錄制節(jié)目視頻文件的TS文件并將其轉(zhuǎn)發(fā)給直播單元4,或通過文件處理模塊31從存儲模塊32中獲取暫存的經(jīng)轉(zhuǎn)碼處理后的直播節(jié)目視頻文件的相應(yīng)TS文件并將其轉(zhuǎn)發(fā)給直播單元4 (步驟S23)。
[0058]直播單元4將收到的TS文件存儲到文件庫模塊42。當(dāng)有用戶端接入系統(tǒng)開始點播時,直播單元4根據(jù)從調(diào)度模塊21收到的用戶信息生成與每個用戶ID對應(yīng)的M3U8文件,并在播放服務(wù)器上建立與該用戶對應(yīng)的下載地址。然后,將該用戶點播的節(jié)目當(dāng)前的TS文件及其下載地址記入對應(yīng)的M3U8文件。或者,當(dāng)已經(jīng)為該用戶建立了下載地址和M3U8文件時,直播單元4根據(jù)時間戳或序號將后續(xù)的TS文件及其下載地址記入該用戶的M3U8文件(步驟S24)。點播端5按照上述地址下載M3U8文件和TS文件就可以進(jìn)行播放(步驟S25)。調(diào)度單元2判斷點播的節(jié)目是否已經(jīng)處理完畢(步驟S26)。如果點播端5仍在進(jìn)行播放節(jié)目(步驟S26:否),則返回步驟S7,調(diào)度模塊21判斷在當(dāng)前處理的TS文件的時間戳范圍內(nèi)用戶是否指令進(jìn)行跳轉(zhuǎn),如果調(diào)度模塊21判斷接收到用戶輸入的跳轉(zhuǎn)指令(步驟S7:是),進(jìn)行步驟S8-S22的處理,如果調(diào)度模塊21判斷未接收到用戶輸入的跳轉(zhuǎn)指令(步驟S7:否),進(jìn)入步驟S23的處理;如果點播端5結(jié)束播放節(jié)目(步驟S26:是),則結(jié)束處理。
[0059]圖3是預(yù)處理單元I的預(yù)處理模塊11的處理流程圖。如果用戶為當(dāng)前時刻設(shè)定的輸入源為視頻文件,則調(diào)度單元2指令預(yù)處理單元I對該視頻文件進(jìn)行預(yù)處理。預(yù)處理單元I檢測是否從調(diào)度單元2收到預(yù)處理指令(步驟SlOl ),如果收到預(yù)處理指令(步驟SlOl:是),預(yù)處理單元I的預(yù)處理模塊11從預(yù)錄制節(jié)目庫模塊12中取出相應(yīng)的音視頻文件,將音視頻文件剪切并封裝為10秒時長的TS流文件(步驟S102)。然后,預(yù)處理模塊11根據(jù)調(diào)度單元2的指令,確定音視頻處理單元3需要的編碼格式,對步驟S102獲得的TS文件進(jìn)行轉(zhuǎn)碼處理以使其編碼格式與音視頻處理單元3需要的編碼格式一致(步驟S103)。其中,轉(zhuǎn)碼處理的內(nèi)容可以包括改變視頻碼率,改變視頻分辨率,增加臺標(biāo)Logo,改變音頻采樣率,改變音頻碼率,改變音頻聲道等。以上處理完成后,預(yù)處理單元I將預(yù)處理后的TS文件按一定規(guī)則順序命名后發(fā)送給調(diào)度單元2 (步驟S104)。預(yù)處理后的TS流文件按下述規(guī)則命名:文件名各部分以下劃線分割,每部分的含義分別是:視頻文件ID_碼率_年月日_時分秒毫秒 _序號。例如,文件名可能是 P420_800000_20131211_124643962_00000001.ts,表明該文件ID為P420 (此處的P表示預(yù)錄制節(jié)目),碼率為800000,預(yù)處理的日期為2013年12月11日,該TS文件預(yù)定被播出的起始時間是12時46分43秒962毫秒,在該頻道TS文件中的序號為00000001。如此,后續(xù)的TS文件名分別為P420_800000_20131211_124653962_
00000002.ts、P420_800000_20131211_124703962_00000003.ts,以此類推。文件名中的年月日時分秒毫秒部分是該文件的時間戳,可以通過該預(yù)錄制節(jié)目在節(jié)目表中設(shè)定的開始播放的時間加上該TS文件在預(yù)錄制節(jié)目中所在的播放時間來計算。預(yù)處理后的TS文件發(fā)送給調(diào)度單元2 (步驟S105)。
[0060]在上述實施方式中,調(diào)度單元2將下載的直播節(jié)目的TS文件以直播節(jié)目TS文件的規(guī)則命名,其命名規(guī)則如下:文件名各部分以下劃線分割,每部分的含義為:頻道10_碼率_ 年月日 _ 時分秒毫秒 _ 序號。例如,BTV1_800000_20131211_124643962_18762041.ts,表明該文件的頻道ID為BTV1,碼率為800000,日期為2013年12月11日,TS文件的起始時間是12時46分43秒962毫秒,在該頻道TS文件中的序號為18762041。文件名中的年月日時分秒毫秒部分是該文件的時間戳,可以通過源頻道中的M3U8文件中的信息來計算。
[0061]在上述實施方式中,跳轉(zhuǎn)時的切合處理是將跨越了跳轉(zhuǎn)時間點的跳轉(zhuǎn)前節(jié)目的TS文件(當(dāng)前節(jié)目的TS文件)和跳轉(zhuǎn)后節(jié)目的TS文件(目標(biāo)節(jié)目的TS文件)進(jìn)行剪切和拼合。即,從跳轉(zhuǎn)前節(jié)目的TS文件中剪切出從該文件的起始時間到跳轉(zhuǎn)時間點的前半部分,從跳轉(zhuǎn)后節(jié)目的TS文件中剪切出從跳轉(zhuǎn)時間點到結(jié)束時間的后半部分,并將兩部分進(jìn)行拼合,成為包含跳轉(zhuǎn)前節(jié)目在跳轉(zhuǎn)時間點之前的內(nèi)容和跳轉(zhuǎn)后節(jié)目在跳轉(zhuǎn)時間點之后的內(nèi)容的切合后的TS文件。統(tǒng)計跳轉(zhuǎn)TS文件的幀數(shù),供后述命名時使用。
[0062]圖4為切合處理的示例圖。其中,圖4A是在兩個時間戳同步的直播節(jié)目間跳轉(zhuǎn)、且跳轉(zhuǎn)時間點是在TS文件的結(jié)束時間點上時的跳轉(zhuǎn)示意圖。此時,原節(jié)目和目標(biāo)節(jié)目的兩個TS文件不需要進(jìn)行切合,原頻道的最后一個TS文件直接被作為跳轉(zhuǎn)文件命名,跳轉(zhuǎn)信息指向目標(biāo)頻道的跳轉(zhuǎn)后的TS文件。
[0063]圖4B是在兩個時間戳同步的直播節(jié)目間跳轉(zhuǎn)、但跳轉(zhuǎn)時間點不是在TS文件的結(jié)束時間點上時的跳轉(zhuǎn)示意圖。此時,原節(jié)目的TS文件在跳轉(zhuǎn)時間點之前的部分和目標(biāo)節(jié)目的TS文件在跳轉(zhuǎn)時間點之后的部分被剪切出來并拼合成一個10秒時長的跳轉(zhuǎn)TS文件。
[0064]但有時跳轉(zhuǎn)前后的節(jié)目的TS文件時間戳是不同步的,以下以從直播節(jié)目跳轉(zhuǎn)到預(yù)錄制節(jié)目然后再跳轉(zhuǎn)回該直播節(jié)目為例對TS文件時間戳不同步時的切合處理進(jìn)行說明。
[0065]圖4C是在兩個TS文件時間戳不同步的節(jié)目間跳轉(zhuǎn)的示例圖。如圖4C所示,如果在直播節(jié)目中的一個10秒TS文件的第4秒時跳轉(zhuǎn)到預(yù)錄制節(jié)目,而預(yù)錄制節(jié)目的第一個TS文件時長為10秒,則TS文件處理模塊31將直播節(jié)目的該10秒TS文件的前4秒的內(nèi)容剪切出來,與預(yù)錄制節(jié)目的第一個TS文件進(jìn)行拼合,形成一個時長為14秒的經(jīng)跳轉(zhuǎn)信息處理后的TS文件,完成了跳轉(zhuǎn)。
[0066]在預(yù)錄制節(jié)目的最后有時需要跳轉(zhuǎn)回該直播節(jié)目(如圖4C所示),此時預(yù)錄制節(jié)目的最后一個TS文件時長為5秒,而直播節(jié)目的跨越跳轉(zhuǎn)點的TS文件在跳轉(zhuǎn)點之后還有I秒的時長。同樣按上述規(guī)則,剪切出直播節(jié)目的TS文件中最后I秒的內(nèi)容,將預(yù)錄制節(jié)目的最后一個TS文件與剪切出的直播節(jié)目的TS文件中最后I秒的內(nèi)容進(jìn)行拼合,形成一個時長為6秒的經(jīng)跳轉(zhuǎn)信息處理后的TS文件,完成再次跳轉(zhuǎn)。
[0067]在上述實施方式中,文件處理模塊31將得到的經(jīng)跳轉(zhuǎn)信息處理后的TS文件用與直播節(jié)目的TS文件和預(yù)錄制節(jié)目的TS文件不同的規(guī)則命名。具體地,在經(jīng)跳轉(zhuǎn)信息處理后的TS文件的文件名中包含了跳轉(zhuǎn)前節(jié)目的信息和跳轉(zhuǎn)后節(jié)目的信息以及用戶ID。跳轉(zhuǎn)后節(jié)目的信息包括多個部分,每個部分以“#”開頭,包括:#跳轉(zhuǎn)前的頻道ID/視頻文件ID、#本TS文件中視頻幀數(shù)、#跳轉(zhuǎn)后的節(jié)目類別(直播節(jié)目C ;預(yù)錄制節(jié)目P)、#跳轉(zhuǎn)到的目標(biāo)頻道ID/視頻文件ID、#跳轉(zhuǎn)到的目標(biāo)10秒TS文件在該目標(biāo)頻道/視頻文件中的序號。例如,ID為U0024的用戶在2013年12月11日12時點播了 BTV1,在12時30分10秒362毫秒時切換到BTV2,在此切換時間點上的BTVl的TS文件為BTV1_800000_20131211_123008962_18762041.ts, BTV2 的 TS 文件為 BTV2_800000_20131211_123009854_12586224.ts。此時,TS文件處理模塊31將兩個TS文件切合為跳轉(zhuǎn)文件BTV1_800000_20131211_123008962_18762041#BTV1#262#C#BTV2#12586225#U0024.ts。其中,#BTV1 表示跳轉(zhuǎn)前的頻道或節(jié)目,#262表示本TS文件中的視頻幀數(shù),#C表示跳轉(zhuǎn)到一個頻道,#BTV2表示跳轉(zhuǎn)后的頻道名稱或ID為BTV2,#12586224表示要跳轉(zhuǎn)到目標(biāo)頻道的序號為12586225的TS文件,U0024表示此跳轉(zhuǎn)文件屬于ID為U0024的用戶。
[0068]在上述實施方式中,直播單元4的直播模塊41將從音視頻處理單元3的文件處理模塊31收到的TS文件保存在直播單元4的文件庫模塊42的相應(yīng)位置,同一輸入頻道的TS文件放在同一位置。同時,在直播單元4的直播模塊41中建立了 M3U8流媒體播放所需要的http下載服務(wù)器,下載服務(wù)器的下載目錄下有數(shù)個M3U8文件,每個M3U8文件對應(yīng)一個點播端,M3U8文件中包含該點播端的當(dāng)前TS文件播放列表、文件時長以及表中各TS文件的播放路徑和文件名。在本實施例中,M3U8文件中包括最新的三個TS文件的信息,M3U8文件每10秒更新一次。直播模塊41按照TS文件的時間戳信息或序號來判斷每個點播端的TS文件的播放順序,按順序更新M3U8文件中的文件時長和TS文件地址,完成該點播端的TS文件的播放。當(dāng)發(fā)現(xiàn)存在多個時間戳或序號相同的TS文件時,直播模塊41分析這些TS文件的文件名,從中找出屬于該點播端的跳轉(zhuǎn)TS文件,分析該跳轉(zhuǎn)TS文件的文件名,獲取該TS文件的視頻幀數(shù)、跳轉(zhuǎn)的目標(biāo)節(jié)目和跳轉(zhuǎn)后要播放的TS文件的序號。根據(jù)該TS文件的視頻幀數(shù)計算TS文件的時長,記入M3U8文件。根據(jù)該TS文件跳轉(zhuǎn)的目標(biāo)節(jié)目和跳轉(zhuǎn)后要播放的TS文件的序號確定跳轉(zhuǎn)后的目標(biāo)節(jié)目的下一個TS文件地址,記入M3U8文件。如此,網(wǎng)絡(luò)電視客戶端或數(shù)字電視臺的播放裝置就可以按http服務(wù)器的下載地址下載該點播端對應(yīng)的M3U8文件,并根據(jù)該M3U8文件的內(nèi)容到TS文件庫模塊42的相應(yīng)路徑下載TS文件進(jìn)行播放。
[0069]在上述實施方式中,當(dāng)有新用戶接入系統(tǒng)時,該新用戶的點播端5與調(diào)度單元2的調(diào)度模塊21建立連接,并按照上述處理流程進(jìn)行處理。
[0070]在本實施方式中,在系統(tǒng)內(nèi)部處理和輸出時的TS文件均采用了 10秒的時長,但不限于此,也可以采用其他時長,比如與輸入端的TS文件時長一致。同時,系統(tǒng)內(nèi)部處理時使用的TS文件的時長也可以不同于輸出時的時長。
[0071]在本實施方式中,對跳轉(zhuǎn)時間點上當(dāng)前節(jié)目和需要跳轉(zhuǎn)的目標(biāo)節(jié)目的兩個TS文件進(jìn)行切合,但不限于此,也可以只進(jìn)行剪切不進(jìn)行拼合。在這種情況下,從當(dāng)前節(jié)目和需要跳轉(zhuǎn)的目標(biāo)節(jié)目的TS文件剪切的兩個視頻片段不進(jìn)行拼合而是直接分裝成兩個TS文件。也就是說此時存在兩個跳轉(zhuǎn)TS文件,文件名的命名規(guī)則與上述實施例基本相同,但文件名中增加了代表這兩個TS文件的播放順序的部分。這樣省去了拼合處理,可以更快的完成處理過程,同時可以保證所有TS文件的時長不會超過10秒,有利于數(shù)據(jù)傳輸。
[0072]在本實施方式中,以輸入和輸出均為M3U8格式的TS流為例,但不限于此,輸入和輸出也可以是其他格式的TS流,比如其他MPEG2格式的TS流。此時,系統(tǒng)的各單元采用能夠?qū)υ摳袷降腡S流進(jìn)行處理的底層部件。
[0073]在本實施方式中,預(yù)錄制節(jié)目庫模塊存放的是未經(jīng)流化的原始視頻文件,但不限于此。也可以事先將原始視頻文件按照系統(tǒng)內(nèi)部處理使用的TS文件格式流化后存放在預(yù)錄制節(jié)目庫模塊。此時,預(yù)錄制節(jié)目庫模塊中存儲的節(jié)目可以不經(jīng)預(yù)處理單元的處理直接發(fā)送給調(diào)度單元2。因此,系統(tǒng)的處理負(fù)荷降低,可以進(jìn)一步提高處理速度。
[0074]在本實施方式中,通過在跳轉(zhuǎn)TS命名時在文件名中加入一個表示其所屬的點播端的標(biāo)識來確定哪個跳轉(zhuǎn)TS文件屬于哪個用戶,但不限于此。還可以由調(diào)度單元2將各用戶的節(jié)目跳轉(zhuǎn)信息發(fā)送給音視頻處理單元3和播放單元4,播放單元4在播放時根據(jù)該信息判斷哪個跳轉(zhuǎn)TS文件屬于哪個用戶。
[0075]在本實施方式中,預(yù)錄制節(jié)目和直播節(jié)目的TS文件分別在預(yù)處理單元I和音視頻處理單元3中進(jìn)行轉(zhuǎn)碼處理,但不限于此。也可以由預(yù)處理單元I對預(yù)錄制節(jié)目的音視頻文件進(jìn)行流化處理,由音視頻處理單元3對預(yù)錄制節(jié)目的音視頻文件的經(jīng)流化后的TS文件和直播節(jié)目的TS文件進(jìn)行轉(zhuǎn)碼處理。這樣可以避免使用兩套轉(zhuǎn)碼裝置,有利于降低成本和小型化。
[0076]在本實施方式中,預(yù)處理單元I將預(yù)錄制節(jié)目的音視頻文件先流化成流媒體碎片文件再進(jìn)行轉(zhuǎn)碼,但不限于此。也可以先對該預(yù)錄制節(jié)目的音視頻文件進(jìn)行轉(zhuǎn)碼,再將其流化成流媒體碎片文件。
【權(quán)利要求】
1.一種流媒體點播編輯系統(tǒng),包括: 音視頻處理單元,用于根據(jù)跳轉(zhuǎn)指令對所接收到的流媒體碎片文件進(jìn)行跳轉(zhuǎn)處理,獲取跳轉(zhuǎn)文件,其中所述跳轉(zhuǎn)文件具有包含用戶ID信息在內(nèi)的跳轉(zhuǎn)信息; 直播單元,用于在接收到所述跳轉(zhuǎn)文件后根據(jù)所述跳轉(zhuǎn)信息進(jìn)行播放節(jié)目的跳轉(zhuǎn),并根據(jù)所述用戶ID信息將跳轉(zhuǎn)后的節(jié)目的音視頻文件推送給與所述用戶ID信息相對應(yīng)的用戶及進(jìn)行播放; 調(diào)度單元,用于協(xié)調(diào)所述音視頻處理單元和所述直播單元的工作。
2.根據(jù)權(quán)利要求1所述的流媒體點播編輯系統(tǒng),還包括: 預(yù)處理單元,用于對預(yù)錄制節(jié)目的音視頻文件進(jìn)行預(yù)處理,將所述預(yù)錄制節(jié)目的音視頻文件轉(zhuǎn)換為固定時長的流媒體碎片文件; 所述調(diào)度單元協(xié)調(diào)所述預(yù)處理單元、所述音視頻處理單元和所述直播單元的工作。
3.根據(jù)權(quán)利要求2所述的流媒體點播編輯系統(tǒng),其特征在于: 所述調(diào)度單元從所述預(yù)處理單元接收經(jīng)過預(yù)處理后的所述固定時長的流媒體碎片文件,并將經(jīng)預(yù)處理后的所述固定時長的流媒體碎片文件轉(zhuǎn)發(fā)至所述音視頻處理單元進(jìn)行所述跳轉(zhuǎn)處理后再發(fā)送到所述直播單元,或?qū)⒔?jīng)預(yù)處理后的所述固定時長的流媒體碎片文件不經(jīng)過所述音視頻處理 單元的所述跳轉(zhuǎn)處理而發(fā)送到所述直播單元。
4.根據(jù)權(quán)利要求2所述的流媒體點播編輯系統(tǒng),其特征在于: 所述預(yù)處理還包括對所述固定時長的流媒體碎片文件進(jìn)行轉(zhuǎn)碼處理。
5.根據(jù)權(quán)利要求1所述的流媒體點播編輯系統(tǒng),其特征在于: 所述調(diào)度單元讓不需要進(jìn)行跳轉(zhuǎn)處理的所述流媒體碎片文件不經(jīng)所述音視頻處理單元進(jìn)行所述跳轉(zhuǎn)處理,而直接被發(fā)送至所述直播單元。
6.根據(jù)權(quán)利要求1所述的流媒體點播編輯系統(tǒng),其特征在于: 所述音視頻處理單元還對所接收到的流媒體碎片文件進(jìn)行轉(zhuǎn)碼處理;其中,所述調(diào)度單元將需要進(jìn)行轉(zhuǎn)碼處理的所述流媒體碎片文件轉(zhuǎn)發(fā)至所述音視頻處理單元進(jìn)行所述轉(zhuǎn)碼處理。
7.根據(jù)權(quán)利要求1~6所述的流媒體點播編輯系統(tǒng),其特征在于: 所述音視頻處理單元在跳轉(zhuǎn)時刻將跨越了跳轉(zhuǎn)時刻的原節(jié)目的流媒體碎片文件在跳轉(zhuǎn)時刻之前的部分與跨越了跳轉(zhuǎn)時刻的目標(biāo)節(jié)目的流媒體碎片文件在跳轉(zhuǎn)時刻之后的部分切合成所述跳轉(zhuǎn)文件。
8.根據(jù)權(quán)利要求7所述的流媒體點播編輯系統(tǒng),其特征在于: 所述直播單元根據(jù)時間戳信息按順序輸出原節(jié)目在跳轉(zhuǎn)時刻之前的流媒體碎片文件、所述跳轉(zhuǎn)文件、目標(biāo)節(jié)目在跳轉(zhuǎn)時刻之后的流媒體碎片文件。
9.根據(jù)權(quán)利要求8所述的流媒體點播編輯系統(tǒng),其特征在于: 所述跳轉(zhuǎn)文件的所述時間戳信息和所述用戶ID信息包含在所述跳轉(zhuǎn)文件的文件名中。
10.根據(jù)權(quán)利要求9所述的流媒體點播編輯系統(tǒng),其特征在于: 在所述跳轉(zhuǎn)文件的文件名中,跳轉(zhuǎn)后的目標(biāo)節(jié)目流媒體碎片文件的時間戳信息以與跳轉(zhuǎn)前的節(jié)目流媒體碎片文件的時間戳信息不同的方式進(jìn)行顯示。
11.根據(jù)權(quán)利要求6所述的流媒體點播編輯系統(tǒng),其特征在于:所述音視頻處理單元將跨越了跳轉(zhuǎn)時刻的原節(jié)目流媒體碎片文件在跳轉(zhuǎn)時刻之前的部分剪切為單獨的第一跳轉(zhuǎn)文件,將跨越了跳轉(zhuǎn)時刻的目標(biāo)頻道流媒體碎片文件在跳轉(zhuǎn)時刻之后的部分剪切為單獨的第二跳轉(zhuǎn)文件。
12.根據(jù)權(quán)利要求11所述的流媒體點播編輯系統(tǒng),其特征在于: 所述直播單元在每次跳轉(zhuǎn)時根據(jù)時間戳信息按順序輸出原節(jié)目在跳轉(zhuǎn)時刻之前的流媒體碎片文件、所述第一跳轉(zhuǎn)文件、所述第二跳轉(zhuǎn)文件和目標(biāo)節(jié)目在跳轉(zhuǎn)時刻之后的流媒體碎片文件。
13.根據(jù)權(quán)利要求1~6所述的流媒體點播編輯系統(tǒng),其特征在于: 在跳轉(zhuǎn)時刻與當(dāng)前的原節(jié)目的流媒體碎片文件的結(jié)束時間點一致但與需要跳轉(zhuǎn)的目標(biāo)節(jié)目的流媒體碎片文件的開始時間點不一致時,所述音視頻處理單元將當(dāng)前的原節(jié)目的流媒體碎片文件與需要跳轉(zhuǎn)的目標(biāo)節(jié)目的流媒體碎片文件的在所述跳轉(zhuǎn)時刻至需要跳轉(zhuǎn)的目標(biāo)節(jié)目的流媒體碎片文件的結(jié)束時間點之間的部分切合成所述跳轉(zhuǎn)文件。
14.一種流媒體點播編輯的方法,包括: 音視頻處理步驟,根據(jù)跳轉(zhuǎn)指令對所接收到的流媒體碎片文件進(jìn)行跳轉(zhuǎn)處理,獲取跳轉(zhuǎn)文件,其中所述跳轉(zhuǎn)文件具有包含用戶ID信息在內(nèi)的跳轉(zhuǎn)信息; 直播處理步驟,在接收到所述跳轉(zhuǎn)文件后根據(jù)所述跳轉(zhuǎn)信息進(jìn)行播放節(jié)目的跳轉(zhuǎn),并根據(jù)所述用戶ID信息將跳轉(zhuǎn)后的節(jié)目的音視頻文件推送給與所述用戶ID信息相對應(yīng)的用戶及進(jìn)行播放; 調(diào)度處理步驟,由調(diào)度單元協(xié)調(diào)音視頻處理單元和直播單元的工作。
15.根據(jù)權(quán)利要求14所述的流媒體點播編輯的方法,還包括: 預(yù)處理步驟,對預(yù)錄制節(jié)目的音視頻文件進(jìn)行預(yù)處理,將所述預(yù)錄制節(jié)目的音視頻文件轉(zhuǎn)換為固定時長的流媒體碎片文件;其中, 如果當(dāng)前點播的節(jié)目或跳轉(zhuǎn)的目標(biāo)節(jié)目為所述預(yù)錄制節(jié)目的音視頻文件,在所述調(diào)度處理步驟中,所述調(diào)度單元讓預(yù)處理單元對所述預(yù)錄制節(jié)目的音視頻文件實施所述預(yù)處理步驟。
16.根據(jù)權(quán)利要求15所述的流媒體點播編輯的方法,其特征在于: 在所述調(diào)度處理步驟中,如果所述調(diào)度單元所接收的經(jīng)預(yù)處理后的所述固定時長的流媒體碎片文件是需要進(jìn)行跳轉(zhuǎn)處理的流媒體碎片文件,則將所述固定時長的流媒體碎片文件轉(zhuǎn)發(fā)至所述音視頻處理單元進(jìn)行所述跳轉(zhuǎn)處理后再發(fā)送到所述直播單元,如果所述調(diào)度單元所接收的經(jīng)預(yù)處理后的所述固定時長的流媒體碎片文件是不需要進(jìn)行跳轉(zhuǎn)處理的流媒體碎片文件,則將所述固定時長的流媒體碎片文件發(fā)送到所述直播單元。
17.根據(jù)權(quán)利要求15所述的流媒體點播編輯的方法,其特征在于: 所述預(yù)處理還包括對所述固定時長的流媒體碎片文件進(jìn)行轉(zhuǎn)碼處理。
18.根據(jù)權(quán)利要求14所述的流媒體點播編輯的方法,其特征在于: 所述音視頻處理步驟還對所接收到的流媒體碎片文件進(jìn)行轉(zhuǎn)碼處理; 其中,在所述調(diào)度后處理步驟中,所述調(diào)度單元將需要進(jìn)行轉(zhuǎn)碼處理的所述流媒體碎片文件轉(zhuǎn)發(fā)至所述音視頻處理單元進(jìn)行所述轉(zhuǎn)碼處理。
19.根據(jù)權(quán)利要求14~18所述的流媒體點播編輯的方法,其特征在于: 在所述調(diào)度處理步驟中,讓不需要進(jìn)行跳轉(zhuǎn)處理的所述流媒體碎片文件不經(jīng)所述音視頻處理單元進(jìn)行所述跳轉(zhuǎn)處理,而直接被發(fā)送至所述直播單元。
20.根據(jù)權(quán)利要求19所述的流媒體點播編輯的方法,其特征在于: 所述音視頻處理步驟在跳轉(zhuǎn)時刻將跨越了跳轉(zhuǎn)時刻的原節(jié)目的流媒體碎片文件在跳轉(zhuǎn)時刻之前的部分與跨越了跳轉(zhuǎn)時刻的目標(biāo)節(jié)目的流媒體碎片文件在跳轉(zhuǎn)時刻之后的部分切合成所述跳轉(zhuǎn)文件。
21.根據(jù)權(quán)利要求20所述的流媒體點播編輯的方法,其特征在于: 所述直播處理步驟根據(jù)時間戳信息按順序輸出原節(jié)目在跳轉(zhuǎn)時刻之前的流媒體碎片文件、所述跳轉(zhuǎn)文件、目標(biāo)節(jié)目在跳轉(zhuǎn)時刻之后的流媒體碎片文件。
22.根據(jù)權(quán)利要求21所述的流媒體點播編輯的方法,其特征在于: 所述跳轉(zhuǎn)文件的所述時間戳信息和所述用戶ID信息包含在所述跳轉(zhuǎn)文件的文件名中。
23.根據(jù)權(quán)利要求22所述的流媒體點播編輯的方法,其特征在于: 在所述跳轉(zhuǎn)文件的文件名中,跳轉(zhuǎn)后的目標(biāo)節(jié)目流媒體碎片文件的時間戳信息以與跳轉(zhuǎn)前的節(jié)目流媒體碎片文件的時間戳信息不同的方式進(jìn)行顯示。
24.根據(jù)權(quán)利要 求19所述的流媒體點播編輯的方法,其特征在于: 所述音視頻處理步驟將跨越了跳轉(zhuǎn)時刻的原節(jié)目流媒體碎片文件在跳轉(zhuǎn)時刻之前的部分剪切為單獨的第一跳轉(zhuǎn)文件,將跨越了跳轉(zhuǎn)時刻的目標(biāo)頻道流媒體碎片文件在跳轉(zhuǎn)時刻之后的部分剪切為單獨的第二跳轉(zhuǎn)文件。
25.根據(jù)權(quán)利要求24所述的流媒體點播編輯的方法,其特征在于: 所述直播處理步驟在每次跳轉(zhuǎn)時根據(jù)時間戳信息按順序輸出原節(jié)目在跳轉(zhuǎn)時刻之前的流媒體碎片文件、所述第一跳轉(zhuǎn)文件、所述第二跳轉(zhuǎn)文件和目標(biāo)節(jié)目在跳轉(zhuǎn)時刻之后的流媒體碎片文件。
26.根據(jù)權(quán)利要求14~18所述的流媒體點播編輯的方法,其特征在于: 所述音視頻處理步驟在跳轉(zhuǎn)時刻與當(dāng)前的原節(jié)目的流媒體碎片文件的結(jié)束時間點一致但與需要跳轉(zhuǎn)的目標(biāo)節(jié)目的流媒體碎片文件的開始時間點不一致時,將當(dāng)前的原節(jié)目的流媒體碎片文件與需要跳轉(zhuǎn)的目標(biāo)節(jié)目的流媒體碎片文件的在所述跳轉(zhuǎn)時刻至需要跳轉(zhuǎn)的目標(biāo)節(jié)目的流媒體碎片文件的結(jié)束時間點之間的部分切合成所述跳轉(zhuǎn)文件。
【文檔編號】H04N21/8547GK103945260SQ201410210593
【公開日】2014年7月23日 申請日期:2014年5月19日 優(yōu)先權(quán)日:2014年5月19日
【發(fā)明者】武悅 申請人:無錫天脈聚源傳媒科技有限公司