本發(fā)明屬于通信技術(shù)領(lǐng)域,特別涉及一種時(shí)移點(diǎn)播方法。
背景技術(shù):
目前,在互聯(lián)網(wǎng)電視(internetprotocoltelevision,簡(jiǎn)稱iptv)和視頻點(diǎn)播(videoondemand,簡(jiǎn)稱vod)等與視頻播放相關(guān)的解決方案中,時(shí)移電視(tstv)業(yè)務(wù)是一種重要的業(yè)務(wù)形式。采用tstv業(yè)務(wù),用戶觀看直播電視節(jié)目的時(shí)候,實(shí)現(xiàn)對(duì)節(jié)目的暫停、后退操作,并能夠在時(shí)移狀態(tài)下通過(guò)快進(jìn)、切回直播等操作切換到直播狀態(tài),徹底顛覆了原有看電視的方式,給觀眾帶來(lái)全新的收視體驗(yàn)。在時(shí)移電視系統(tǒng)中,用戶觀看過(guò)程存在兩個(gè)狀態(tài),單播狀態(tài)和組播狀態(tài),當(dāng)用戶觀看直播電視節(jié)目時(shí),通過(guò)組播或者廣播信道接收數(shù)據(jù)流,多個(gè)用戶通過(guò)廣播技術(shù)共享同一信道,當(dāng)用戶選擇某些交互操作如,暫停后又繼續(xù)播放節(jié)目時(shí),此時(shí)用戶與時(shí)移電視服務(wù)器交互信令,建立時(shí)移數(shù)據(jù)通道,用戶從組播信道切換為獨(dú)立的單播信道,為了提高用戶體驗(yàn),在單/組播切換過(guò)程中,需要盡量實(shí)現(xiàn)快速的無(wú)縫的切換。
中國(guó)專利cn101616060中公開的“一種iptv終端組播轉(zhuǎn)單播切換方法”,該方法iptv終端收到組播轉(zhuǎn)單播指令后,先建立單播通道,單播通道建立成功后再退出組播,并向流媒體服務(wù)器請(qǐng)求從組播通道最后收到的rtp數(shù)據(jù)包時(shí)戳所對(duì)應(yīng)播放時(shí)間點(diǎn)開始的單播數(shù)據(jù),接收到單播通道的rtp數(shù)據(jù)包時(shí),再根據(jù)記錄的組播通道最后收到rtp數(shù)據(jù)包的時(shí)戳和編號(hào),以及記錄的最新收到rtp數(shù)據(jù)包的時(shí)戳和編號(hào),對(duì)收到的rtp數(shù)據(jù)包進(jìn)行過(guò)濾。采用該發(fā)明提出的iptv終端組播轉(zhuǎn)單播切換方法,先建立單播通道,單播通道建立成功后再退出組播,更好地保證了視頻的連續(xù)性;但是如果用戶通過(guò)暫停觸發(fā)了單播指令,并長(zhǎng)時(shí)間的進(jìn)行暫停操作,在這段暫停過(guò)程中,持續(xù)向終端進(jìn)行發(fā)送組播數(shù)據(jù)顯然是沒(méi)有必要的資源浪費(fèi),而在暫停起始時(shí)間就建立單播通道,然后退出組播,長(zhǎng)時(shí)間占用單播通道對(duì)帶寬的浪費(fèi)更為嚴(yán)重;如果暫停后退出組播,在用戶恢復(fù)播放的時(shí)間點(diǎn)開始進(jìn)行單播通道的建立,服務(wù)器獲取暫停時(shí)間信息,并傳送時(shí)移文件,必然會(huì)給用戶帶來(lái)一定的等待時(shí)間,產(chǎn)生較差的用戶體驗(yàn)。
技術(shù)實(shí)現(xiàn)要素:
為了解決上述問(wèn)題,本發(fā)明提供了一種時(shí)移點(diǎn)播方法,具體方案如下:
一種時(shí)移點(diǎn)播方法,如下步驟:
s1:用戶端接收用戶的暫停操作,記錄時(shí)間點(diǎn)t1,向時(shí)移服務(wù)器發(fā)送暫停指令;
s2:時(shí)移服務(wù)器接收暫停指令,繼續(xù)向用戶端發(fā)送當(dāng)前時(shí)間點(diǎn)t1至t1+δta的時(shí)間段內(nèi)組播數(shù)據(jù),并在t1+δta時(shí)間點(diǎn)上停止發(fā)送組播數(shù)據(jù)并退出組播;
s3:用戶端接收t1至t1+δta的時(shí)間段內(nèi)組播數(shù)據(jù),形成暫存文件存儲(chǔ)至存儲(chǔ)單元;
s4:用戶端監(jiān)聽(tīng)到恢復(fù)播放命令后,記錄時(shí)間點(diǎn)t2,調(diào)取存儲(chǔ)單元內(nèi)的暫存文件,解碼后進(jìn)行播放,同時(shí)與服務(wù)器進(jìn)行通訊,發(fā)送建立時(shí)移數(shù)據(jù)通道指令;
s5:服務(wù)器建立時(shí)移數(shù)據(jù)通道,向用戶端發(fā)送t1時(shí)間點(diǎn)之后的時(shí)移文件數(shù)據(jù)包;
s6:當(dāng)用戶端播放節(jié)目進(jìn)度至?xí)r移文件數(shù)據(jù)包時(shí)間戳節(jié)點(diǎn)時(shí),將時(shí)移文件數(shù)據(jù)包進(jìn)行解碼播放,開始播放時(shí)移文件。
進(jìn)一步地,步驟s6主要由如下步驟構(gòu)成;
s601:用戶端接收時(shí)移文件數(shù)據(jù)包,并記錄當(dāng)前時(shí)移文件數(shù)據(jù)包的時(shí)間戳信息tx和上一時(shí)移文件數(shù)據(jù)包的時(shí)間戳信息tx-1,判斷tx與t1+δta的大小;
s602:當(dāng)判斷結(jié)果為tx小于t1+δta時(shí),丟棄上一時(shí)移文件數(shù)據(jù)包,重復(fù)s601;
s603:當(dāng)判斷結(jié)果為tx等于t1+δta時(shí),丟棄上一時(shí)移文件數(shù)據(jù)包,并開始保存當(dāng)前及以后的時(shí)移文件數(shù)據(jù),進(jìn)行s606步驟;
s604:當(dāng)判斷結(jié)果為tx大于t1+δta時(shí),保存上一時(shí)移文件數(shù)據(jù)以及之后的時(shí)移數(shù)據(jù)文件;進(jìn)行s606步驟;
s606:當(dāng)用戶端播放至tx或tx-1時(shí)間點(diǎn)時(shí),將時(shí)移文件數(shù)據(jù)包進(jìn)行解碼播放。
進(jìn)一步地,方法還包括:
s605:當(dāng)判斷結(jié)果為tx大于t1+δta時(shí),對(duì)tx-1與t1+δta的大小進(jìn)行判斷,當(dāng)判斷結(jié)果為tx-1大于t1+δta時(shí);進(jìn)行s607步驟;
s607:向時(shí)移服務(wù)器進(jìn)行報(bào)錯(cuò)。
更進(jìn)一步地,當(dāng)時(shí)移文件數(shù)據(jù)包進(jìn)行解碼播放后,接收到的時(shí)移文件數(shù)據(jù)包不進(jìn)行s601-s605步驟,直接進(jìn)行s606操作。即當(dāng)開始播放時(shí)移文件后,后續(xù)接收到的時(shí)移文件數(shù)據(jù)包將無(wú)需進(jìn)行判斷操作,直接播放即可。
更進(jìn)一步地,當(dāng)t2小于t1+δta時(shí),不進(jìn)行s601-s605的步驟,直接進(jìn)行s606操作,即當(dāng)用戶的暫停與重新播放之間的時(shí)間間隔非常小,小到小于δta時(shí),建立時(shí)移通道,傳送時(shí)移文件,用戶端接收到時(shí)移文件數(shù)據(jù)包即直接進(jìn)行播放,無(wú)需進(jìn)行判斷,同時(shí)暫停組播即可。
更進(jìn)一步地,當(dāng)時(shí)移文件數(shù)據(jù)包進(jìn)行解碼播放后,時(shí)移服務(wù)器停止發(fā)送組播數(shù)據(jù)。
進(jìn)一步地,時(shí)移點(diǎn)播方法還包括如下步驟:
s100:計(jì)算t2與t1的時(shí)間差δtb;
s101:判斷δtb與預(yù)設(shè)時(shí)間差值δtc大小,當(dāng)δtb大于δtc時(shí),重復(fù)s101步驟;否則開始s102步驟:
s102:開始記錄持續(xù)播放的時(shí)間δtd;
s103:將δtd與預(yù)設(shè)時(shí)間段δte進(jìn)行對(duì)比,當(dāng)對(duì)比結(jié)果為δtd不小于δte時(shí),執(zhí)行s104步驟,否則重復(fù)s103步驟;
s104:自動(dòng)以快進(jìn)速度播放,當(dāng)播放的時(shí)移文件追趕上組播節(jié)目時(shí),切換到組播狀態(tài);
s105:關(guān)閉時(shí)移數(shù)據(jù)通道。
優(yōu)選地,快進(jìn)速度的快進(jìn)倍數(shù)由δtb計(jì)算得出。
優(yōu)選地,方法還包括步驟s0:同步時(shí)移服務(wù)器與用戶端的時(shí)間。
本發(fā)明提供的時(shí)移點(diǎn)播方法,當(dāng)用戶端進(jìn)行暫停操作時(shí),服務(wù)器繼續(xù)向用戶端發(fā)送預(yù)設(shè)時(shí)間段內(nèi)的組播數(shù)據(jù)包,而不是立刻停止組播數(shù)據(jù)發(fā)送,并建立時(shí)移數(shù)據(jù)通道,避免用戶長(zhǎng)時(shí)間暫停而浪費(fèi)帶寬的問(wèn)題;重新開始播放操作觸發(fā)后,調(diào)取的是本地存儲(chǔ)的暫存文件,響應(yīng)快,無(wú)需等待,在播放暫存文件的同時(shí)來(lái)接收時(shí)移文件數(shù)據(jù)包,另播放無(wú)縫銜接,另用戶具有較優(yōu)的用戶體驗(yàn)。
附圖說(shuō)明
圖1.實(shí)施例1時(shí)移點(diǎn)播方法的流程圖;
圖2.實(shí)施例2時(shí)移點(diǎn)播方法的流程圖;
圖3.實(shí)施例3時(shí)移點(diǎn)播方法的部分流程圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的描述,下列實(shí)施例僅用于解釋本發(fā)明的發(fā)明內(nèi)容,不用于限定本發(fā)明的保護(hù)范圍。
本發(fā)明所提供的時(shí)移點(diǎn)播方法,并不考慮服務(wù)器與用戶端的時(shí)間差值問(wèn)題,服務(wù)器與用戶端的時(shí)間同步問(wèn)題可以容易解決,因此本發(fā)明不做進(jìn)一步詳述。為了更好的了解本發(fā)明的內(nèi)容,對(duì)部分時(shí)間標(biāo)志的解釋如下,t1為暫停時(shí)用戶端本地時(shí)間,同時(shí)也是直播暫停時(shí)的播放進(jìn)度,也是重新進(jìn)行播放后,時(shí)移文件發(fā)送的起始時(shí)間戳;t1+δta為本地時(shí)間值,也是退出組播時(shí)節(jié)目的播放進(jìn)度值;tx為時(shí)移文件數(shù)據(jù)包的時(shí)間戳信息,與播放時(shí)間無(wú)關(guān);t2為恢復(fù)播放命令的本地時(shí)間值。
實(shí)施例1
如圖1所示,一種時(shí)移點(diǎn)播方法,包括如下步驟:
s1:假設(shè)用戶在直播觀看《人民的名義》節(jié)目,并于8:00(t1)鐘進(jìn)行了暫停操作,用戶端接收用戶的暫停操作,記錄時(shí)間點(diǎn)t1,向時(shí)移服務(wù)器發(fā)送暫停指令;
s2:時(shí)移服務(wù)器接收暫停指令,繼續(xù)向用戶端發(fā)送直播數(shù)據(jù)到8:01,并在8:01時(shí)間點(diǎn)上停止發(fā)送組播數(shù)據(jù)并退出組播;
s3:用戶端將8:00到8:01的組播節(jié)目?jī)?nèi)容,形成暫存文件存儲(chǔ)至存儲(chǔ)單元;
s4:用戶于9:00鐘恢復(fù)播放命令,用戶端監(jiān)聽(tīng)到恢復(fù)播放命令后,記錄時(shí)間點(diǎn)t2(9:00),調(diào)取存儲(chǔ)單元內(nèi)的暫存文件,解碼后進(jìn)行播放,同時(shí)與服務(wù)器進(jìn)行通訊,發(fā)送建立時(shí)移數(shù)據(jù)通道指令;
s5:服務(wù)器建立時(shí)移數(shù)據(jù)通道,向用戶端發(fā)送t1(8:00)時(shí)間點(diǎn)之后的時(shí)移文件數(shù)據(jù)包;
s6:當(dāng)用戶端播放節(jié)目進(jìn)度至?xí)r移文件數(shù)據(jù)包時(shí)間戳節(jié)點(diǎn)時(shí),將時(shí)移文件數(shù)據(jù)包進(jìn)行解碼播放,開始播放時(shí)移文件。
本實(shí)施例所提供的時(shí)移點(diǎn)播方法,當(dāng)用戶端進(jìn)行暫停操作時(shí),服務(wù)器繼續(xù)向用戶端發(fā)送預(yù)設(shè)時(shí)間段內(nèi)的組播數(shù)據(jù)包,而不是立刻停止組播數(shù)據(jù)發(fā)送,并建立時(shí)移數(shù)據(jù)通道,避免用戶長(zhǎng)時(shí)間暫停而浪費(fèi)帶寬的問(wèn)題;重新開始播放操作觸發(fā)后,與服務(wù)器進(jìn)行通訊,建立時(shí)移數(shù)據(jù)通道,服務(wù)器查詢t1時(shí)間點(diǎn)后時(shí)移文件數(shù)據(jù),打包并發(fā)送給用戶端,這個(gè)過(guò)程一般需要一定的時(shí)間,會(huì)使播放有短暫的卡頓暫停,但本實(shí)施例的用戶端調(diào)取本地存儲(chǔ)的暫存文件,響應(yīng)快,無(wú)需等待,在播放暫存文件的同時(shí)來(lái)接收時(shí)移文件數(shù)據(jù)包,可使播放無(wú)縫銜接,另用戶具有較優(yōu)的用戶體驗(yàn)。
實(shí)施例2
本實(shí)施例的時(shí)移點(diǎn)播方法,與實(shí)施例1的區(qū)別在于,如圖2所示,進(jìn)一步限定,步驟s6主要由如下步驟構(gòu)成;
s601:用戶端接收時(shí)移文件數(shù)據(jù)包,并記錄當(dāng)前時(shí)移文件數(shù)據(jù)包的時(shí)間戳信息tx和上一時(shí)移文件數(shù)據(jù)包的時(shí)間戳信息tx-1,判斷tx與t1+δta的大小;
s602:當(dāng)判斷結(jié)果為tx小于t1+δta時(shí),丟棄上一時(shí)移文件數(shù)據(jù)包,重復(fù)s601;
s603:當(dāng)判斷結(jié)果為tx等于t1+δta時(shí),丟棄上一時(shí)移文件數(shù)據(jù)包,并開始保存當(dāng)前及以后的時(shí)移文件數(shù)據(jù),進(jìn)行s606步驟;
s604:當(dāng)判斷結(jié)果為tx大于t1+δta時(shí),保存上一時(shí)移文件數(shù)據(jù)以及之后的時(shí)移數(shù)據(jù)文件;進(jìn)行s606步驟,然后進(jìn)行s605步驟;
s606:當(dāng)用戶端播放至tx或tx-1時(shí)間點(diǎn)時(shí),將時(shí)移文件數(shù)據(jù)包進(jìn)行解碼播放;
s605:對(duì)tx-1與t1+δta的大小進(jìn)行判斷,當(dāng)判斷結(jié)果為tx-1大于t1+δta時(shí),進(jìn)行s607步驟;
s607:向時(shí)移服務(wù)器進(jìn)行報(bào)錯(cuò)。
本發(fā)明所提供的時(shí)移點(diǎn)播方法,當(dāng)用戶端進(jìn)行暫停操作時(shí),服務(wù)器繼續(xù)向用戶端發(fā)送預(yù)設(shè)時(shí)間段內(nèi)的組播數(shù)據(jù)包,在暫停操作觸發(fā)時(shí),用戶端進(jìn)行暫停播放,并啟動(dòng)存儲(chǔ)單元對(duì)組播數(shù)據(jù)包進(jìn)行存儲(chǔ),當(dāng)重新播放操作觸發(fā)時(shí),立即向服務(wù)器發(fā)送建立時(shí)移數(shù)據(jù)通道的指令,同時(shí)調(diào)去用戶端存儲(chǔ)單元的暫存數(shù)據(jù)進(jìn)行播放,當(dāng)時(shí)移數(shù)據(jù)通道建立完畢,并接受到的時(shí)移文件數(shù)據(jù)包的時(shí)間戳信息tx與t1的差值不小于δta時(shí),開始播放時(shí)移文件,然后刪除存儲(chǔ)單元內(nèi)的暫存文件,釋放內(nèi)存。因此本實(shí)施例的時(shí)移點(diǎn)播方法,在最恰當(dāng)?shù)臅r(shí)機(jī)建立單播的時(shí)移數(shù)據(jù)通道,既不會(huì)長(zhǎng)時(shí)間無(wú)操作的占用時(shí)移數(shù)據(jù)通道,引起帶寬的白白浪費(fèi),也不會(huì)由于時(shí)移數(shù)據(jù)通道建立過(guò)程給用戶帶來(lái)較差的觀看體驗(yàn),使單播的轉(zhuǎn)換平滑過(guò)渡。
實(shí)施例3
本實(shí)施例的時(shí)移點(diǎn)播方法,與實(shí)施例1的區(qū)別在于,如圖3所示,進(jìn)一步限定,時(shí)移點(diǎn)播方法在s6步驟后還包括如下步驟:
s100:計(jì)算t2與t1的時(shí)間差δtb;
s101:判斷δtb與預(yù)設(shè)時(shí)間差值δtc大小,當(dāng)δtb大于δtc時(shí),重復(fù)s101步驟;否則開始s102步驟:
s102:開始記錄持續(xù)播放的時(shí)間δtd;
s103:將δtd與預(yù)設(shè)時(shí)間段δte進(jìn)行對(duì)比,當(dāng)對(duì)比結(jié)果為δtd不小于δte時(shí),執(zhí)行s104步驟,否則重復(fù)s103步驟;
s104:自動(dòng)以快進(jìn)速度播放,當(dāng)播放的時(shí)移文件追趕上組播節(jié)目時(shí),切換到組播狀態(tài);
s105:關(guān)閉時(shí)移數(shù)據(jù)通道。
其中,快進(jìn)速度的快進(jìn)倍數(shù)由δtb計(jì)算得出。
本實(shí)施例提供的時(shí)移點(diǎn)播方法,對(duì)當(dāng)前單播的節(jié)目進(jìn)度與直播的節(jié)目進(jìn)度的差值進(jìn)行判斷,當(dāng)判斷到差值較小,且持續(xù)播放了一段時(shí)間,并未進(jìn)行其他操作,說(shuō)明用戶在持續(xù)觀看節(jié)目,且沒(méi)有前進(jìn)或者后退的需求,但是由于用戶當(dāng)前單播節(jié)目與當(dāng)前組播的直播節(jié)目相差很小,則一直占用單播進(jìn)行播放,對(duì)帶寬浪費(fèi)較為嚴(yán)重,因此開啟自動(dòng)快進(jìn)操作,根據(jù)差值計(jì)算出合適的快進(jìn)倍數(shù),在不影響用戶的劇情了解的同時(shí),利用一段時(shí)間的快進(jìn)追趕上直播進(jìn)度,加入組播,繼續(xù)觀看節(jié)目,節(jié)省資源,避免意外不良體驗(yàn)的產(chǎn)生。