Android TV-电视开发知识点速览

原文链接:Android-Tv

本文总结 Android-TV 开发过程中,常见的基础知识点。主要分为TV-UI,IPTV,OTT,DVB,TVOS,DEBUG等几大模块展开。适用于常见盒子,电视,投影仪等TV开发。

MindMap

开局一张图,直接上脑图

android-tv.png

UI

Android TV 界面开发有别与传统的移动手机端开发,TV端的交互主要是有用户遥控器操作完成,因而在TV上按键和焦点的处理显得尤为重要,其次TV端的输出显示媒介主要是电视显示屏,不同的电视所能支持的输入显示分辨率也不一样,因而分辨率的适配也是TV界面开发需要考虑的一点,除此之外TV界面的设计也与手机上的小屏显示不一样,由于是大屏显示,对UI的设计需更加偏平话,便捷化。

  • 焦点 TV上焦点处理
  • 按键 可以了解下Android View事件分发流程,针对具体的业务进行事件分发,拦截处理
  • 屏幕适配 TV上屏幕适配只需适配常见的720p 1080p 常见的几种分辨率即可。
  • 播放器 TV上播放器一般分为硬件软件,如果定制开发,建议硬解,其他情况可以考虑ijkplayer等
  • UI组件 TV上常见的的控件ListView GridView RecycleView TabLayout ViewPager ScorllView等

IPTV

IPTV概念的普及,国内主要靠电信,联通,移动,广电四大宽带运营商。IPTV主要特点如下:

  • 基于城域网传输
  • 主要面向电视等大屏终端输出
  • 内容来源主要为牌照商

OTT

OTT的概率,国内主要靠互联网行业推动,类似小米/乐视电视,盒子,创维,康佳,海信等智能电视。OTT主要特点如下:

  • 基于互联网传送
  • 除了面向电视等终端输出外,还有手机,pad等,即所谓的“多屏互动”。
  • 内容主要来源于牌照商,视频网内容(有版权)+其他

DVB

DVB的概念,存在时间最早,即传统的广电业务。DVB系统按照信号传播的顺序可以分成前端系统,传输系统和终端系统。其中前端系统一般位于节目生产部门(例如电视台等部门),而终端系统一般用户设备中(例如机顶盒)

传输标准

区别于传送方式的不同,DVB的通用国际标准又可以分为以下:

DVB-S,数字卫星电视系统,即通常山区里面的“户户通”小锅。
DVB-T,数字地面电视广播系统,即通常区域电视塔发射出来的信号,国内标准对应为DTMB
DVB-C,数字有线电视系统,即通常通过Cable线传输信号

分层结构

DVB标准中描述的系统根据所属的层次不同从上层到底层可以分为:音视频编码层,服务信息层,基带传输层,信道编码层,射频层。对于Android开发而言,主要涉及的为服务信息层。服务信息层主要分为:

  • PSI 节目引导信息
  • SI 业务信息

PSI

PSI信息由节目关联表PAT、条件接收表CAT、节目映射表PMT和网络信息表NIT组成,这些表会被插入到TS流中。 PSI信息是对单一TS流的描述,它是TS流的引导信息;PSI信息指定了如何从一个携带多个节目的传输流中找到指定的节目。 下面给出的是节目引导信息(或称节目特定信息,PSI)的四个表结构

  • PAT节目关联表 将节目号码和节目映射表PID相关联,是获取数据的开始
  • PMT节目映射表 指定一个或多个节目的PID
  • CAT条件接收表 将一个或多个专用EMM流分别与唯一的PID相关联
  • NIT网络信息表 描述整个网络,如多少个TS流、频点和调制方式等信息

SI

PSI只提供了单个TS流的信息,使接收机能够对单个TS流中的不同节目进行解码; 但是,它不能提供多个TS流的相关业务,也不能提供节目的类型、节目名称、开始时间、节目简介等信息。 因此,DVB对PSI进行了扩展,提供了其他不同类型的表,形成了SI。
SI定义的表,并不需要全部传输, 其中,SDT、EIT和TDT是必须传输的; 而又以SDT和EIT最为重要,利用这2个表可以构成功能不同的EPG, 如提供节目附加信息、节目分类、节目预定和家长分级控制等。

S 业务I信息表分为以下几类:

  • SDT业务描述表 SDT描述了业务内容及信息,连接了NIT、EIT和PMT(PSI)
  • BAT业务群关联表 BAT将网络中所有的业务分成了多个业务群,以此界定用户。
  • EIT事件信息表 EIT按时间顺序提供每一个业务所包含的事件信息
  • RST运行状态表
  • TDT事件信息表 TDT为时间和日期表(Time&Date Table),它仅传送UTC时间和日期信息。
  • TOT事件偏移表 TOT表提供了UTC时间和日期信息,以及和本地时间的时差
  • ST填充表
  • SIT选择信息表
  • DIT间断信息表

SEARCH

DVB的搜台从用户角度来说,一般可以分为自动搜台,全频点搜台,手动搜台。其中手动搜台实质是单频点搜台,自动搜台是检索到ts流里面的频点信息后,还是回到单频点搜台,全频点搜台一般是固定了频率的数组,依次扫描单频点。

机顶盒搜台的实质是从TS流中获取并存储每套节目的音视频PID值和构建出电子节目节目指南。

以下总结三种搜台实现流程:

①:主频点锁频->NIT获取ServiceList ->获取SDT
机顶盒软件开发厂商会在机顶盒内设定一个初始频点(MainFrenquency).或称主频点,机顶盒可以根据这个主频点的物理参数,如频点.符号率,和调制方式,去锁定此频点.如某机顶盒设置506MHZ作为数字节目的承载主频点,获取NIT(Network Information Table),NIT表由以下两个描述:1.Cable Delivery System Descriptor,这个描述主要包含了频点,符号率,调制参数等信息;2.ServiceList Descriptor,这个描述主要包含当前节目信息的描述,通过NIT表获取ServiceList,进而获得SDT(Service Descriptor Table)表,获取SDT.依靠SDT.机顶盒可以知道频道名,频道类型节目开始时间,节目名称,节目长度,节目分类等信息,通过系统的BAT(业务群关联表)过滤节目信息,可以构建出EPG应用的频道列表.将播放节目和业务名称关联起来显示于节目列表中,最后将新的节目信息写入E2PROM之类的非易失存储介质中,开机自动读取这个存储器中的数据。E2PROM之类的非易失存储介质中,开机自动读取这个存储器中的数据。至此机顶盒的节目搜索工作算是完成。

②:主频点锁频->PAT获取->PMT获取
机顶盒找到主频点获取PAT表。PAT(Program Association Table)表是不加密的。PAT是一个传输流所有节目的总入口点.每路TS流都有一个PAT和一个PMT,但是最后合成的TS流中只有一个PAT和与相对应的总的多个PMT(Program Map Table),通过这两个表的信息进而获取搜取的节目信息,并将节目信息写入写入E2PROM之类的非易失存储介质中,开机自动读取这个存储器中的数据。

③:间隔跨频点锁频->获取频点的节目信息。
全频点搜台方式:通过设置的最低频点和最高频点,机顶盒从最低频点,一般系统最低频点为几十MHz,然后每增长8M,依次搜台到最高频点,搜所到这一频点的节目信息,便写入某一特定的存储空间,最后写入E2PROM之类的非易失存储介质中,

PLAY

播放主要分为大屏播放以及画中画播放,一直搞不懂为啥还要有画中画这种业务场景的需求。画中画一般需要双demux支持。
dvb的播放流程与传统的播放器调用有所差别,一般需要底层,jni层封装单独的播放器接口调用。
dvb播放需传入频点信息,音视频pid,以及音视频类型等。

TVOS

先看下官方简介-NGB TVOS,全称Next Generation Broadcasting Network TVOS,是中华人民共和国国家新闻出版广电总局科技司带头研发的基于Linux和安卓系统的一套应用于网络电视的操作系统。其开发者自称“兼顾现有操作系统的技术,比如Linux、安卓”,并增加信息安全模块,加强用户的信息安全保障,是专门针对电视终端的操作系统。
根据以上描述,结合NGB相关规范,不难看出,TVOS其实还是基于Android系统开发改造,主要是通用规范了中间层接口规范,为硬件软件厂家集成通用接口。
一套完整的TVOS系统,基本集合了DVB+IPTV的业务功能。TVOS应用层面基本覆盖如下几个方面

  • 桌面 >>>>>> 一般支持动态配置更新
  • 直播 >>>>>> 分为DVB直播(需传统广电Cable线支持),IPTV直播(http或者udp)
  • 回看 >>>>>> 目前主要是IPTV回看,走http
  • 时移 >>>>>> 目前主要是IPTV时移,走http,也有部分rtsp
  • 点播 >>>>>> 目前主要是IPTV回看,走http,也有部分rtsp
  • 多屏互动 >> 主要通过DLNA,AIRLPAY等集成,也有部分通过局域网socket实现或者组播实现
  • 设置 >>>>>> 定制化设置,主要包含网络设置,图像设置,系统设置,其他设置等
  • 本地媒体 >> 主要提供外置usb或者sdcard多媒体文件浏览播放,或者apk安装等
  • 应用管理 >> 主要提供本地应用管理以及远程应用推荐,升级等
  • 系统升级 >> 主要提供系统ROM升级,分IP形式升级以及Cable形式升级
  • 消息管理 >> 主要提供前端消息下发,终端消息分发,上报等
  • 广告管理 >> 主要提供前端广告下发,终端广告分发等,包含IP双向广告,以及Cable单向广告
  • 终端管理 >> 主要提供远程运维,远程升级等,一般采用tr069,mqtt,xmpp等协议
  • 数据采集 >> 主要进行用户行为分析,需终端应用埋点集成上报数据,前端进行大数据分析,一般采用mqtt,xmpp等

DEBUG

TV端的开发调试工作,与手机端也有些差异,TV端调试方式大致如下:

  • AndoroidStudio 调试 ,可以直接debug

  • adb命令行,Linux常用命令

  • 串口工具,需拆盒子

  • Tftp 文件传输

  • 系统签名 ,root ,remout等

  • stetho ,可在谷歌浏览器远程查看数据库,sp,文件等信息。

  • Android-Debug-Database ,浏览器在线插件数据库

REF

推荐阅读

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,125评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,293评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,054评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,077评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,096评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,062评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,988评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,817评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,266评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,486评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,646评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,375评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,974评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,621评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,642评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,538评论 2 352

推荐阅读更多精彩内容