專利名稱:視頻監(jiān)控客戶端播放方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于視頻監(jiān)控領(lǐng)域,特別涉及其中的信號(hào)處理方法和系統(tǒng)。背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)和多媒體技術(shù)的發(fā)展,視頻監(jiān)控越來(lái)越成為安全領(lǐng)域的 最重要的應(yīng)用之一。
實(shí)時(shí)視頻播放無(wú)疑是視頻監(jiān)控最為重要的業(yè)務(wù)之一。由于安全行業(yè)的
特殊要求,視頻監(jiān)控客戶端通常需要支持7*24小時(shí)長(zhǎng)時(shí)間不間斷的實(shí)時(shí)視 頻播放。這就對(duì)視頻監(jiān)控客戶端的穩(wěn)定性和容錯(cuò)性提出了極高的要求。
常見的視頻監(jiān)控客戶端主要是部署在PC機(jī)或手持移動(dòng)終端上的一個(gè) 應(yīng)用程序。 一旦應(yīng)用程序或應(yīng)用程序所使用的組件出現(xiàn)邏輯錯(cuò)誤,則整個(gè) 客戶端程序?qū)⒊霈F(xiàn)崩潰或無(wú)響應(yīng),從而導(dǎo)致用戶無(wú)法繼續(xù)正常使用實(shí)時(shí)視 頻播放功能。
發(fā)明內(nèi)容
本發(fā)明的主要目的是提供一種容錯(cuò)性與穩(wěn)定性更佳的視頻監(jiān)控客戶
端播;改方法和系統(tǒng)。
為實(shí)現(xiàn)上述目的,本發(fā)明提出一種視頻監(jiān)控客戶端播放方法,由播放 邏輯模塊進(jìn)行播放流程處理,由界面展示模塊進(jìn)行畫面展示;在播放邏輯 模塊出現(xiàn)異常情況時(shí),界面展示模塊重新加載播放邏輯模塊,并在該重新 加載的過程中保持播放畫面正常展示。
上述的視頻監(jiān)控客戶端播放方法,該重新加載的過程包括如下步驟 界面展示模塊在系統(tǒng)任務(wù)管理器中枚舉系統(tǒng)中當(dāng)前運(yùn)行的進(jìn)程名稱,若子 進(jìn)程播放邏輯模塊仍在任務(wù)管理器中,則強(qiáng)制關(guān)閉播放邏輯模塊,并以創(chuàng) 建子進(jìn)程的方式重新啟動(dòng)邏輯播放才莫塊;若子進(jìn)程播放邏輯模塊已退出不 在任務(wù)管理器中,則直接創(chuàng)建播放邏輯才莫塊子進(jìn)程。
上述的視頻監(jiān)控客戶端播放方法,該播放邏輯模塊定時(shí)向界面展示模 塊發(fā)送?;钚畔?,反饋播放邏輯模塊當(dāng)前的運(yùn)行狀態(tài);若界面展示模塊在 指定時(shí)間內(nèi)未收到播放邏輯模塊的?;钕?,或?;钕@示播放邏輯模 塊運(yùn)行狀態(tài)異常,則界面展示模塊重新加載播放邏輯模塊,并在重新加載的過程中保持播放畫面正常顯示。
上述的視頻監(jiān)控客戶端播放方法,在該重新加載的過程中,界面展示 模塊保持播放畫面靜止?;蛟诮缑嬲故灸K中設(shè)置視頻緩沖區(qū),并在其中
緩沖指定時(shí)長(zhǎng)的視頻內(nèi)容;在正常播放或界面展示模塊重新加載播放邏輯 模塊時(shí),界面展示模塊播放該視頻緩沖區(qū)中的視頻內(nèi)容。當(dāng)視頻緩沖區(qū)內(nèi) 未積累達(dá)到指定時(shí)長(zhǎng)的視頻數(shù)據(jù)時(shí),界面展示模塊進(jìn)行慢于正常速度的播 放;在視頻緩沖區(qū)中充滿指定時(shí)長(zhǎng)的視頻內(nèi)容后恢復(fù)正常速度播放。
上述的視頻監(jiān)控客戶端播放方法,界面展示模塊進(jìn)行畫面展示的過程, 包括實(shí)時(shí)播放過程,該實(shí)時(shí)播放過程包括如下步驟 在界面展示模塊中保存目標(biāo)監(jiān)控點(diǎn)的相關(guān)數(shù)據(jù); 界面展示模塊將播放所必須的數(shù)據(jù)傳送給播放邏輯模塊; 播放邏輯模塊根據(jù)界面展示模塊所提供的數(shù)據(jù),向平臺(tái)進(jìn)行包括重定 向、與視頻源建立媒體鏈接和解碼的播放流程處理; 播放邏輯模塊將解碼后的數(shù)據(jù)傳遞給界面展示模塊;
界面展示模塊將解碼后的數(shù)據(jù)以連續(xù)畫面的形式展示。
在實(shí)時(shí)播放過程中,平臺(tái)或客戶端實(shí)時(shí)保存一定時(shí)長(zhǎng)的視頻內(nèi)容;在 播放邏輯模塊出現(xiàn)異常情況時(shí)保存當(dāng)前時(shí)間點(diǎn);在播放邏輯模塊被重新加 載啟動(dòng)后,界面展示模塊根據(jù)該時(shí)間點(diǎn)請(qǐng)求對(duì)應(yīng)時(shí)刻的視頻內(nèi)容。
同時(shí),本發(fā)明提出了一種視頻監(jiān)控客戶端播放系統(tǒng),包括用于播放流 程處理的播放邏輯模塊和用于畫面展示的界面展示模塊;所述界面展示模 塊在播放邏輯模塊出現(xiàn)異常情況時(shí)重新加載所述纟番放邏輯^f莫塊,并在該重 新加載的過程中保持播放畫面正常展示。
上述的視頻監(jiān)控客戶端播放系統(tǒng),該界面展示模塊中包括用于緩沖指 定時(shí)長(zhǎng)的視頻內(nèi)容的視頻緩沖區(qū);用于在正常播放或重新加載播放邏輯模 塊時(shí),由界面展示模塊播放該視頻緩沖區(qū)中的視頻內(nèi)容。
由于采用了以上的方案,本發(fā)明通過將視頻監(jiān)控客戶端應(yīng)用程序分為 界面展示模塊和播放邏輯模塊兩個(gè)部分,在播放邏輯模塊出現(xiàn)異常情況時(shí) 自動(dòng)重新加載該模塊,客戶端自行修復(fù),避免了此時(shí)客戶端程序出現(xiàn)崩潰 或無(wú)響應(yīng);顯著提高了視頻監(jiān)控系統(tǒng)、視頻監(jiān)控客戶端的容錯(cuò)性、穩(wěn)定性 和可靠性;同時(shí),界面展示模塊可保持畫面的正常顯示,提高了用戶體驗(yàn)。
本發(fā)明在界面展示模塊設(shè)置緩沖區(qū),在重新加載播放邏輯模塊的過程中,可播放緩沖區(qū)中的視頻內(nèi)容,而不會(huì)出現(xiàn)畫面停頓的現(xiàn)象,從而保證 用戶在應(yīng)用程序發(fā)生異常時(shí)仍可正常使用實(shí)時(shí)視頻播功能,進(jìn)一步提高了 視頻監(jiān)控客戶端的容錯(cuò)性和穩(wěn)定性,提高用戶體驗(yàn)。
圖1本發(fā)明實(shí)施例的視頻播放模塊圖; 圖2本發(fā)明實(shí)施例的模塊間交互及播放時(shí)序圖。
具體實(shí)施方式
下面通過具體的實(shí)施例并結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)的描述。 如圖l所示的結(jié)構(gòu)圖,本例的視頻監(jiān)控客戶端播放系統(tǒng),包括界面展 示模塊和播放邏輯模塊;界面展示模塊為一個(gè)獨(dú)立進(jìn)程,主要包括友好的 用戶展示界面和用來(lái)保存一定時(shí)長(zhǎng)實(shí)時(shí)視頻數(shù)據(jù)的視頻緩沖區(qū);播放邏輯 模塊是由界面展示模塊創(chuàng)建的子進(jìn)程,主要負(fù)責(zé)與實(shí)時(shí)播放相關(guān)的重定向、 與視頻源建立々某體連接、解碼等主要邏輯處理,也是容易出現(xiàn)邏輯或數(shù)據(jù) 異常的主要部分。
在界面展示模塊中顯示用戶可以進(jìn)行實(shí)時(shí)監(jiān)控的所有監(jiān)控點(diǎn)的信息。 當(dāng)用戶選中需要進(jìn)行監(jiān)控的目標(biāo)監(jiān)控點(diǎn)后,在界面展示模塊中保存目
標(biāo)監(jiān)控點(diǎn)的相關(guān)數(shù)據(jù)(如目標(biāo)監(jiān)控點(diǎn)的唯一標(biāo)識(shí)等)。
界面展示模塊將播放所必須的數(shù)據(jù)傳遞給播放邏輯模塊,比如界面展
示模塊將進(jìn)行重定向的條件和碼流條件等條件數(shù)據(jù)傳遞給播放邏輯模塊。 播放邏輯模塊根據(jù)界面展示模塊所提供的數(shù)據(jù),向視頻服務(wù)器進(jìn)行重
定向、與視頻源建立媒體鏈接、解碼等流程的處理。 播放邏輯模塊將解碼后的數(shù)據(jù)傳遞給界面展示模塊。 界面展示模塊將解碼后的數(shù)據(jù)以連續(xù)畫面的形式展示給用戶。 播放邏輯模塊定時(shí)向界面展示模塊發(fā)送?;钚畔ⅲ答伈シ胚壿嬆K
當(dāng)前的運(yùn)行狀態(tài)。
若界面展示模塊在指定時(shí)間內(nèi)未收到播放邏輯模塊的?;钕?,或保 活消息顯示播放邏輯模塊運(yùn)行狀態(tài)異常,則界面展示模塊重新加載播放邏 輯模塊,并在重新加載的過程中保持播放畫面正常顯示,比如可使播放畫 面靜止。本例中,由于在界面展示模塊中設(shè)有視頻緩沖區(qū),緩沖有一定時(shí) 長(zhǎng)的視頻數(shù)據(jù)。當(dāng)界面展示模塊在重新啟動(dòng)播放邏輯模塊時(shí),界面展示模 塊可播放緩沖區(qū)中的視頻內(nèi)容,而不會(huì)出現(xiàn)畫面停頓的現(xiàn)象,可提高用戶體驗(yàn)。
如圖2所示,本例的視頻監(jiān)控客戶端播放方法,具體實(shí)施步驟如下
步驟201:用戶啟動(dòng)視頻監(jiān)控客戶端,界面展示模塊啟動(dòng)成功后,由 界面展示模塊創(chuàng)建子進(jìn)程,即播放邏輯模塊。
步驟202:播;改邏輯-漠塊啟動(dòng)成功后,即開始以固定時(shí)間間隔向界面 展示模塊發(fā)送?;钕?,本實(shí)施例中使用進(jìn)程間消息傳遞?;钕ⅲ答?播放邏輯模塊當(dāng)前的運(yùn)行狀態(tài)。本實(shí)施例中,?;畹臅r(shí)間間隔為0. l秒。
步驟203:用戶在界面展示模塊中選擇需要進(jìn)行監(jiān)控的目標(biāo)監(jiān)控點(diǎn), 界面展示模塊保存目標(biāo)監(jiān)控點(diǎn)的唯一標(biāo)識(shí)等相關(guān)參數(shù),并將監(jiān)控點(diǎn)的唯一 標(biāo)識(shí)使用進(jìn)程間消息發(fā)送給播放邏輯模塊。
步驟204:播放邏輯模塊根據(jù)收到的目標(biāo)監(jiān)控點(diǎn)的唯一標(biāo)識(shí),依次進(jìn) 行重定向、與視頻源建立媒體鏈接等播放的主要處理流程。
步驟205:對(duì)碼流進(jìn)行解碼等播放的主要處理流程。
步驟206:播放邏輯模塊將解碼后的視頻數(shù)據(jù)以共享內(nèi)存的方式寫入 界面展示模塊的視頻緩沖區(qū)內(nèi)。
步驟207:當(dāng)界面展示模塊的視頻緩沖區(qū)內(nèi)積累指定時(shí)長(zhǎng)的視頻數(shù)據(jù) 后,開始從視頻緩沖區(qū)內(nèi)讀取第一幀數(shù)據(jù)開始播放,并展示給用戶。視頻 緩沖區(qū)大小的設(shè)定應(yīng)遵循的原則是若播放邏輯模塊重新加載并進(jìn)行重定 向、建立媒體鏈路、解碼第一幀圖像所需的時(shí)間總長(zhǎng)為t,則視頻緩沖區(qū) 中應(yīng)預(yù)先積累的視頻數(shù)據(jù)以正常速率播放的時(shí)長(zhǎng)T應(yīng)大于等于t。本實(shí)施 例中視頻緩沖區(qū)的視頻內(nèi)容時(shí)長(zhǎng)設(shè)定為2秒。
步驟208:?;钕⒌臋z查周期應(yīng)大于播放邏輯模塊的保活周期2倍 以上,本實(shí)施例中的固定時(shí)長(zhǎng)為1秒,當(dāng)界面展示模塊在固定時(shí)長(zhǎng)內(nèi)未收 到播放邏輯模塊的保活消息或收到播放邏輯模塊的?;钕⒅酗@示該模塊 運(yùn)行異常時(shí),界面展示模塊在系統(tǒng)任務(wù)管理器中枚舉系統(tǒng)中當(dāng)前運(yùn)行的進(jìn) 程名稱,若子進(jìn)程播放邏輯模塊仍在任務(wù)管理器中,則強(qiáng)制關(guān)閉播放邏輯 模塊,并以創(chuàng)建子進(jìn)程的方式重新啟動(dòng)邏輯播放模塊;若子進(jìn)程播放邏輯 模塊已退出不在任務(wù)管理器中,則直接創(chuàng)建播放邏輯模塊子進(jìn)程。
步驟209:在重新加載啟動(dòng)播放邏輯模塊的過程中,界面展示模塊可 使用正常速度播放當(dāng)前視頻緩沖區(qū)內(nèi)的視頻內(nèi)容,直至播放邏輯模塊重新 啟動(dòng),則在保證正常界面展示模塊正常播放的同時(shí),繼續(xù)向視頻緩沖區(qū)內(nèi)添加視頻數(shù)據(jù)。
其中,步驟206和209中當(dāng)視頻緩沖區(qū)內(nèi)未積累達(dá)到指定時(shí)長(zhǎng)的視頻 數(shù)據(jù)時(shí),也可開始播放,如以略慢于正常速度的0. 8倍速進(jìn)行播放,則10 秒后,在緩沖區(qū)中充滿指定時(shí)長(zhǎng)的視頻數(shù)據(jù)后恢復(fù)正常速度播放,而不影 響用戶體-瞼。
其中,若平臺(tái),如視頻服務(wù)器、流媒體服務(wù)器等支持預(yù)錄功能,即在 實(shí)時(shí)播放的過程中,可由平臺(tái)或客戶端實(shí)時(shí)保存一定時(shí)長(zhǎng)的錄像片段。則 在步驟2 07中發(fā)現(xiàn)播放邏輯模塊保活失敗后可保存當(dāng)前時(shí)間點(diǎn)。在步驟2 0 8 中請(qǐng)求視頻時(shí),可使用時(shí)移功能,根據(jù)步驟207中保存的時(shí)間點(diǎn)請(qǐng)求對(duì)應(yīng) 時(shí)刻的視頻,以保證實(shí)時(shí)視頻的連續(xù)性。
明,不能認(rèn)定本發(fā)明的具體實(shí)施只局限于這些說(shuō)明。對(duì)于本發(fā)明所屬技術(shù) 領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若 干簡(jiǎn)單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明由所提交的權(quán)利要求書確定的 專利保護(hù)范圍。
權(quán)利要求
1.一種視頻監(jiān)控客戶端播放方法,由播放邏輯模塊進(jìn)行播放流程處理,由界面展示模塊進(jìn)行畫面展示;在播放邏輯模塊出現(xiàn)異常情況時(shí),界面展示模塊重新加載播放邏輯模塊,并在該重新加載的過程中保持播放畫面正常展示。
2. 如權(quán)利要求1所述的視頻監(jiān)控客戶端播放方法,其特征是該重新 加載的過程包括如下步驟界面展示模塊在系統(tǒng)任務(wù)管理器中枚舉系統(tǒng)中 當(dāng)前運(yùn)行的進(jìn)程名稱,若子進(jìn)程播放邏輯沖莫塊仍在任務(wù)管理器中,則強(qiáng)制 關(guān)閉播放邏輯模塊,并以創(chuàng)建子進(jìn)程的方式重新啟動(dòng)邏輯播放模塊;若子 進(jìn)程播放邏輯模塊已退出不在任務(wù)管理器中,則直接創(chuàng)建播放邏輯模塊子 進(jìn)程。
3. 如權(quán)利要求1或2所述的視頻監(jiān)控客戶端播放方法,其特征是該 播放邏輯模塊定時(shí)向界面展示模塊發(fā)送保活信息,反饋播放邏輯模塊當(dāng)前 的運(yùn)4于爿犬態(tài);若界面展示模塊在指定時(shí)間內(nèi)未收到播放邏輯模塊的?;钕ⅲ虮?活消息顯示播放邏輯模塊運(yùn)行狀態(tài)異常,則界面展示模塊重新加載播放邏 輯模塊,并在重新加載的過程中保持播放畫面正常顯示。
4. 如權(quán)利要求3所述的視頻監(jiān)控客戶端播放方法,其特征是在該重 新加載的過程中,界面展示模塊保持播放畫面靜止。
5. 如權(quán)利要求3所述的視頻監(jiān)控客戶端播放方法,其特征是在界面 展示模塊中設(shè)置視頻緩沖區(qū),并在其中緩沖指定時(shí)長(zhǎng)的視頻內(nèi)容;在正常 播放或界面展示模塊重新啟動(dòng)播放邏輯模塊時(shí),界面展示模塊播放該視頻 緩沖區(qū)中的視頻內(nèi)容。
6. 如權(quán)利要求l-5中任一項(xiàng)所述的視頻監(jiān)控客戶端播放方法,其特征 是界面展示模塊進(jìn)行畫面展示的過程,包括實(shí)時(shí)播放過程,該實(shí)時(shí)播放 過程包括如下步驟在界面展示模塊中保存目標(biāo)監(jiān)控點(diǎn)的相關(guān)數(shù)據(jù); 界面展示模塊將播放所必須的數(shù)據(jù)傳遞給播放邏輯模塊; 播放邏輯模塊根據(jù)界面展示模塊所提供的數(shù)據(jù),向平臺(tái)進(jìn)行包括重定 向、與視頻源建立媒體鏈接和解碼的播放流程處理;播放邏輯模塊將解碼后的數(shù)據(jù)傳遞給界面展示模塊; 界面展示模塊將解碼后的數(shù)據(jù)以連續(xù)畫面的形式播放。
7. 如權(quán)利要求5所述的視頻監(jiān)控客戶端播放方法,其特征是當(dāng)視頻 緩沖區(qū)內(nèi)未積累達(dá)到指定時(shí)長(zhǎng)的視頻數(shù)據(jù)時(shí),界面展示模塊進(jìn)行慢于正常 速度的播放;在視頻緩沖區(qū)中充滿指定時(shí)長(zhǎng)的視頻數(shù)據(jù)后恢復(fù)正常速度播 放。
8. 如權(quán)利要求6所述的視頻監(jiān)控客戶端播放方法,其特征是在實(shí)時(shí) 播放過程中,平臺(tái)或客戶端實(shí)時(shí)保存一定時(shí)長(zhǎng)的視頻內(nèi)容;在播放邏輯模 塊出現(xiàn)異常情況時(shí)保存當(dāng)前時(shí)間點(diǎn);在播放邏輯模塊被重新加載啟動(dòng)后, 界面展示模塊根據(jù)該時(shí)間點(diǎn)請(qǐng)求對(duì)應(yīng)時(shí)刻的視頻內(nèi)容。
9. 一種視頻監(jiān)控客戶端播放系統(tǒng),包括用于播放流程處理的播放邏輯 模塊和進(jìn)行畫面展示的界面展示模塊;所述界面展示模塊在播放邏輯模塊 出現(xiàn)異常情況時(shí)重新加載該播放邏輯模塊,并在該重新加載的過程中保持 播放畫面正常展示。
10. 如權(quán)利要求8所述的視頻監(jiān)控客戶端播放系統(tǒng),其特征是該界 面展示模塊中包括用于緩沖指定時(shí)長(zhǎng)的視頻內(nèi)容的視頻緩沖區(qū);用于在正 常播放或重新加載該播放邏輯模塊時(shí),由界面展示模塊播放該視頻緩沖區(qū) 中的視頻內(nèi)容。
全文摘要
本發(fā)明公開了一種視頻監(jiān)控客戶端播放方法及其系統(tǒng),由播放邏輯模塊進(jìn)行播放流程處理,由界面展示模塊進(jìn)行畫面展示;在播放邏輯模塊出現(xiàn)異常情況時(shí),界面展示模塊重新加載播放邏輯模塊,并在該重新加載的過程中保持播放畫面正常展示。本發(fā)明通過將視頻監(jiān)控客戶端應(yīng)用程序分為界面展示模塊和播放邏輯模塊兩個(gè)部分,在播放邏輯模塊出現(xiàn)異常情況時(shí)自動(dòng)重新加載該模塊,客戶端自行修復(fù),避免了此時(shí)客戶端程序出現(xiàn)崩潰或無(wú)響應(yīng);顯著提高了視頻監(jiān)控系統(tǒng)、視頻監(jiān)控客戶端的容錯(cuò)性、穩(wěn)定性和可靠性;同時(shí),界面展示模塊可保持畫面的正常顯示,提高了用戶體驗(yàn)。
文檔編號(hào)H04N7/18GK101583022SQ20091010799
公開日2009年11月18日 申請(qǐng)日期2009年6月11日 優(yōu)先權(quán)日2009年6月11日
發(fā)明者崔志偉 申請(qǐng)人:中興通訊股份有限公司