專(zhuān)利名稱(chēng):用于監(jiān)控流媒體播放的方法、系統(tǒng)及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及流媒體技術(shù),具體地涉及用于監(jiān)控流媒體播放的方法、系統(tǒng)及裝置。
背景技術(shù):
隨著通信技術(shù)的不斷發(fā)展,流媒體技術(shù)(Mreaming Media Technology)的應(yīng)用日 益廣泛。流媒體(Mreaming Media),指的是在網(wǎng)絡(luò)中使用流式傳輸技術(shù)的連續(xù)時(shí)基媒體, 即在因特網(wǎng)上以數(shù)據(jù)流的方式實(shí)時(shí)發(fā)布音、視頻多媒體內(nèi)容的媒體,音頻、視頻、動(dòng)畫(huà)或者 其他形式的多媒體文件都屬于流媒體之列。流媒體是在流媒體技術(shù)支持下,把連續(xù)的影像 和聲音信息經(jīng)過(guò)壓縮處理后放到網(wǎng)絡(luò)服務(wù)器上,讓瀏覽者一邊下載一邊觀看、收聽(tīng),而不需 要等到整個(gè)多媒體文件下載完成就可以即時(shí)觀看的多媒體文件。
發(fā)明內(nèi)容
本發(fā)明提供了用于監(jiān)控流媒體播放的方法、系統(tǒng)及裝置,能夠監(jiān)控在播頻道的異 常情況,提高流媒體播放的可靠性。本發(fā)明實(shí)施例提供一種用于監(jiān)控流媒體播放的方法,該方法包括當(dāng)監(jiān)控到在播頻道異常時(shí),生成切換命令,所述切換命令包括有關(guān)在播頻道和備 選頻道的信息;將所述切換命令發(fā)送到流媒體服務(wù)器,所述切換命令用于指示所述流媒體服務(wù)器 將所述在播頻道切換到所述備選頻道,將所述在播頻道的所有用戶(hù)加入到所述備選頻道的 用戶(hù)中。本發(fā)明的另一實(shí)施例提供一種用于監(jiān)控流媒體播放的方法,該方法包括接收監(jiān)控裝置監(jiān)控到在播頻道異常時(shí)生成的切換命令,所述切換命令包括有關(guān)在 播頻道和備選頻道的信息;根據(jù)所述切換命令將所述在播頻道切換到所述備選頻道,將所述在播頻道的所有 用戶(hù)加入到所述備選頻道的用戶(hù)中。本發(fā)明的另一實(shí)施例提供一種監(jiān)控裝置,該裝置包括命令單元,用于當(dāng)監(jiān)控到在播頻道異常時(shí),生成切換命令,所述切換命令包括有關(guān) 在播頻道和備選頻道的信息;交互單元,用于將所述切換命令發(fā)送到流媒體服務(wù)器,所述切換命令用于指示所 述流媒體服務(wù)器將所述在播頻道切換到所述備選頻道,將所述在播頻道的所有用戶(hù)加入到 所述備選頻道的用戶(hù)中。本發(fā)明的另一實(shí)施例提供一種流媒體服務(wù)器,該服務(wù)器包括接收單元,用于接收監(jiān)控裝置監(jiān)控到在播頻道異常時(shí)生成的切換命令,所述切換 命令包括有關(guān)在播頻道和備選頻道的信息;切換單元,用于根據(jù)所述切換命令將所述在播頻道切換到所述備選頻道,將所述 在播頻道的所有用戶(hù)加入到所述備選頻道的用戶(hù)中。
本發(fā)明的另一實(shí)施例提供一種用于監(jiān)控流媒體播放的系統(tǒng),該系統(tǒng)包括監(jiān)控裝置,用于監(jiān)控在播頻道,當(dāng)監(jiān)控到所述在播頻道異常時(shí),生成切換命令,所 述切換命令包括有關(guān)在播頻道和備選頻道的信息;流媒體服務(wù)器,用于在接收到來(lái)自所述監(jiān)控裝置的所述切換命令后,將所述在播 頻道切換到所述備選頻道,將所述在播頻道的所有用戶(hù)加入到所述備選頻道的用戶(hù)中。采用本發(fā)明實(shí)施例的技術(shù)方案,可以在流媒體播放的過(guò)程中,對(duì)在播頻道進(jìn)行監(jiān) 控。一旦在播頻道異常,由監(jiān)控裝置生成切換命令,指示流媒體服務(wù)器將在播頻道切換到備 選頻道,將在播頻道的所有用戶(hù)加入到備選頻道的用戶(hù)中,避免在播頻道異常的情況對(duì)用 戶(hù)觀看的影響。例如可以避免違規(guī)內(nèi)容播放給用戶(hù),也可以避免在播頻道的故障影響用戶(hù) 觀看,提升了流媒體播放的可靠性。整個(gè)切換過(guò)程對(duì)用戶(hù)透明,用戶(hù)無(wú)需操作,即可繼續(xù)觀 看,從而保證用戶(hù)的體驗(yàn)度。
圖1示出現(xiàn)有技術(shù)中移動(dòng)流媒體組網(wǎng)的示意圖;圖2示出本發(fā)明實(shí)施例中用于監(jiān)控流媒體播放的系統(tǒng)的結(jié)構(gòu)示意圖;圖3示出本發(fā)明實(shí)施例中監(jiān)控裝置的一種實(shí)施方式的結(jié)構(gòu)示意圖;圖4示出本發(fā)明實(shí)施例中流媒體服務(wù)器的一種實(shí)施方式的結(jié)構(gòu)示意圖;圖5示出本發(fā)明一實(shí)施例中用于監(jiān)控流媒體播放的方法的流程示意圖;圖6示出本發(fā)明實(shí)施例中生成切換命令的一種實(shí)施方式的流程示意圖;圖7示出本發(fā)明實(shí)施例中生成切換命令的另一種實(shí)施方式的流程示意圖;圖8示出本發(fā)明另一實(shí)施例中用于監(jiān)控流媒體播放的方法的流程示意圖;圖9示出本發(fā)明實(shí)施例中將在播頻道切換到備選頻道的一種實(shí)施方式的流程示 意圖;圖10示出本發(fā)明實(shí)施例中將在播頻道切換到備選頻道的另一種實(shí)施方式的流程 示意圖;圖11示出本發(fā)明實(shí)施例中啟動(dòng)備選頻道的一種實(shí)施方式的流程示意圖;圖12示出本發(fā)明實(shí)施例中關(guān)閉在播頻道的一種實(shí)施方式的流程示意圖。
具體實(shí)施例方式本發(fā)明實(shí)施例提供的用于監(jiān)控流媒體播放的方法及系統(tǒng)可以應(yīng)用到各種領(lǐng)域的 流媒體技術(shù)中。其中,流媒體技術(shù),是指把連續(xù)的影像和聲音信息經(jīng)過(guò)壓縮處理后放到流媒 體服務(wù)器上,讓用戶(hù)一邊下載一邊觀看、收聽(tīng),而不需要等整個(gè)壓縮文件下載完才可以觀看 的網(wǎng)絡(luò)傳輸技術(shù)。流媒體技術(shù)可以包括但不限于基于寬帶有線(xiàn)網(wǎng)絡(luò)的流媒體技術(shù)和基于移 動(dòng)通信網(wǎng)絡(luò)的流媒體技術(shù),其中,基于移動(dòng)通信網(wǎng)絡(luò)的流媒體技術(shù)稱(chēng)為移動(dòng)流媒體技術(shù)。以 下僅以移動(dòng)流媒體為例說(shuō)明用于監(jiān)控流媒體播放的方法及系統(tǒng)。圖1示出現(xiàn)有技術(shù)中移動(dòng)流媒體組網(wǎng)的示意圖。參見(jiàn)圖1,在移動(dòng)流媒體組網(wǎng)中,運(yùn)營(yíng)商可以自己制作流媒體內(nèi)容并上傳到流 媒體服務(wù)器11,也可以與內(nèi)容提供商(Content Provider, CP)/服務(wù)提供商(Service Provider, SP) 12合作,由CP/SP向流媒體服務(wù)器提供流媒體內(nèi)容。流媒體服務(wù)器11可以通過(guò)接入網(wǎng)14向接收端13播放流媒體。在流媒體播放的過(guò)程中,在播頻道可能會(huì)發(fā)生異常情況。本發(fā)明實(shí)施例中,頻道 “異?!卑ǖ幌抻陬l道涉及違規(guī)內(nèi)容或者發(fā)生故障等,其中,違規(guī)內(nèi)容可以包括但不限 于不健康或者其他禁止播放的內(nèi)容。此時(shí),采用本發(fā)明實(shí)施例所提供的用于監(jiān)控流媒體播 放的方法及系統(tǒng)直接操控在播頻道切換到備選頻道,將在播頻道的所有用戶(hù)加入到備選頻 道的用戶(hù)中,從而不影響用戶(hù)繼續(xù)觀看。圖2示出本發(fā)明實(shí)施例中用于監(jiān)控流媒體播放的系統(tǒng)的結(jié)構(gòu)示意圖。參見(jiàn)圖2,在該實(shí)施例中,監(jiān)控流媒體播放的系統(tǒng)可包括監(jiān)控裝置21,用于監(jiān)控在播頻道,當(dāng)監(jiān)控到在播頻道異常時(shí),生成切換命令,切換 命令包括有關(guān)于源頻道和目的頻道的信息。源頻道為在播頻道,目的頻道為備選頻道。其 中,生成切換命令時(shí),得到備選頻道的方式有多種。在本發(fā)明的一實(shí)施例中可以預(yù)先設(shè)置若 干頻道作為備選,監(jiān)控裝置在監(jiān)控到在播頻道異常時(shí)從預(yù)先設(shè)置的頻道中選擇備選頻道。 在本發(fā)明的另一實(shí)施例中,可以預(yù)先設(shè)置默認(rèn)的備選頻道,監(jiān)控裝置在監(jiān)控到在播頻道異 常時(shí),直接根據(jù)默認(rèn)的備選頻道生成切換命令。流媒體服務(wù)器22,用于在接收到來(lái)自監(jiān)控裝置21的切換命令后,將在播頻道切換 到備選頻道,將在播頻道的所有用戶(hù)加入到備選頻道的用戶(hù)中。其中,監(jiān)控裝置21可以獨(dú)立設(shè)置,也可以集成在流媒體服務(wù)器22中。本發(fā)明實(shí)施例中,請(qǐng)參見(jiàn)圖3,監(jiān)控裝置可以包括命令單元31,用于當(dāng)監(jiān)控到在播頻道異常時(shí),生成切換命令,切換命令包括有關(guān)于 源頻道和目的頻道的信息。所述源頻道為在播頻道,目的頻道為備選頻道。交互單元32,用于將切換命令發(fā)送到流媒體服務(wù)器,切換命令用于指示流媒體服 務(wù)器將在播頻道切換到備選頻道,將在播頻道的所有用戶(hù)加入到備選頻道的用戶(hù)中。在本發(fā)明的另一實(shí)施例中,由于存在不同區(qū)域的管轄問(wèn)題,例如,相同的頻道在不 同地區(qū)可能歸屬于不同的流媒體服務(wù)器,因此,會(huì)存在一個(gè)頻道對(duì)應(yīng)于多個(gè)流媒體服務(wù)器 的情況;另外,同時(shí)多個(gè)在播頻道需要切換也可能對(duì)應(yīng)于多個(gè)流媒體服務(wù)器的情況。因此, 命令單元生成的切換命令(針對(duì)單個(gè)或者多個(gè)異常的在播頻道)中,當(dāng)在播頻道對(duì)應(yīng)于多 個(gè)流媒體服務(wù)器時(shí),交互單元,還用于并行向各流媒體服務(wù)器發(fā)送所述切換命令。在本發(fā)明 另外的實(shí)施例中,還可以對(duì)于多路頻道切換同時(shí)生成多路切換命令,允許多路切換同時(shí)進(jìn) 行,提高切換的效率。在本發(fā)明的另一實(shí)施例中,命令單元31可以包括審核模塊311和監(jiān)控模塊312,其 中審核模塊311,用于當(dāng)監(jiān)控到在播頻道異常時(shí),生成切換指令。審核模塊可以采用 多種方式對(duì)在播頻道的異常情況進(jìn)行監(jiān)控。在本發(fā)明的一實(shí)施例中,可以對(duì)在播頻道的流 媒體進(jìn)行檢測(cè),將檢測(cè)結(jié)果與故障數(shù)據(jù)庫(kù)中的信息進(jìn)行對(duì)比,判斷是否故障。在本發(fā)明的另 一實(shí)施例中,可以提取在播頻道的流媒體中的幀圖像,根據(jù)膚色分割和人體姿態(tài)的幾何特 征檢測(cè)來(lái)識(shí)別幀圖像中是否有違規(guī)信息。在本發(fā)明的另外實(shí)施例中,還可以設(shè)置屏幕墻作 為審核模塊,監(jiān)控員通過(guò)屏幕墻審核在播頻道內(nèi)容。當(dāng)監(jiān)控到在播頻道發(fā)生異常時(shí),針對(duì)發(fā) 生異常的頻道生成切換指令。在本發(fā)明另外的實(shí)施例中,當(dāng)監(jiān)控到多路在播頻道異常,對(duì)應(yīng) 于各路在播頻道分別生成切換指令,即生成多路切換指令。
監(jiān)控模塊312,用于判斷切換指令是否重復(fù)。當(dāng)切換指令不重復(fù)時(shí),生成切換命令。 切換命令包括有關(guān)于源頻道和目的頻道的信息,源頻道為在播頻道,目的頻道為備選頻道。 在本發(fā)明的一實(shí)施例中,為了避免審核模塊針對(duì)相同的在播頻道生成兩條或兩條以上的切 換指令,監(jiān)控模塊對(duì)來(lái)自審核模塊的切換指令進(jìn)行過(guò)濾(即判斷所述切換指令是否重復(fù)), 當(dāng)發(fā)現(xiàn)切換指令重復(fù)時(shí),則過(guò)濾掉該切換指令。當(dāng)接收到來(lái)自審核模塊的多路切換指令時(shí), 判斷所述多路切換指令中的每一個(gè)切換指令是否重復(fù)。針對(duì)多路切換指令中確定為不重復(fù) 的切換指令,監(jiān)控模塊分別生成相應(yīng)的切換命令。各切換命令中包括有關(guān)源頻道和目的頻 道,每一切換命令中的源頻道為異常的在播頻道,每一切換命令中的目的頻道為與異常的 在播頻道對(duì)應(yīng)的備選頻道。在本發(fā)明的另一實(shí)施例中,在監(jiān)控裝置中還可以包括數(shù)據(jù)庫(kù)模塊33,用于存儲(chǔ)所 述備選頻道的會(huì)話(huà)描述協(xié)議(Session Description Protocol, SDP)文件。其中,SDP文件, 描述的是流媒體的初始化參數(shù)?;ヂ?lián)網(wǎng)工程任務(wù)組(Internet Engineering Task Force, IETF)對(duì)SDP的描述可以在請(qǐng)求評(píng)議(Request For Comments,RFC) 2327找到。SDP文件 可以包括但不限于如下內(nèi)容會(huì)話(huà)信息和媒體信息。會(huì)話(huà)信息可以包括但不限于會(huì)話(huà)名 和目的、會(huì)話(huà)時(shí)間、會(huì)話(huà)使用的帶寬以及會(huì)話(huà)的用戶(hù)信息。媒體信息可以包括但不限于媒 體類(lèi)型,例如視頻或音頻;傳輸協(xié)議,例如RTP/UDP/IP ;媒體格式,例如H. 263視頻或者 MPEG視頻;多播地址和媒體傳輸端口(IP多播會(huì)話(huà))以及IP單播會(huì)話(huà)的聯(lián)系地址和媒體 傳輸端口。在本發(fā)明的一實(shí)施例中,頻道的SDP文件可以由流媒體服務(wù)器直接得到。在本發(fā) 明的另一實(shí)施例中,也可以由監(jiān)控裝置將備選頻道的SDP文件上傳給流媒體服務(wù)器。在本 發(fā)明的一實(shí)施例中,在監(jiān)控裝置中設(shè)置加載模塊34,用于從數(shù)據(jù)庫(kù)模塊33查找出備選頻道 的SDP文件,并將備選頻道的SDP文件加載到切換命令中。在本發(fā)明另外的實(shí)施例中,在監(jiān) 控裝置中設(shè)置加載模塊34,用于向獨(dú)立設(shè)置的數(shù)據(jù)庫(kù)查找備選頻道的SDP文件,并將備選 頻道的SDP文件加載到切換命令中。在本發(fā)明的另一實(shí)施例中,還可以在監(jiān)控裝置中設(shè)置服務(wù)器單元35,用于接收來(lái) 自流媒體服務(wù)器的切換結(jié)果。相應(yīng)地,監(jiān)控裝置還可以包括上報(bào)單元36,用于將切換結(jié)果中 切換失敗的在播頻道上報(bào)給監(jiān)控員。在本發(fā)明另外的實(shí)施例中,上報(bào)單元還可以對(duì)切換結(jié) 果進(jìn)行統(tǒng)計(jì),將切換失敗的在播頻道集中上報(bào)。監(jiān)控員針對(duì)切換失敗的在播頻道進(jìn)行人工處理。圖4示出流媒體服務(wù)器的一種實(shí)施方式的結(jié)構(gòu)示意圖。參見(jiàn)圖4,本發(fā)明流媒體服務(wù)器的一實(shí)施例中,流媒體服務(wù)器可以包括接收單元41,用于當(dāng)監(jiān)控裝置監(jiān)控到在播頻道異常時(shí),接收來(lái)自監(jiān)控裝置的切換 命令。在本發(fā)明的一實(shí)施例中,切換命令加載了備選頻道的SDP文件,流媒體服務(wù)器從切換 命令中備選頻道的SDP文件。在本發(fā)明的另一實(shí)施例中,切換命令中未加載備選頻道的SDP文件,流媒體服務(wù) 器獲取備選頻道的SDP文件。在本發(fā)明的一實(shí)施例中,流媒體服務(wù)器可以在內(nèi)部數(shù)據(jù)庫(kù)中 查找備選頻道的SDP文件。具體的,流媒體服務(wù)器還可以包括數(shù)據(jù)庫(kù)模塊45,用于存儲(chǔ)所 述備選頻道的SDP文件;以及查找單元46,用于根據(jù)切換命令從數(shù)據(jù)庫(kù)模塊45查找備選頻 道的SDP文件。在本發(fā)明的另一實(shí)施例中,流媒體服務(wù)器也可以向獨(dú)立設(shè)置的數(shù)據(jù)庫(kù)查找備選頻道的SDP文件。具體的,流媒體服務(wù)器還可以包括查找單元46,用于根據(jù)切換命令從 獨(dú)立設(shè)置的數(shù)據(jù)庫(kù)查找備選頻道的SDP文件。切換單元42,用于根據(jù)切換命令將在播頻道切換到備選頻道,將在播頻道的所有 用戶(hù)加入到備選頻道的用戶(hù)中。在本發(fā)明的另一實(shí)施例中,流媒體服務(wù)器還可以包括反饋單元43,用于向監(jiān)控裝 置反饋切換結(jié)果。其中,切換失敗的情況包括但不限于切換命令中的源頻道未被點(diǎn)播、切 換命令中的源頻道和目的頻道的格式不一致、以及目的頻道不存在等等。在本發(fā)明的一實(shí)施例中,流媒體服務(wù)器還可以包括發(fā)送單元44,用于在切換前,通 過(guò)第一會(huì)話(huà)及媒體通信信道資源向用戶(hù)播放在播頻道的流媒體;在切換后,通過(guò)第一會(huì)話(huà) 及媒體通信信道資源向用戶(hù)播放備選頻道的流媒體。在本發(fā)明的一實(shí)施例中,流媒體服務(wù) 器可以在切換前后采用不同的會(huì)話(huà)和媒體通信信道資源向用戶(hù)播放流媒體;例如,在切換 前,通過(guò)第一會(huì)話(huà)及媒體通信信道資源向用戶(hù)播放在播頻道的流媒體;在切換后,通過(guò)第二 會(huì)話(huà)及媒體通信信道資源向用戶(hù)播放備選頻道的流媒體。在本發(fā)明的另一實(shí)施例中,對(duì)于 在播頻道故障的異常情況,如果第一會(huì)話(huà)及媒體通信信道資源可以正常使用,流媒體服務(wù) 器可以在切換前后采用相同的會(huì)話(huà)和媒體通信信道資源(即第一會(huì)話(huà)及媒體通信信道資 源)向用戶(hù)播放流媒體,從而縮短頻道切換的操作時(shí)間,保證用戶(hù)觀看流媒體的體驗(yàn)度。在本發(fā)明另一實(shí)施例中,切換單元42可以包括搜索模塊421,用于根據(jù)在播頻道的SDP文件查找與在播頻道對(duì)應(yīng)的哈希節(jié)點(diǎn)。 當(dāng)有用戶(hù)向流媒體服務(wù)器點(diǎn)播頻道時(shí),流媒體服務(wù)器將該頻道對(duì)應(yīng)的哈希節(jié)點(diǎn)加入哈希表 中。其中,哈希表(Hash Table)用于流媒體服務(wù)器記錄頻道點(diǎn)播情況。具體的,頻道的SDP 文件可以經(jīng)哈希運(yùn)算后得到標(biāo)識(shí)符(即頻道的哈希值),哈希表中的每個(gè)哈希節(jié)點(diǎn)也對(duì)應(yīng) 標(biāo)識(shí)符(即節(jié)點(diǎn)哈希值),頻道的哈希值可以與節(jié)點(diǎn)哈希值相對(duì)應(yīng),即頻道可以與哈希節(jié)點(diǎn) 相對(duì)應(yīng)。當(dāng)頻道被用戶(hù)點(diǎn)播時(shí),與頻道相對(duì)應(yīng)的節(jié)點(diǎn)加入哈希表;當(dāng)頻道被用戶(hù)點(diǎn)播結(jié)束, 該頻道對(duì)應(yīng)的哈希節(jié)點(diǎn)退出哈希表。因此,將在播頻道的SDP文件經(jīng)哈希運(yùn)算得到哈希值, 根據(jù)得到的哈希值查找哈希表,如果哈希表中有在播頻道對(duì)應(yīng)的哈希節(jié)點(diǎn),則有用戶(hù)點(diǎn)播 在播頻道;否則,則沒(méi)有用戶(hù)點(diǎn)播在播頻道。判斷模塊422,用于當(dāng)查找到與在播頻道對(duì)應(yīng)的哈希節(jié)點(diǎn)時(shí),根據(jù)在播頻道的SDP 文件和備選頻道的SDP文件,判斷在播頻道與備選頻道的格式是否一致。切換模塊423,用于當(dāng)在播頻道與所述備選頻道的格式一致時(shí),將在播頻道切換到 備選頻道,將在播頻道的所有用戶(hù)加入到備選頻道的用戶(hù)中。在本發(fā)明另一實(shí)施例中,切換模塊423可以包括加載子模塊4231,用于加載備選頻道的SDP文件。啟動(dòng)子模塊4232,用于根據(jù)加載的備選頻道的SDP文件,啟動(dòng)備選頻道。為了保 持切換前所述在播頻道的流媒體的序列號(hào)與切換后所述備選頻道的流媒體的序列號(hào)的順 序性、以及保持切換前所述在播頻道的流媒體的時(shí)間戳與切換后所述備選頻道的時(shí)間戳同 步,啟動(dòng)子模塊還用于定位備選頻道的流媒體的發(fā)包位置以及調(diào)整備選頻道的流媒體的時(shí) 間戳。其中,時(shí)間戳是在流媒體播放過(guò)程中,用來(lái)反映實(shí)時(shí)傳輸協(xié)議(Realtime Transport Protocol,RTP)數(shù)據(jù)包中第一個(gè)八進(jìn)制數(shù)的采樣時(shí)刻,是從單調(diào)、線(xiàn)性增加的時(shí)鐘導(dǎo)出。時(shí) 間戳可以讓接收端知道在正確的時(shí)間播放資料。序列號(hào)是在流媒體播放過(guò)程中,隨著每個(gè)
8RTP數(shù)據(jù)包而增加一,由接收端用來(lái)探測(cè)數(shù)據(jù)包的損失。由于可能會(huì)有丟包的情況出現(xiàn),因 此接收端采用序列號(hào)結(jié)合時(shí)間戳正確播放數(shù)據(jù)。其中,實(shí)時(shí)傳輸協(xié)議(Realtime Transport Protocol, RTP)是針對(duì)hternet上多媒體數(shù)據(jù)流的一個(gè)傳輸協(xié)議,詳細(xì)描述參見(jiàn)IETF發(fā) 布的RFC1889。RTP被定義為在一對(duì)一或一對(duì)多的傳輸情況下工作,其目的是提供時(shí)間信息 和實(shí)現(xiàn)流同步。由于流媒體的傳輸需要數(shù)據(jù)適時(shí)到達(dá)接收端,以便接收端播放和回放。因 此,RTP提供時(shí)間戳、序列號(hào)以及其它的結(jié)構(gòu)用于控制適時(shí)數(shù)據(jù)的播放。流媒體服務(wù)器根據(jù) 即時(shí)的采樣在數(shù)據(jù)包里設(shè)置時(shí)間戳,接收端收到數(shù)據(jù)包后依照時(shí)間戳按照正確的速率恢復(fù) 成原始的適時(shí)的數(shù)據(jù)。關(guān)閉子模塊4233,用于關(guān)閉在播頻道。本發(fā)明一實(shí)施例可以采用無(wú)縫切換實(shí)現(xiàn)將在播頻道切換到備選頻道。所謂無(wú)縫切 換是指先開(kāi)啟備選頻道,再關(guān)閉在播頻道。相對(duì)于先關(guān)閉在播頻道再開(kāi)啟備選頻道的切換 方式,無(wú)縫切換可以保證用戶(hù)始終可以觀看流媒體,而避免了切換過(guò)程中的黑屏或者花屏 等情況的出現(xiàn),增強(qiáng)用戶(hù)的體驗(yàn)度。圖5示出本發(fā)明一實(shí)施例中用于監(jiān)控流媒體播放的方法的流程示意圖。參見(jiàn)圖5,步驟S501,對(duì)在播頻道進(jìn)行監(jiān)控,當(dāng)監(jiān)控到在播頻道異常時(shí),生成切換 命令,切換命令包括有關(guān)源頻道和目的頻道的信息,源頻道為在播頻道,目的頻道為備選頻 道。生成的切換命令(針對(duì)單個(gè)或者多個(gè)異常的在播頻道)中,當(dāng)在播頻道對(duì)應(yīng)于多 個(gè)流媒體服務(wù)器時(shí),監(jiān)控裝置并行向各流媒體服務(wù)器發(fā)送切換命令。步驟S502,將切換命令發(fā)送到流媒體服務(wù)器,切換命令用于指示流媒體服務(wù)器將 在播頻道切換到備選頻道,將在播頻道的所有用戶(hù)加入到備選頻道的用戶(hù)中。在本發(fā)明另一實(shí)施例中,該方法還可以包括步驟S503,接收來(lái)自流媒體服務(wù)器的切換結(jié)果。步驟S504,統(tǒng)計(jì)所述切換結(jié)果。步驟S505,將切換結(jié)果中切換失敗的在播頻道上報(bào)給監(jiān)控員。在本發(fā)明的一實(shí)施 例中,可以直接將來(lái)自流媒體服務(wù)器的切換結(jié)果中切換失敗的在播頻道上報(bào)給監(jiān)控員。在 本發(fā)明的另一實(shí)施例中,也可以對(duì)切換結(jié)果進(jìn)行統(tǒng)計(jì)后,將切換結(jié)果中切換失敗的在播頻 道集中上報(bào)給監(jiān)控員。在本發(fā)明的另一實(shí)施例中,請(qǐng)參見(jiàn)圖6,生成切換命令可以包括步驟S601,當(dāng)監(jiān)控到在播頻道異常時(shí),生成切換指令。步驟S602,判斷切換指令是否重復(fù)。為了避免針對(duì)相同的在播頻道生成兩條或兩 條以上的切換指令,對(duì)切換指令進(jìn)行過(guò)濾(即判斷切換指令是否重復(fù)),當(dāng)發(fā)現(xiàn)切換指令重 復(fù)時(shí),則過(guò)濾掉該切換指令。在本發(fā)明的另一實(shí)施例中,請(qǐng)參見(jiàn)圖7,生成切換命令可以包括步驟S701,當(dāng)監(jiān)控到多路在播頻道異常,針對(duì)每一個(gè)異常的在播頻道生成一個(gè)切 換指令,即生成多路切換指令。步驟S702,判斷多路切換指令中的每一個(gè)切換指令是否重復(fù)。步驟S703,過(guò)濾掉多路切換指令中重復(fù)的切換指令,針對(duì)不重復(fù)的切換指令,分別 生成相應(yīng)的切換命令。各個(gè)切換命令中包括有關(guān)源頻道和目的頻道的信息,每一切換命令中的源頻道為異常的在播頻道,每一切換命令中的目的頻道為與異常的在播頻道對(duì)應(yīng)的備 選頻道。對(duì)于多路頻道異常的情況,本實(shí)施例采用多路切換并行處理的機(jī)制,提高監(jiān)控的效率。在本發(fā)明的另一實(shí)施例中,可以在切換命令中加載備選頻道的SDP文件。在本發(fā) 明的一實(shí)施例中,可以查找備選頻道的SDP文件,將查找到的備選頻道的SDP文件加載到切 換命令中。在本發(fā)明的另一實(shí)施例中,以上各步驟的執(zhí)行主體可以集成在監(jiān)控裝置上。圖8示出本發(fā)明另一實(shí)施例中用于監(jiān)控流媒體播放的方法的流程示意圖。參見(jiàn)圖8,步驟S801,當(dāng)監(jiān)控到在播頻道異常時(shí),流媒體服務(wù)器接收來(lái)自監(jiān)控裝置 的切換命令。切換命令包括源頻道和目的頻道,源頻道為在播頻道,目的頻道為備選頻道。步驟S802,流媒體服務(wù)器根據(jù)切換命令將在播頻道切換到備選頻道,將在播頻道 的所有用戶(hù)加入到備選頻道的用戶(hù)中。在本實(shí)施例中,切換命令中攜帶備選頻道的SDP文 件,流媒體服務(wù)器直接根據(jù)切換命令進(jìn)行切換。在本發(fā)明的另一實(shí)施例中,切換命令中未攜 帶備選頻道的SDP文件,流媒體服務(wù)器根據(jù)切換命令,查找備選頻道的SDP文件,將在播頻 道切換到備選頻道,將在播頻道的所有用戶(hù)加入到備選頻道的用戶(hù)中。在本發(fā)明的一實(shí)施 例中,流媒體服務(wù)器可以在內(nèi)部數(shù)據(jù)庫(kù)中查找備選頻道的SDP文件。在本發(fā)明的另一實(shí)施 例中,流媒體服務(wù)器也可以向獨(dú)立設(shè)置的數(shù)據(jù)庫(kù)查找備選頻道的SDP文件。切換前后,流媒體服務(wù)器可以采用不同的會(huì)話(huà)及媒體通信信道資源向用戶(hù)播放在 播頻道的流媒體和備選頻道的流媒體。在本發(fā)明的一實(shí)施例中,切換前,流媒體服務(wù)器采用 第一會(huì)話(huà)及媒體通信信道資源向用戶(hù)播放在播頻道的流媒體;切換后,流媒體服務(wù)器采用 第二會(huì)話(huà)及媒體通信信道資源向用戶(hù)播放備選頻道的流媒體。在切換過(guò)程中,進(jìn)行第一會(huì) 話(huà)及媒體通信信道資源的釋放以及第二會(huì)話(huà)及媒體通信信道資源的建立。在本發(fā)明的另一 實(shí)施例中,在切換前,通過(guò)第一會(huì)話(huà)及媒體通信信道資源向用戶(hù)播放所述在播頻道的流媒 體;切換后,仍然通過(guò)第一會(huì)話(huà)及媒體通信信道資源向所述用戶(hù)播放所述備選頻道的流媒 體,縮短切換的操作時(shí)間,使得從發(fā)起切換命令到切換完成所需時(shí)間不超過(guò)3秒。在本發(fā)明的另一實(shí)施例中,該方法還可以包括步驟S803,流媒體服務(wù)器向監(jiān)控裝置反饋切換結(jié)果。切換結(jié)果中包括切換失敗的 在播頻道,其中切換失敗的在播頻道包括但不限于沒(méi)有用戶(hù)點(diǎn)播的在播頻道、在播頻道與 對(duì)應(yīng)的備選頻道格式不一致的在播頻道等。在本發(fā)明的另一實(shí)施例中,請(qǐng)參見(jiàn)圖9,將在播頻道切換到備選頻道可以包括步驟S901,流媒體服務(wù)器根據(jù)在播頻道的SDP文件查找與在播頻道對(duì)應(yīng)的哈希節(jié) 點(diǎn)。具體的,流媒體服務(wù)器將在播頻道的SDP文件經(jīng)哈希運(yùn)算得到哈希值,根據(jù)得到的哈希 值在哈希表中查找與在播頻道對(duì)應(yīng)的哈希節(jié)點(diǎn)。如果找到,則表示有用戶(hù)點(diǎn)播所述在播頻 道,從而可以繼續(xù)將在播頻道切換到備選頻道。步驟S902,當(dāng)查找到與在播頻道對(duì)應(yīng)的哈希節(jié)點(diǎn)時(shí),根據(jù)在播頻道的SDP文件和 備選頻道的SDP文件,判斷在播頻道與備選頻道的格式是否一致。SDP文件描述了流媒體的 初始化參數(shù),其可以包括會(huì)話(huà)信息和媒體信息,在媒體信息中攜帶有媒體格式等參數(shù)。根據(jù) 在播頻道的SDP文件和備選頻道的SDP文件中攜帶的參數(shù),可以判斷在播頻道與備選頻道 的格式是否一致。如果一致,則可以進(jìn)行切換;如果不一致則不可以進(jìn)行切換。
步驟S903,當(dāng)在播頻道與備選頻道的格式一致時(shí),將在播頻道切換到備選頻道,將 在播頻道的所有用戶(hù)加入到備選頻道的用戶(hù)中。在本發(fā)明的另一實(shí)施例中,請(qǐng)參見(jiàn)圖10,將在播頻道切換到備選頻道可以包括步驟S1001,加載備選頻道的SDP文件。步驟S1002,根據(jù)加載的備選頻道的SDP文件,啟動(dòng)備選頻道。步驟S1003,關(guān)閉在播頻道。在本發(fā)明的另一實(shí)施例中,請(qǐng)參見(jiàn)圖11,啟動(dòng)備選頻道可以包括步驟S1101,創(chuàng)建用于接收備選頻道的流媒體的句柄。備選頻道的SDP文件中攜帶 的媒體信息有傳輸協(xié)議的相關(guān)參數(shù)。因此,根據(jù)備選頻道的SDP文件,創(chuàng)建RTP、RTCP句柄 用于接收備選頻道的流媒體。步驟Sl 102,將在播頻道的所有用戶(hù)加入到備選頻道的用戶(hù)中。在本發(fā)明的一實(shí)施 例中,將在播頻道的所有用戶(hù)加入到備選頻道的用戶(hù)中可以包括將在播頻道的所有用戶(hù) 加入到備選頻道的發(fā)送清單(SencLList)中。在本發(fā)明的另一實(shí)施例中,啟動(dòng)備選頻道還可以包括步驟S1103,設(shè)置用于監(jiān)聽(tīng)備選頻道的句柄,進(jìn)而可以對(duì)備選頻道進(jìn)行監(jiān)控。其中, 用于監(jiān)聽(tīng)備選頻道的句柄可以包括但不限于EP0LL_FD、P0LL_FD或者SELECT_FD。EP0LL_ FD、P0LL_FD和SELECT_FD的不同之處在于SELECT_FD所監(jiān)聽(tīng)的FD在個(gè)數(shù)上有限制,同時(shí) SELECT_FD每次需要輪詢(xún)所有的FD,效率低;P0LL_FD所監(jiān)聽(tīng)的FD在個(gè)數(shù)上沒(méi)有限制,但是 P0LL_FD仍舊需要每次輪詢(xún)所有的FD ;EP0LL_FD所監(jiān)聽(tīng)的FD在個(gè)數(shù)上沒(méi)有限制,同時(shí)不再 需要輪詢(xún)所有的FD。因此,EP0LL_FD的效率最高,在本實(shí)施例中,優(yōu)選采用EP0LL_FD。其 中,文件描述符(File Descriptor, FD)在Iinux下,所有的操作都是對(duì)文件進(jìn)行操作,而 對(duì)文件的操作是利用FD來(lái)實(shí)現(xiàn)的。在源代碼中,一般用FD作為文件描述符的標(biāo)識(shí)。在本發(fā)明的另一實(shí)施例中,啟動(dòng)備選頻道還可以包括步驟S1104,定位備選頻道的流媒體的發(fā)包位置以及調(diào)整備選頻道的流媒體的時(shí) 間戳,保持切換前在播頻道的流媒體的序列號(hào)與切換后備選頻道的流媒體的序列號(hào)的順序 性、以及保持切換前在播頻道的流媒體的時(shí)間戳與切換后備選頻道的時(shí)間戳同步。接收端 (用戶(hù))通過(guò)序列號(hào)和時(shí)間戳播放流媒體,并且整個(gè)切換過(guò)程對(duì)接收端透明,定位備選頻道 的流媒體的發(fā)包位置以及調(diào)整備選頻道的流媒體的時(shí)間戳,使得切換前在播頻道的流媒體 的序列號(hào)與切換后備選頻道的流媒體的序列號(hào)保持順序性,以及使得切換前在播頻道的流 媒體的時(shí)間戳與切換后備選頻道的流媒體的時(shí)間戳保持同步,可以保證接收端正確播放備 選頻道的流媒體。在本發(fā)明的另一實(shí)施例中,請(qǐng)參見(jiàn)圖12,關(guān)閉在播頻道可以包括步驟S1201,關(guān)閉用于接收在播頻道的流媒體的句柄。停止用于接收在播頻道的 流媒體的實(shí)時(shí)傳輸協(xié)議(Realtime Transport Protocol, RTP)句柄、實(shí)時(shí)傳輸控制協(xié)議 (Realtime Transport Control Protocol,RTCP)句柄。其中,RTP 是針對(duì) Internet 上多媒 體數(shù)據(jù)流的一個(gè)傳輸協(xié)議,詳細(xì)描述參見(jiàn)IETF發(fā)布的RFC1889。RTP被定義為在一對(duì)一或 一對(duì)多的傳輸情況下工作,其目的是提供時(shí)間信息和實(shí)現(xiàn)流同步。RTCP用于通過(guò)在當(dāng)前應(yīng) 用進(jìn)程之間交換控制信息對(duì)傳輸質(zhì)量進(jìn)行管理。在RTP會(huì)話(huà)期間,各參與者周期性地傳送 RTCP包,包中含有已發(fā)送的數(shù)據(jù)包的數(shù)量、丟失的數(shù)據(jù)包的數(shù)量等統(tǒng)計(jì)資料。因此,流媒體服務(wù)器可以根據(jù)統(tǒng)計(jì)資料動(dòng)態(tài)地改變傳輸速率。在本發(fā)明另外的實(shí)施例中,關(guān)閉在播頻道還可以包括步驟S1202,關(guān)閉用于監(jiān)聽(tīng)在播頻道的句柄。具體的,可以為釋放用于監(jiān)聽(tīng)在播頻 道的句柄EP0LL_FD。通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助 軟件加必需的硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以全部通過(guò)硬件來(lái)實(shí)施?;谶@樣的理解, 本發(fā)明的技術(shù)方案對(duì)背景技術(shù)作出貢獻(xiàn)的全部或者部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái), 該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤(pán)等,包括若干指令用以使 得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例 或者實(shí)施例的某些部分所述的方法。以上公開(kāi)的僅為本發(fā)明的幾個(gè)優(yōu)選實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于 此。任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本文的教示下對(duì)本發(fā)明作出的各種修改和變形,都 應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種用于監(jiān)控流媒體播放的方法,該方法包括當(dāng)監(jiān)控到在播頻道異常時(shí),生成切換命令,所述切換命令包括有關(guān)在播頻道和備選頻 道的信息;將所述切換命令發(fā)送到流媒體服務(wù)器,所述切換命令用于指示所述流媒體服務(wù)器將所 述在播頻道切換到所述備選頻道,將所述在播頻道的所有用戶(hù)加入到所述備選頻道的用戶(hù) 中。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述當(dāng)監(jiān)控到在播頻道異常,生成切換命令包括當(dāng)監(jiān)控到所述在播頻道異常時(shí),生成切換指令;判斷所述切換指令是否重復(fù);當(dāng)判斷所述切換指令不重復(fù)時(shí),生成切換命令。
3.根據(jù)權(quán)利要求1所述的方法,其中,所述當(dāng)監(jiān)控到在播頻道異常,生成切換命令包括當(dāng)監(jiān)控到多路在播頻道異常,對(duì)應(yīng)于各路在播頻道分別生成切換指令,即生成多路切 換指令;判斷所述多路切換指令中的每一個(gè)切換指令是否重復(fù);對(duì)應(yīng)于所述多路切換指令中不重復(fù)的切換指令,分別生成相應(yīng)的切換命令,各切換命 令中包括有關(guān)源頻道和目的頻道的信息,每一切換命令中的源頻道為異常的在播頻道,每 一切換命令中的目的頻道為與異常的在播頻道對(duì)應(yīng)的備選頻道。
4.根據(jù)權(quán)利要求1至3任一項(xiàng)所述的方法,其中,所述生成切換命令包括 從數(shù)據(jù)庫(kù)模塊查找所述備選頻道的會(huì)話(huà)描述協(xié)議文件;將所述備選頻道的會(huì)話(huà)描述協(xié)議文件加載到在所述切換命令中。
5.根據(jù)權(quán)利要求1所述的方法,其中,所述當(dāng)監(jiān)控到在播頻道異常,生成切換命令包括當(dāng)所述在播頻道對(duì)應(yīng)于多個(gè)流媒體服務(wù)器時(shí),并行向各流媒體服務(wù)器發(fā)送所述切換命令。
6.一種用于監(jiān)控流媒體播放的方法,該方法包括接收監(jiān)控裝置監(jiān)控到在播頻道異常時(shí)生成的切換命令,所述切換命令包括有關(guān)在播頻 道和備選頻道的信息;根據(jù)所述切換命令將所述在播頻道切換到所述備選頻道,將所述在播頻道的所有用戶(hù) 加入到所述備選頻道的用戶(hù)中。
7.根據(jù)權(quán)利要求6所述的方法,其中,所述根據(jù)所述切換命令將在播頻道切換到備選 頻道包括判斷所述在播頻道與所述備選頻道的格式是否一致;當(dāng)所述在播頻道與所述備選頻道的格式一致時(shí),將所述在播頻道切換到所述備選頻 道,將所述在播頻道的所有用戶(hù)加入到所述備選頻道的用戶(hù)中。
8.—種監(jiān)控裝置,其特征在于,該裝置包括命令單元,用于當(dāng)監(jiān)控到在播頻道異常時(shí),生成切換命令,所述切換命令包括有關(guān)在播 頻道和備選頻道的信息;交互單元,用于將所述切換命令發(fā)送到流媒體服務(wù)器,所述切換命令用于指示所述流 媒體服務(wù)器將所述在播頻道切換到所述備選頻道,將所述在播頻道的所有用戶(hù)加入到所述 備選頻道的用戶(hù)中。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述命令單元包括審核模塊,用于當(dāng)監(jiān)控到所述在播頻道異常時(shí),生成切換指令;監(jiān)控模塊,用于判斷所述切換指令是否重復(fù);當(dāng)所述切換指令不重復(fù)時(shí),生成切換命令。
10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述命令單元包括審核模塊,用于當(dāng)監(jiān)控到多路在播頻道異常,對(duì)應(yīng)于各路在播頻道分別生成切換指令, 即生成多路切換指令;監(jiān)控模塊,用于判斷所述多路切換指令中的每一個(gè)切換指令是否重復(fù);對(duì)應(yīng)于所述多 路切換指令中不重復(fù)的切換指令,分別生成相應(yīng)的切換命令,各切換命令中包括有關(guān)源頻 道和目的頻道的信息,每一切換命令中的源頻道為異常的在播頻道,每一切換命令中的目 的頻道為與異常的在播頻道對(duì)應(yīng)的備選頻道。
11.根據(jù)權(quán)利要求8至10任一項(xiàng)所述的裝置,其特征在于,該裝置還包括數(shù)據(jù)庫(kù)模塊,用于存儲(chǔ)所述備選頻道的會(huì)話(huà)描述協(xié)議文件;加載模塊,用于向所述數(shù)據(jù)庫(kù)模塊查找所述備選頻道的會(huì)話(huà)描述協(xié)議文件;并將所述 備選頻道的會(huì)話(huà)描述協(xié)議文件加載在所述切換命令中。
12.根據(jù)權(quán)利要求8所述的裝置,其特征在于,當(dāng)所述在播頻道對(duì)應(yīng)于多個(gè)流媒體服務(wù) 器時(shí),所述交互單元,還用于并行向各流媒體服務(wù)器發(fā)送所述切換命令。
13.一種流媒體服務(wù)器,其特征在于,該服務(wù)器包括接收單元,用于接收監(jiān)控裝置監(jiān)控到在播頻道異常時(shí)生成的切換命令,所述切換命令 包括有關(guān)在播頻道和備選頻道的信息;切換單元,用于根據(jù)所述切換命令將所述在播頻道切換到所述備選頻道,將所述在播 頻道的所有用戶(hù)加入到所述備選頻道的用戶(hù)中。
14.根據(jù)權(quán)利要求13所述的服務(wù)器,其特征在于,所述切換單元包括判斷模塊,用于判斷所述在播頻道與所述備選頻道的格式是否一致;切換模塊,用于當(dāng)所述在播頻道與所述備選頻道的格式一致時(shí),將所述在播頻道切換 到備選頻道。
15.一種用于監(jiān)控流媒體播放的系統(tǒng),其特征在于,該系統(tǒng)包括監(jiān)控裝置,用于監(jiān)控在播頻道,當(dāng)監(jiān)控到所述在播頻道異常時(shí),生成切換命令,所述切 換命令包括有關(guān)在播頻道和備選頻道的信息;流媒體服務(wù)器,用于在接收到來(lái)自所述監(jiān)控裝置的所述切換命令后,將所述在播頻道 切換到所述備選頻道,將所述在播頻道的所有用戶(hù)加入到所述備選頻道的用戶(hù)中。
全文摘要
本發(fā)明實(shí)施例提供用于監(jiān)控流媒體播放的方法、系統(tǒng)及裝置。一種用于監(jiān)控流媒體播放的方法,包括當(dāng)監(jiān)控到在播頻道異常時(shí),生成切換命令,所述切換命令包括有關(guān)在播頻道和備選頻道的信息;將所述切換命令發(fā)送到流媒體服務(wù)器,所述切換命令用于指示所述流媒體服務(wù)器將所述在播頻道切換到所述備選頻道,將所述在播頻道的所有用戶(hù)加入到所述備選頻道的用戶(hù)中。通過(guò)本發(fā)明實(shí)施例,可以在流媒體播放的過(guò)程中,對(duì)在播頻道進(jìn)行監(jiān)控。一旦在播頻道異常,將在播頻道切換到備選頻道,將在播頻道的所有用戶(hù)加入到備選頻道的用戶(hù)中,避免在播頻道異常的情況對(duì)用戶(hù)觀看的影響。提升了流媒體播放的可靠性。
文檔編號(hào)H04N21/24GK102131109SQ201010508279
公開(kāi)日2011年7月20日 申請(qǐng)日期2010年10月14日 優(yōu)先權(quán)日2010年10月14日
發(fā)明者劉啟銘, 胡興華 申請(qǐng)人:華為技術(shù)有限公司