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