iptv 缓存 linux,一种IPTV直播业务的卡顿检测方法及系统与流程
本發(fā)明涉及流媒體技術(shù)領(lǐng)域,尤其涉及一種iptv直播業(yè)務(wù)的卡頓檢測方法及系統(tǒng)。
背景技術(shù):
隨著iptv業(yè)務(wù)的發(fā)展,各大運(yùn)營商越來越關(guān)注用戶的使用感知,其中檢測用戶感知好壞的一個(gè)重要依據(jù)就是用戶使用視頻業(yè)務(wù)過程中的視頻卡頓情況,因此iptv直播業(yè)務(wù)的卡頓檢測方法的優(yōu)劣對于用戶的卡頓情況判斷尤其重要。
目前,iptv直播業(yè)務(wù)的卡頓檢測方式是通過播放器緩存流量識(shí)別技術(shù)來進(jìn)行判斷,通過實(shí)時(shí)計(jì)算單位時(shí)間段內(nèi)流媒體播放器緩存流量和視頻播放消費(fèi)流量來識(shí)別用戶是否卡頓,若媒體播放消費(fèi)流量大于播放器緩存流量時(shí),則判斷為用戶卡頓。該檢測方法存在以下幾個(gè)問題:
1)由于播放器緩沖區(qū)大小是由機(jī)頂盒芯片來決定,芯片的性能和機(jī)制差異也決定了播放器緩沖區(qū)大小的不同,在相同網(wǎng)絡(luò)狀態(tài)下,不同的機(jī)頂盒廠商的解決方案對卡頓的檢測情況不同,也導(dǎo)致了卡頓判斷存在誤差。
2)目前卡頓檢測判斷的方法主要取決于芯片,而由于芯片取數(shù)靈敏度較高,只要稍微有媒體播放消費(fèi)流量大于播放器緩存流量時(shí)均判斷為卡頓現(xiàn)象,即使這個(gè)卡頓時(shí)間是毫秒級(jí)且是零星的,而這種現(xiàn)象對于用戶來說并沒有任何的視覺感知,但系統(tǒng)仍然判斷為用戶卡頓,這就和用戶的實(shí)際體驗(yàn)不一致,也不能真實(shí)反映卡頓情況。這樣的卡頓統(tǒng)計(jì)現(xiàn)象由于不精準(zhǔn),容易導(dǎo)致卡頓誤判,并產(chǎn)生卡頓工單,浪費(fèi)人力。
技術(shù)實(shí)現(xiàn)要素:
為了解決上述問題,本發(fā)明提出一種iptv直播業(yè)務(wù)的卡頓檢測方法,包括以下步驟:
對播放器內(nèi)核文件進(jìn)行重載,按一定時(shí)間間隔獲取視頻播放的位置信息;
將當(dāng)前時(shí)刻的位置信息與上一時(shí)刻的位置信息進(jìn)行對比,判斷是否卡頓。
進(jìn)一步的,還包括:若判斷發(fā)生卡頓,則記錄卡頓信息,生成卡頓持續(xù)時(shí)間、卡頓間隔或卡頓頻率。
進(jìn)一步的,所述重載的方法為通過linux中的環(huán)境變量ld_preload調(diào)用共享庫。
進(jìn)一步的,所述重載的對象為機(jī)頂盒的mediaplayer標(biāo)準(zhǔn)播放庫或機(jī)頂盒的芯片播放庫。
進(jìn)一步的,所述位置信息通過linux內(nèi)部共享存儲(chǔ)進(jìn)行傳輸。
本發(fā)明另一目的在于提出一種iptv直播業(yè)務(wù)的卡頓檢測系統(tǒng),包括播放器狀態(tài)監(jiān)測模塊、卡頓實(shí)時(shí)計(jì)算模塊,其中:
播放器狀態(tài)監(jiān)測模塊用于對播放器內(nèi)核文件進(jìn)行重載,按一定時(shí)間間隔獲取視頻播放的位置信息;
卡頓實(shí)時(shí)計(jì)算模塊用于將當(dāng)前時(shí)刻的位置信息與上一時(shí)刻的位置信息進(jìn)行對比,判斷是否卡頓。
進(jìn)一步的,所述卡頓實(shí)時(shí)計(jì)算模塊判斷發(fā)生卡頓時(shí),則記錄卡頓信息,生成卡頓持續(xù)時(shí)間、卡頓間隔或卡頓頻率。
進(jìn)一步的,所述播放器狀態(tài)監(jiān)測模塊包括內(nèi)核重載模塊,所述內(nèi)核重載模塊通過linux中的環(huán)境變量ld_preload調(diào)用共享庫。
進(jìn)一步的,所述內(nèi)核重載模塊重載的對象為機(jī)頂盒的mediaplayer標(biāo)準(zhǔn)播放庫或機(jī)頂盒的芯片播放庫。
進(jìn)一步的,所述播放器狀態(tài)監(jiān)測模塊與卡頓實(shí)時(shí)計(jì)算模塊共享存儲(chǔ)。
本發(fā)明的有益效果在于:本發(fā)明徹底解決了傳統(tǒng)流量分析的誤差,極大地提高了卡頓監(jiān)測準(zhǔn)確率;降低了過去大量的運(yùn)算過程,使卡頓監(jiān)測效率提升至秒級(jí);卡頓準(zhǔn)確貼近用戶視覺感知,質(zhì)差用戶篩查更精準(zhǔn)。
附圖說明
圖1是本發(fā)明處理過程示意圖;
圖2是本發(fā)明系統(tǒng)框架示意圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。通常在此處附圖中描述和示出的本發(fā)明實(shí)施例的組件可以以各種不同的配置來布置和設(shè)計(jì)。
傳統(tǒng)視頻播放卡頓檢測基于緩存流量和網(wǎng)絡(luò)流量進(jìn)行,無法真實(shí)反映用戶體驗(yàn),為解決次問題,本發(fā)明目的在于一種iptv直播業(yè)務(wù)的卡頓檢測方法,包括以下步驟:對播放器內(nèi)核文件進(jìn)行重載,按一定時(shí)間間隔獲取視頻播放的位置信息;將當(dāng)前時(shí)刻的位置信息與上一時(shí)刻的位置信息進(jìn)行對比,判斷是否卡頓。
相應(yīng)地,本發(fā)明另一目的在于提出一種iptv直播業(yè)務(wù)的卡頓檢測系統(tǒng),包括播放器狀態(tài)監(jiān)測模塊、卡頓實(shí)時(shí)計(jì)算模塊,其中:播放器狀態(tài)監(jiān)測模塊用于對播放器內(nèi)核文件進(jìn)行重載,按一定時(shí)間間隔獲取視頻播放的位置信息;卡頓實(shí)時(shí)計(jì)算模塊用于將當(dāng)前時(shí)刻的位置信息與上一時(shí)刻的位置信息進(jìn)行對比,判斷是否卡頓。
本發(fā)明實(shí)施的示意圖如圖1、圖2所示,播放器內(nèi)核文件包含了視頻播放的快進(jìn)|快退事件、播放|暫停、當(dāng)前位置、播放地址等;通過獲取其中的位置信息進(jìn)行判斷實(shí)現(xiàn)卡頓的檢測。在本實(shí)施例中,重載的方法為通過linux中的環(huán)境變量ld_preload調(diào)用共享庫,播放器狀態(tài)監(jiān)測模塊中的內(nèi)核重載模塊通過重載播放進(jìn)程調(diào)用的內(nèi)核api來進(jìn)行攔截,從而獲取播放進(jìn)程傳遞給內(nèi)核的播放相關(guān)參數(shù)以及狀態(tài)。linux中調(diào)用共享庫的順序依次為$ld_preload、$ld_library_path、/etc/ld.so.cache、/lib等。其中,環(huán)境變量$ld_preload可以用于重載所有的共享庫,也可以只重載某幾個(gè)函數(shù)。通過在設(shè)置環(huán)境變量ld_preload來改變動(dòng)態(tài)庫的調(diào)用順序,當(dāng)應(yīng)用程序調(diào)用共享庫的函數(shù)時(shí),都會(huì)先在libeasydemo.so中尋找該函數(shù),如果libeasydemo.so有同名函數(shù),就調(diào)用libeasydemo.so,否則就繼續(xù)在其他路徑或庫尋找,以此實(shí)現(xiàn)對播放器的position探測,即位置信息。
因?yàn)闄C(jī)頂盒的種類很多,每種機(jī)頂盒播放器在進(jìn)行播放時(shí),使用的底層庫不相同,于是重載庫中需要適配的播放函數(shù)也各不相同,但是機(jī)頂盒使用的芯片種類總體上并不多,于是除了從頂層的mediaplayer進(jìn)行重載以外,對于那些沒有使用mediaplayer標(biāo)準(zhǔn)播放庫的機(jī)頂盒播放器,重載其芯片播放庫。根據(jù)需求內(nèi)核重載模塊重載的對象設(shè)置為機(jī)頂盒的mediaplayer標(biāo)準(zhǔn)播放庫或機(jī)頂盒的芯片播放庫,則能夠自適應(yīng)適配使用主流芯片的機(jī)頂盒。
在本實(shí)施例中,按1s的時(shí)間間隔對視頻播放的位置信息進(jìn)行檢測,得到視頻播放在不同時(shí)間的位置信息。卡頓檢測模塊將獲取到的播放狀態(tài)信息實(shí)時(shí)通過linux內(nèi)部共享存儲(chǔ)傳遞給同一個(gè)系統(tǒng)中的卡頓實(shí)時(shí)計(jì)算模塊,不需要經(jīng)過tcp或者udp的網(wǎng)絡(luò)傳輸,實(shí)現(xiàn)了透傳。卡頓實(shí)時(shí)計(jì)算模塊對當(dāng)前位置信息與上一個(gè)監(jiān)測點(diǎn)的位置信息進(jìn)行比較,若當(dāng)前位置信息與上一個(gè)時(shí)間點(diǎn)的位置信息相同,可判斷出用戶卡頓;若當(dāng)前位置信息大于上一個(gè)時(shí)間點(diǎn)的位置信息時(shí),可判斷出該用戶恢復(fù)播放,同時(shí)計(jì)算出卡頓持續(xù)時(shí)間、卡頓間隔和卡頓頻率,將結(jié)果輸出至上層應(yīng)用。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲(chǔ)于計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、rom、ram等。
以上所揭露的僅為本發(fā)明較佳實(shí)施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
總結(jié)
以上是生活随笔為你收集整理的iptv 缓存 linux,一种IPTV直播业务的卡顿检测方法及系统与流程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 去除lcd图片的摩尔纹_宝妈时尚产后有妊
- 下一篇: 匿名类接口对象