姚亮 王永胜 葛万林
(四川长虹网络科技有限责任公司 四川省绵阳市 621000)
随着DVB组织的成立,DVB规范的发布。数字电视市场在全球如春笋成长起来。至今已有20余年的时间。为了提高运营商运营收益,收视率统计日益迫切。然而,国外很多中小型运营商,没条件集成成熟的收视率管理系统。本文简述了低成本收视率管理系统终端集成方法,供数字电视产业软件人员进行参考。
(1)收集用户开机时间信息、观看节目时间信息、录制节目时间信息、回放节目时间信息、待机时间信息等。
(2)收集数据,以XML格式保存。为了保护用户隐私,所有数据使用AES-CBC加密存储。
(3)收视率数据按照服务端配置频率,定期上传Ftp或Sftp服务器
(1)用户使用习惯、观看节目情况及定义,通过XML统一规定协议;
(2)文件名按服务端定义,然后统一上传到服务端FTP,最后服务端系统,通过数据挖掘采集FTP服务器信息,解析出数据信息,对应显示出丰富的终端用户收集率统计情况。
本系统适用于所有支持高清/标清以及USB PVR的机顶盒,用于判断哪些节目观看次数较多,特定频道的受欢迎程度等具体流程如下:
(1)机顶盒安装USB 4G Dongle。
(2)机顶盒将原始数据发送到AMS 服务器。
(3)USB 4G Dongle使用移动 GSM 网络发送数据。
(4)数据卡需要在机顶盒上电后 5-7 秒内连接。
(5)在机顶盒中分配主备AMS数据区域,64 KB 用于存储 AMS 数据,64 KB用于备份AMS数据。
(6)备份机制逻辑必须保证数据的完整和安全性。
(7)机顶盒信息页面中显示USB 4G Dongle连接状态。
(8)机顶盒 将 AMS 数据文件发送到指定的SFTP (需要同时发送到主备两个地址)。
(1)机顶盒生成用户操作日志,当AMS数据区域满时,机顶盒将尝试连接并发送日志。如果失败,STB 将保留用户操作日志,并停止生成新日志,直到机顶盒将 AMS 文件发送到服务器。
(2)机顶盒将XML 报告发送到数据挖掘服务器后,预期会收到如下响应:HTTP-200。如果收到 HTTP-200 以外的响应,或者根本没有响应,这些 XML 文件的发送被认为是不成功的;因此,将触发重传机制。
(3)当数据达到 80-90% 时,STB 将数据回传并清除内存空间。
(4)当机顶盒从待机/关机模式唤醒时,机顶盒将在10 秒内发送 AMS 数据,而不用考虑 AMS 日志文件的大小。之后,机顶盒将清除 AMS 日志(主区和备份区),并在 10秒唤醒后开始写入新的 AMS 文件(无需记录开机10秒的日志)。
(5)AMS服务端会在特定时间为任意用户发送 EMM/主机数据,以要求机顶盒上传AMS 数据。
(6)AMS服务发送EMM数据,启用或者停用目标机顶盒AMS功能的选项。
(1)STB 唤醒时;
(2)实时观看:- 至少 30 秒的持续时间将创建实时观看事件,少于 30 秒的观看将被视为频道冲浪事件;
(3)内容的计划录制;
(4)录制内容的播放;
(5)为任何多语言频道选择的语言;
(6)用户端第一次安装USB 4G Dongle时发送OTP到AMS服务器进行设备的安装注册。
如图1所示。
图1:系统整体框图
如图2所示。
图2:软件流程
3.3.1 用户观看模式数据采集
如图3所示:目前配置的最低观看时间有30s,超过30S后,STB会触发LIVE_VIEW_EVENT.
图3:用户观看模式数据采集
3.3.2 定时录制数据采集
如图4所示。
图4:定时录制数据采集
3.3.3 回放数据采集
如图5所示。
图5:回放数据采集
3.3.4 伴音切换数据采集
协议规范:
(1)一般默认前端播放的节目只有一个视频,多个音频。
(2)如果用户切换伴音,切换到的伴音将会被采集。
如图6所示。
图6:伴音切换数据采集
3.3.5 开机数据采集
当检测到用户开机,软件触发POWER_ON_EVENT,搜索到直播信息后,AMS系统模块会记录用户开机信息并存数据,主要记录开机时间。
3.3.6 待机数据采集
当检测到用户待机,软件触发Standby_EVENT,AMS系统模块记录下待机信息。
(1)每个AMS XML文件都包括一个AMSSubscriberLog的根节点。
(2)每个AMSSubscriberLog节点包括AMS XML文件格式以及注册详情,包括AMS XML的格式版本,注册ID等。
(3)每个AMS XML文件,都有一个或者多个事件。示意图如图7所示。
图7:AMS XML文件示意图
本小节详细介绍了 AMS 引擎用于打开、命名、关闭、删除和转发其二进制文件。
注意:AMS会将二进制文件发送到 AMS 代理服务器。每个二进制文件转换为单个XML文件。
打开文件操作:
(1)仅当机顶盒Sample ID不等于0时,AMS 引擎才会打开文件。
(2)只有Sample ID 可用时,AMS 引擎才会打开文件(智能卡在机顶盒中)。
(3)AMS 引擎在启动后打开一个新文件,当它记录调谐到默认频道。
(4) AMS Engine 在机顶盒启动时,打开一个带有Header记录的新文件输入样本。
(5)AMS引擎在Sample ID更改时,打开一个新文件(Sample ID标题记录的一部分)。在这种情况下,AMS 引擎会删除与旧Sample ID关联的旧文件。
(6)AMS 引擎在 Event Class 更改时打开一个新文件(Event类是标题记录的一部分)。请注意,在这种情况下,AMS 引擎会关闭所有打开的文件。
(7)AMS 引擎总是在关闭前一个文件时打开一个新文件。
文件命名规则:
AMS 引擎根据从 1 到 10 的编号系统(例如 1,2)创建文件。
关闭文件操作:
(1)AMS引擎在连接窗口启动时关闭文件。
(2) AMS引擎在文件达到最大大小时关闭文件。
(3)当Event_Classes发生变化时,AMS Engine关闭文件定义。
(4)机顶盒掉电时,会关闭一个 AMS 文件。在这种情况下没有报告 EOF(文件结束)事件。
删除文件操作:
(1)Sample ID更改时,AMS引擎会删除所有现有文件。
(2)AMS Engine在没有内存时删除最旧的文件可继续记录。当 STB 未成功执行时,可能会发生这种情况转发,例如,如果没有调制解调器连接。
(3)AMS引擎在任何情况下都会覆盖最旧的文件10多个文件。这种情况可能由于以下任何原因而发生:
1.没有调制解调器连接;
2.用户一天内开启和关闭STB 10 次;
3.事件类别在一天内更改 10 次。
(4)AMS Engine 在转发成功后删除文件。
发送文件到服务器:阈值
AMS 引擎在达到其阈值(其内存的 90%)时请求转发。STB 的存储转发引擎转发所有关闭的 AMS 文件。
每天报告的文件数:
可能会在一天内报告多个AMS文件。例如,单个文件达到其最大大小,或者 STB开关机很多次。
Sample ID或事件类别更改时的AMS行为:
(1)如果 STB 收到 EMM 更改 Sample ID,AMS会删除现有文件并创建一个新文件。删除的文件不会传送到头端。
(2)如果STB收到EMM改变事件类,AMS关闭旧的记录并创建一个新的。
4.2.1 文件重传事件
理论上可能存在这样一种情况,即机顶盒会重传同一个文件,即便机顶盒已经将此XML文件成功将其发送到数据挖掘服务器。例如STB传输数据过程中,发生网络故障,则会发生这种情况(即使 AMS 代理实际上确实收到了文件)。在这种情况下,STB 将再次尝试发送相同的文件。在这种情况下会出现重复文件,具有以下特征:
(1)STBCreationDate(由机顶盒中的 AMS 引擎生成)在两个文件中将相同。
(2)DocumentCreationDate(由 AMS服务生成)在每个文件中都不同。
4.2.2 双录事件
在下面描述的特殊案例场景中,会存在两个Recording事件的报告记录。
发生双录制事件错误的场景:
(1)在后台预订了录制定时器。
(2)用户换台到预定录制的频道。
(3)用户在 10 秒内按下停止。
(4)用户仍然在预定录制的频道上。
在上述场景中,当用户按下停止时,AMS 引擎会记录一个录制事件,当到达机顶盒预定录制结束时间,自动停止录制时,AMS引擎会记录另一个录制事件。
4.2.3 双信号丢失事件
在下面描述的边缘情况下,当只有一个应该报告时,会报告两个 Signal Loss 事件被报告。发生双信号丢失事件错误的场景:
(1)用户按下待机。
(2)5 秒内有信号丢失。
在上述场景中,两个信号丢失事件出现在 AMS 日志中,而不是一个。
4.2.4 连续的 LiveView 事件
在以下情况下,AMS XML 可能包含多个连续的 Live ViewEvent 实例:
(1)用户观看直播节目,然后用户进入PVR回放,并且回放观看时间少于最小播放时间,然后返回直播节目观看。
(2)如果用户打开的AMS数据文件,不包括PVR操作记录;用户观看直播,然后用户进入回放,然后返回直播节目。
数字电视的标准看起来很简单,但是需要软件从业人员花很多时间认真学习,不断摸索,掌握其中的原理才能真正的应用于市场。从标准原理出发,推陈出新,使用创新的协议,才能做出符合不同市场,实用的软件,极大提高产品的竞争力。