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