姚亮 王永勝 葛萬林
(四川長虹網(wǎng)絡(luò)科技有限責(zé)任公司 四川省綿陽市 621000)
隨著DVB組織的成立,DVB規(guī)范的發(fā)布。數(shù)字電視市場在全球如春筍成長起來。至今已有20余年的時(shí)間。為了提高運(yùn)營商運(yùn)營收益,收視率統(tǒng)計(jì)日益迫切。然而,國外很多中小型運(yùn)營商,沒條件集成成熟的收視率管理系統(tǒng)。本文簡述了低成本收視率管理系統(tǒng)終端集成方法,供數(shù)字電視產(chǎn)業(yè)軟件人員進(jìn)行參考。
(1)收集用戶開機(jī)時(shí)間信息、觀看節(jié)目時(shí)間信息、錄制節(jié)目時(shí)間信息、回放節(jié)目時(shí)間信息、待機(jī)時(shí)間信息等。
(2)收集數(shù)據(jù),以XML格式保存。為了保護(hù)用戶隱私,所有數(shù)據(jù)使用AES-CBC加密存儲。
(3)收視率數(shù)據(jù)按照服務(wù)端配置頻率,定期上傳Ftp或Sftp服務(wù)器
(1)用戶使用習(xí)慣、觀看節(jié)目情況及定義,通過XML統(tǒng)一規(guī)定協(xié)議;
(2)文件名按服務(wù)端定義,然后統(tǒng)一上傳到服務(wù)端FTP,最后服務(wù)端系統(tǒng),通過數(shù)據(jù)挖掘采集FTP服務(wù)器信息,解析出數(shù)據(jù)信息,對應(yīng)顯示出豐富的終端用戶收集率統(tǒng)計(jì)情況。
本系統(tǒng)適用于所有支持高清/標(biāo)清以及USB PVR的機(jī)頂盒,用于判斷哪些節(jié)目觀看次數(shù)較多,特定頻道的受歡迎程度等具體流程如下:
(1)機(jī)頂盒安裝USB 4G Dongle。
(2)機(jī)頂盒將原始數(shù)據(jù)發(fā)送到AMS 服務(wù)器。
(3)USB 4G Dongle使用移動(dòng) GSM 網(wǎng)絡(luò)發(fā)送數(shù)據(jù)。
(4)數(shù)據(jù)卡需要在機(jī)頂盒上電后 5-7 秒內(nèi)連接。
(5)在機(jī)頂盒中分配主備AMS數(shù)據(jù)區(qū)域,64 KB 用于存儲 AMS 數(shù)據(jù),64 KB用于備份AMS數(shù)據(jù)。
(6)備份機(jī)制邏輯必須保證數(shù)據(jù)的完整和安全性。
(7)機(jī)頂盒信息頁面中顯示USB 4G Dongle連接狀態(tài)。
(8)機(jī)頂盒 將 AMS 數(shù)據(jù)文件發(fā)送到指定的SFTP (需要同時(shí)發(fā)送到主備兩個(gè)地址)。
(1)機(jī)頂盒生成用戶操作日志,當(dāng)AMS數(shù)據(jù)區(qū)域滿時(shí),機(jī)頂盒將嘗試連接并發(fā)送日志。如果失敗,STB 將保留用戶操作日志,并停止生成新日志,直到機(jī)頂盒將 AMS 文件發(fā)送到服務(wù)器。
(2)機(jī)頂盒將XML 報(bào)告發(fā)送到數(shù)據(jù)挖掘服務(wù)器后,預(yù)期會收到如下響應(yīng):HTTP-200。如果收到 HTTP-200 以外的響應(yīng),或者根本沒有響應(yīng),這些 XML 文件的發(fā)送被認(rèn)為是不成功的;因此,將觸發(fā)重傳機(jī)制。
(3)當(dāng)數(shù)據(jù)達(dá)到 80-90% 時(shí),STB 將數(shù)據(jù)回傳并清除內(nèi)存空間。
(4)當(dāng)機(jī)頂盒從待機(jī)/關(guān)機(jī)模式喚醒時(shí),機(jī)頂盒將在10 秒內(nèi)發(fā)送 AMS 數(shù)據(jù),而不用考慮 AMS 日志文件的大小。之后,機(jī)頂盒將清除 AMS 日志(主區(qū)和備份區(qū)),并在 10秒喚醒后開始寫入新的 AMS 文件(無需記錄開機(jī)10秒的日志)。
(5)AMS服務(wù)端會在特定時(shí)間為任意用戶發(fā)送 EMM/主機(jī)數(shù)據(jù),以要求機(jī)頂盒上傳AMS 數(shù)據(jù)。
(6)AMS服務(wù)發(fā)送EMM數(shù)據(jù),啟用或者停用目標(biāo)機(jī)頂盒AMS功能的選項(xiàng)。
(1)STB 喚醒時(shí);
(2)實(shí)時(shí)觀看:- 至少 30 秒的持續(xù)時(shí)間將創(chuàng)建實(shí)時(shí)觀看事件,少于 30 秒的觀看將被視為頻道沖浪事件;
(3)內(nèi)容的計(jì)劃錄制;
(4)錄制內(nèi)容的播放;
(5)為任何多語言頻道選擇的語言;
(6)用戶端第一次安裝USB 4G Dongle時(shí)發(fā)送OTP到AMS服務(wù)器進(jìn)行設(shè)備的安裝注冊。
如圖1所示。
圖1:系統(tǒng)整體框圖
如圖2所示。
圖2:軟件流程
3.3.1 用戶觀看模式數(shù)據(jù)采集
如圖3所示:目前配置的最低觀看時(shí)間有30s,超過30S后,STB會觸發(fā)LIVE_VIEW_EVENT.
圖3:用戶觀看模式數(shù)據(jù)采集
3.3.2 定時(shí)錄制數(shù)據(jù)采集
如圖4所示。
圖4:定時(shí)錄制數(shù)據(jù)采集
3.3.3 回放數(shù)據(jù)采集
如圖5所示。
圖5:回放數(shù)據(jù)采集
3.3.4 伴音切換數(shù)據(jù)采集
協(xié)議規(guī)范:
(1)一般默認(rèn)前端播放的節(jié)目只有一個(gè)視頻,多個(gè)音頻。
(2)如果用戶切換伴音,切換到的伴音將會被采集。
如圖6所示。
圖6:伴音切換數(shù)據(jù)采集
3.3.5 開機(jī)數(shù)據(jù)采集
當(dāng)檢測到用戶開機(jī),軟件觸發(fā)POWER_ON_EVENT,搜索到直播信息后,AMS系統(tǒng)模塊會記錄用戶開機(jī)信息并存數(shù)據(jù),主要記錄開機(jī)時(shí)間。
3.3.6 待機(jī)數(shù)據(jù)采集
當(dāng)檢測到用戶待機(jī),軟件觸發(fā)Standby_EVENT,AMS系統(tǒng)模塊記錄下待機(jī)信息。
(1)每個(gè)AMS XML文件都包括一個(gè)AMSSubscriberLog的根節(jié)點(diǎn)。
(2)每個(gè)AMSSubscriberLog節(jié)點(diǎn)包括AMS XML文件格式以及注冊詳情,包括AMS XML的格式版本,注冊ID等。
(3)每個(gè)AMS XML文件,都有一個(gè)或者多個(gè)事件。示意圖如圖7所示。
圖7:AMS XML文件示意圖
本小節(jié)詳細(xì)介紹了 AMS 引擎用于打開、命名、關(guān)閉、刪除和轉(zhuǎn)發(fā)其二進(jìn)制文件。
注意:AMS會將二進(jìn)制文件發(fā)送到 AMS 代理服務(wù)器。每個(gè)二進(jìn)制文件轉(zhuǎn)換為單個(gè)XML文件。
打開文件操作:
(1)僅當(dāng)機(jī)頂盒Sample ID不等于0時(shí),AMS 引擎才會打開文件。
(2)只有Sample ID 可用時(shí),AMS 引擎才會打開文件(智能卡在機(jī)頂盒中)。
(3)AMS 引擎在啟動(dòng)后打開一個(gè)新文件,當(dāng)它記錄調(diào)諧到默認(rèn)頻道。
(4) AMS Engine 在機(jī)頂盒啟動(dòng)時(shí),打開一個(gè)帶有Header記錄的新文件輸入樣本。
(5)AMS引擎在Sample ID更改時(shí),打開一個(gè)新文件(Sample ID標(biāo)題記錄的一部分)。在這種情況下,AMS 引擎會刪除與舊Sample ID關(guān)聯(lián)的舊文件。
(6)AMS 引擎在 Event Class 更改時(shí)打開一個(gè)新文件(Event類是標(biāo)題記錄的一部分)。請注意,在這種情況下,AMS 引擎會關(guān)閉所有打開的文件。
(7)AMS 引擎總是在關(guān)閉前一個(gè)文件時(shí)打開一個(gè)新文件。
文件命名規(guī)則:
AMS 引擎根據(jù)從 1 到 10 的編號系統(tǒng)(例如 1,2)創(chuàng)建文件。
關(guān)閉文件操作:
(1)AMS引擎在連接窗口啟動(dòng)時(shí)關(guān)閉文件。
(2) AMS引擎在文件達(dá)到最大大小時(shí)關(guān)閉文件。
(3)當(dāng)Event_Classes發(fā)生變化時(shí),AMS Engine關(guān)閉文件定義。
(4)機(jī)頂盒掉電時(shí),會關(guān)閉一個(gè) AMS 文件。在這種情況下沒有報(bào)告 EOF(文件結(jié)束)事件。
刪除文件操作:
(1)Sample ID更改時(shí),AMS引擎會刪除所有現(xiàn)有文件。
(2)AMS Engine在沒有內(nèi)存時(shí)刪除最舊的文件可繼續(xù)記錄。當(dāng) STB 未成功執(zhí)行時(shí),可能會發(fā)生這種情況轉(zhuǎn)發(fā),例如,如果沒有調(diào)制解調(diào)器連接。
(3)AMS引擎在任何情況下都會覆蓋最舊的文件10多個(gè)文件。這種情況可能由于以下任何原因而發(fā)生:
1.沒有調(diào)制解調(diào)器連接;
2.用戶一天內(nèi)開啟和關(guān)閉STB 10 次;
3.事件類別在一天內(nèi)更改 10 次。
(4)AMS Engine 在轉(zhuǎn)發(fā)成功后刪除文件。
發(fā)送文件到服務(wù)器:閾值
AMS 引擎在達(dá)到其閾值(其內(nèi)存的 90%)時(shí)請求轉(zhuǎn)發(fā)。STB 的存儲轉(zhuǎn)發(fā)引擎轉(zhuǎn)發(fā)所有關(guān)閉的 AMS 文件。
每天報(bào)告的文件數(shù):
可能會在一天內(nèi)報(bào)告多個(gè)AMS文件。例如,單個(gè)文件達(dá)到其最大大小,或者 STB開關(guān)機(jī)很多次。
Sample ID或事件類別更改時(shí)的AMS行為:
(1)如果 STB 收到 EMM 更改 Sample ID,AMS會刪除現(xiàn)有文件并創(chuàng)建一個(gè)新文件。刪除的文件不會傳送到頭端。
(2)如果STB收到EMM改變事件類,AMS關(guān)閉舊的記錄并創(chuàng)建一個(gè)新的。
4.2.1 文件重傳事件
理論上可能存在這樣一種情況,即機(jī)頂盒會重傳同一個(gè)文件,即便機(jī)頂盒已經(jīng)將此XML文件成功將其發(fā)送到數(shù)據(jù)挖掘服務(wù)器。例如STB傳輸數(shù)據(jù)過程中,發(fā)生網(wǎng)絡(luò)故障,則會發(fā)生這種情況(即使 AMS 代理實(shí)際上確實(shí)收到了文件)。在這種情況下,STB 將再次嘗試發(fā)送相同的文件。在這種情況下會出現(xiàn)重復(fù)文件,具有以下特征:
(1)STBCreationDate(由機(jī)頂盒中的 AMS 引擎生成)在兩個(gè)文件中將相同。
(2)DocumentCreationDate(由 AMS服務(wù)生成)在每個(gè)文件中都不同。
4.2.2 雙錄事件
在下面描述的特殊案例場景中,會存在兩個(gè)Recording事件的報(bào)告記錄。
發(fā)生雙錄制事件錯(cuò)誤的場景:
(1)在后臺預(yù)訂了錄制定時(shí)器。
(2)用戶換臺到預(yù)定錄制的頻道。
(3)用戶在 10 秒內(nèi)按下停止。
(4)用戶仍然在預(yù)定錄制的頻道上。
在上述場景中,當(dāng)用戶按下停止時(shí),AMS 引擎會記錄一個(gè)錄制事件,當(dāng)?shù)竭_(dá)機(jī)頂盒預(yù)定錄制結(jié)束時(shí)間,自動(dòng)停止錄制時(shí),AMS引擎會記錄另一個(gè)錄制事件。
4.2.3 雙信號丟失事件
在下面描述的邊緣情況下,當(dāng)只有一個(gè)應(yīng)該報(bào)告時(shí),會報(bào)告兩個(gè) Signal Loss 事件被報(bào)告。發(fā)生雙信號丟失事件錯(cuò)誤的場景:
(1)用戶按下待機(jī)。
(2)5 秒內(nèi)有信號丟失。
在上述場景中,兩個(gè)信號丟失事件出現(xiàn)在 AMS 日志中,而不是一個(gè)。
4.2.4 連續(xù)的 LiveView 事件
在以下情況下,AMS XML 可能包含多個(gè)連續(xù)的 Live ViewEvent 實(shí)例:
(1)用戶觀看直播節(jié)目,然后用戶進(jìn)入PVR回放,并且回放觀看時(shí)間少于最小播放時(shí)間,然后返回直播節(jié)目觀看。
(2)如果用戶打開的AMS數(shù)據(jù)文件,不包括PVR操作記錄;用戶觀看直播,然后用戶進(jìn)入回放,然后返回直播節(jié)目。
數(shù)字電視的標(biāo)準(zhǔn)看起來很簡單,但是需要軟件從業(yè)人員花很多時(shí)間認(rèn)真學(xué)習(xí),不斷摸索,掌握其中的原理才能真正的應(yīng)用于市場。從標(biāo)準(zhǔn)原理出發(fā),推陳出新,使用創(chuàng)新的協(xié)議,才能做出符合不同市場,實(shí)用的軟件,極大提高產(chǎn)品的競爭力。