一種視頻流的處理方法、裝置和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,具體涉及一種視頻流的處理方法、裝置和系統(tǒng)。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,以及移動終端的普及,視頻已經(jīng)成為互聯(lián)網(wǎng)上最主流的應(yīng)用。
[0003]目前,用戶使用移動客戶端觀看直播視頻,都是基于流媒體(StreamingMedia)協(xié)議來實現(xiàn)的。所謂流媒體是指采用流式傳輸?shù)姆绞綄崿F(xiàn)在線播放的媒體格式。具體實現(xiàn)時,視頻網(wǎng)站運營商可以通過視頻傳送服務(wù)器把節(jié)目封裝為數(shù)據(jù)包發(fā)出,并傳送到網(wǎng)絡(luò)上,當(dāng)用戶需要觀看該視頻時,便可以通過解壓客戶端對這些數(shù)據(jù)進(jìn)行解壓并播放。目前比較常見的流媒體協(xié)議主要有基于超文本傳送協(xié)議的實時流傳輸(HLS,HTTP Live Streaming)協(xié)議和實時流傳輸協(xié)議(RTSP,Real Time Streaming Protocol)等。其中,RTSP是一種較通用的實時流媒體協(xié)議,能夠?qū)崿F(xiàn)視頻的直播功能,需要有專門的媒體播放器(media player)和媒體服務(wù)器(media server)。在播放RTSP視頻過程中,經(jīng)常會遇到由于網(wǎng)絡(luò)不穩(wěn)定或者媒體服務(wù)器不穩(wěn)定,而導(dǎo)致偶爾無法正常下載視頻流的情況,對于這種情況或者其他類似的播放異常情況,現(xiàn)有方案一般都會采用直接報錯的方式來進(jìn)行處理,比如暫停或取消視頻的播放,并上報錯誤信息,等等,導(dǎo)致播放視頻的中斷。
[0004]在對現(xiàn)有技術(shù)的研究和實踐過程中,本發(fā)明的發(fā)明人發(fā)現(xiàn),現(xiàn)有方案中的這種直接報錯的處理方式,不利于RTSP視頻的播放穩(wěn)定性和流暢性。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實施例提供一種視頻流的處理方法、裝置和系統(tǒng),可以提供提高播放視頻時的穩(wěn)定性和流暢性。
[0006]本發(fā)明實施例提供一種視頻流的處理方法,包括:
[0007 ]接收視頻播放請求,所述視頻播放請求攜帶視頻流標(biāo)識;
[0008]根據(jù)所述視頻流標(biāo)識從媒體服務(wù)器獲取視頻流;
[0009]確定視頻流的獲取出現(xiàn)異常時,判斷獲取視頻流的嘗試次數(shù)是否低于預(yù)設(shè)值;
[0010]若是,則返回執(zhí)行從媒體服務(wù)器獲取視頻流的步驟;
[0011]若否,則進(jìn)行報錯處理。
[0012]相應(yīng)的,本發(fā)明實施例還提供一種視頻流的處理裝置,包括:
[0013]接收單元,用于接收視頻播放請求,所述視頻播放請求攜帶視頻流標(biāo)識;
[0014]獲取單元,用于根據(jù)所述視頻流標(biāo)識從媒體服務(wù)器獲取視頻流;
[0015]處理單元,用于確定視頻流的獲取出現(xiàn)異常時,判斷獲取視頻流的嘗試次數(shù)是否低于預(yù)設(shè)值;若是,則觸發(fā)獲取單元執(zhí)行從媒體服務(wù)器獲取視頻流的操作;若否,則進(jìn)行報錯處理。
[0016]此外,本發(fā)明實施例還提供一種視頻流的處理系統(tǒng),包括媒體服務(wù)器和本發(fā)明實施例提供的任一種視頻流的處理裝置;
[0017]所述媒體服務(wù)器,用于向視頻流的處理裝置提供視頻流。
[0018]本發(fā)明實施例采用在接收到攜帶視頻流標(biāo)識的視頻播放請求后,根據(jù)該視頻流標(biāo)識從媒體服務(wù)器獲取視頻流,在確定視頻流的獲取出現(xiàn)異常時,判斷獲取視頻流的嘗試次數(shù)是否低于預(yù)設(shè)值,若是,則返回執(zhí)行從媒體服務(wù)器獲取視頻流的步驟,否則,若不低于預(yù)設(shè)值,才進(jìn)行報錯處理;由于該方案在視頻流出現(xiàn)異常時,可以提供相應(yīng)的異常嘗試操作,最大程度保障視頻可以繼續(xù)播放下去,因此,相對現(xiàn)有技術(shù)在遇到異常時則直接報錯的方案而目,可以提供提尚播放視頻時的穩(wěn)定性和流暢性。
【附圖說明】
[0019]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0020]圖la是本發(fā)明實施例提供的視頻流的處理系統(tǒng)的場景示意圖;
[0021 ]圖lb是本發(fā)明實施例提供的視頻流的處理方法的流程圖;
[0022]圖2是本發(fā)明實施例提供的視頻流的處理方法的另一流程圖;
[0023]圖3是本發(fā)明實施例提供的視頻流的處理裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0024]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0025]本發(fā)明實施例提供一種視頻流的處理方法、裝置和系統(tǒng)。
[0026]參見圖la,該視頻流的處理系統(tǒng)可以包括本發(fā)明實施例所提供的任一種視頻流的處理裝置,該視頻流的處理裝置可以集成在終端中,此外,該視頻流的處理系統(tǒng)還可以包括媒體服務(wù)器,用于向終端提供視頻流。
[0027]當(dāng)用戶需要觀看視頻時,可以通過點擊或選擇播放觸發(fā)鍵來觸發(fā)視頻播放請求,其中,該視頻播放請求攜帶視頻流標(biāo)識,當(dāng)終端接收到該視頻播放請求后,便可以根據(jù)該視頻流標(biāo)識從媒體服務(wù)器獲取視頻流,比如,根據(jù)該視頻流標(biāo)識向媒體服務(wù)器發(fā)送視頻流的下載請求,然后接收媒體服務(wù)器根據(jù)該下載請求返回的視頻流,等等,然后,便可以在終端本地播放該視頻流,而在此過程中,若終端確定視頻流出現(xiàn)了異常,則可以啟動異常嘗試流程,比如判斷獲取視頻流的嘗試次數(shù)是否低于預(yù)設(shè)值,若是,則返回執(zhí)行從媒體服務(wù)器獲取視頻流的步驟,否則,若嘗試的次數(shù)已超過預(yù)設(shè)值,比如3次,則進(jìn)行報錯處理,比如釋放所述視頻流資源,以及停止所述RTSP會話,并提示播放錯誤信息,等等。
[0028]以下將分別進(jìn)行詳細(xì)說明。
[0029]實施例一、
[0030]本實施例將從視頻流的處理裝置的角度進(jìn)行描述,該視頻流的處理裝置具體可以集成在終端等設(shè)備中。該視頻流的處理裝置,可以作為一功能模塊集成在終端等設(shè)備中,也可以以軟體的形式安裝在終端等設(shè)備中,在此不再贅述。
[0031 ] 一種視頻流的處理方法,包括:接收視頻播放請求,該視頻播放請求攜帶視頻流標(biāo)識;根據(jù)該視頻流標(biāo)識從媒體服務(wù)器獲取視頻流;確定視頻流的獲取出現(xiàn)異常時,判斷獲取視頻流的嘗試次數(shù)是否低于預(yù)設(shè)值;若是,則返回執(zhí)行從媒體服務(wù)器獲取視頻流的步驟;若否,則進(jìn)行報錯處理。
[0032]如圖lb所示,該視頻流的處理方法的具體流程可以如下:
[0033]101、接收視頻播放請求。
[0034]例如,可以接收用戶通過點擊視頻播放鍵或視頻鏈接地址所觸發(fā)的視頻播放請求,等等。
[0035]其中,該視頻播放請求可以攜帶視頻流標(biāo)識等信息,該視頻流標(biāo)識用于識別視頻流,比如,該視頻流標(biāo)識可以是視頻流的名稱、編號或鏈接地址等。
[0036]該視頻流具體可以為RTSP視頻流或其他格式的直播視頻流。
[0037]102、根據(jù)該視頻流標(biāo)識從媒體服務(wù)器獲取視頻流。例如,具體可以如下:
[0038](1)根據(jù)該視頻流標(biāo)識確定視頻流的鏈接地址。
[0039]該鏈接地址指示該視頻流在媒體服務(wù)器中的存儲位置。
[0040](2)根據(jù)該鏈接地址創(chuàng)建視頻播放器,并對該視頻播放器進(jìn)行初始化;
[0041]例如,在根據(jù)該鏈接地址創(chuàng)建視頻播放器后,可以分別對播放器界面、播放引擎、解碼器和緩存模塊進(jìn)行初始化,具體可以如下:
[0042]A、初始化播放器界面;
[0043]創(chuàng)建播放器界面,包括活動(Activity)組件的布局(Layout)的配置、菜單如側(cè)滑菜單(SlidingMenu)的初始化、底下信息條的初始化、以及操作欄(Act1nbar)的初始化,等等。
[0044]B、初始化播放引擎;
[0045]播放引擎主要任務(wù)是將媒體資源,即視頻流播放的相關(guān)功能進(jìn)行封裝,編譯為動態(tài)鏈接庫,以實現(xiàn)媒體資源的解復(fù)用、解碼和輸出播放等功能,并提供播放、暫停、快進(jìn)、以及快退等控制接口,提供解碼時延、音視頻格式、分辨率、屏幕掃描模式、碼率和幀率等播放信息,實現(xiàn)媒體資源播放功能的封裝性和重用性。因此,此時主要是對播放引擎的上述任務(wù)相關(guān)的參數(shù)進(jìn)行設(shè)置。
[0046]C、初始化解碼器;
[0047]解碼器,即視頻解碼器,是指一個能夠?qū)?shù)字視頻進(jìn)行壓縮或者解壓縮的程序,這里的初始化指的是對解碼器的相關(guān)參數(shù)進(jìn)行配置。
[0048]D、初始化緩存模塊;
[0049]緩存模塊,指以內(nèi)存的方式存儲下載的緩存文件,一般應(yīng)用于緩存長度較少、使用完就會釋放、以及讀取速度要求快的場景。在本發(fā)明實施例中,RTSP視頻流以片段的形式下載到緩存模塊中,都使用內(nèi)存緩存的方式進(jìn)行管理。
[0050]初始化緩存模塊包括創(chuàng)建并初始化緩存模塊,具體的創(chuàng)建和初始化方法可參見現(xiàn)有技術(shù),在此不再贅述。