先介绍NIT,NIT描述如下:
  有一点要注意,NIT是对大网的描述,即NIT并不是描述当前的流,而是描述大网的某些或者全部流。如下图,TS流描述1-6共对6个频点不同的TS流进行了描述,具体对哪一个流进行描述,使用“transport_stream_id”作为区分。所以对多个流进行描述时,要结合当前PAT->transport_stream_id做匹配,下图,当前transport_stream_id=0x200f,所以对应的描述为NIT->TS流描述2:
  

  NIT协议如下:

  
  支持的描述符如下:
  
LCN存在于NIT表中,描述符TAG=0x83,不过version2.0 好像TAG=0x87,并且语法结构也做了修改。
  描述符基本结构如下:
logical_channel_desciptor
{
descriptor_tag //8bit , 0x83
descriptor_length // =8bit
for(i=;i<N;i++)
{ service_id //16bit  对应PMT的program_number visible_service_flag //1bit reserved //5bit logical_channel_number //10bit
}
}

不同版本的LCN差异体现在logical_channel_number比特位的不同,NORDIG-Unified_ver_2.1版本中LCD V1的描述子结构为:

    logical_channel_desciptor

    {
descriptor_tag //8bit , 0x83
descriptor_length // =8bit
for(i=;i<N;i++)
{ service_id //16bit    对应PMT表的program_number visible_service_flag //1bit reserved //1bit logical_channel_number //14bit
}
}
  当然,还有其他描述,此处不一一列举。以上两种TAG是一样的,都是0x83
  下面看一张,带LCN的实例Svt_1.ts,这是一张NIT表,LCN就在transport_streams里,展开如下
  找到transport_descriptors里的descriptor_tag==0x83 这个描述的就是LCN
  把descriptor_data 数据放大:leng为32字节如下:
  03 f2 c0 01 13 c4 c0 02 03 66 c0 62 11 a8 40 00 11 9e 40 00 11 c6 40 00 14 32 c0 63 03 70 c0 61
  根据描述符的基本结构如下:一个LCN应该占4字节32bit
那么就根据结构来分析一下吧:这里的N==8
在分析之前,看看它的PAT表吧
 
根据PAT可以看出总共8个节目
1.
03 f2 c0 01
  service_id  //16bit 是 03 f2 这个不正好是上面的program_number=0x03f2吗
  visible_service_flag//1bit 1
  reserved  //5bit
  logical_channel_number//10bit LCN = 0x001
2.13 c4 c0 02
  service_id  //16bit 是 13 c4 这个不正好是上面的program_number=0x13c4吗
  visible_service_flag//1bit 1
  reserved  //5bit
  logical_channel_number//10bit LCN = 0x002
3.03 66 c0 62
  service_id  //16bit 是 03 66 这个不正好是上面的program_number=0x0366吗
  visible_service_flag//1bit 1
  reserved  //5bit
  logical_channel_number//10bit LCN = 0x062
4. 11 a8 40 00
  service_id  //16bit 是 11 a8 这个好像没有0x11a8这个台,所以LCN也没有,可能也正常吧
  visible_service_flag//1bit 0 难道visible_service_flag 可以控制是否有台?
  reserved  //5bit
  logical_channel_number//10bit LCN = 0x0
5. 11 9e 40 00
  service_id  //16bit 是 11 9e 这个好像没有0x11 9e这个台,所以LCN也没有,可能也正常吧
  visible_service_flag//1bit 0
  reserved  //5bit
  logical_channel_number//10bit LCN = 0x0
6.
11 c6 40 00
  service_id  //16bit 是 11 c6 这个不正好是上面的program_number=0x11 c6吗
  visible_service_flag//1bit 0 但是这个台RTK没有搜到
  reserved  //5bit
  logical_channel_number//10bit LCN = 0x0
7.
14 32 c0 63
  service_id  //16bit 是 14 32 这个不正好是上面的program_number=0x14 32吗
  visible_service_flag//1bit 1
  reserved  //5bit
  logical_channel_number//10bit LCN = 0x63
8.
03 70 c0 61
  service_id  //16bit 是 03 70 这个不正好是上面的program_number=0x03 70吗
  visible_service_flag//1bit 1
  reserved  //5bit
  logical_channel_number//10bit LCN = 0x61
 
例如泰国的LCN,注意一下几点:
  1、泰国LCN,original_network_id = 0x22fc,标识泰国运营商的流。
  2、NIT descriptor_tag = 0x83,为LCN描述符,DVB标准。
  3、LCN描述符中的service_id=program_number(PAT/PMT),以此对应LCN是与哪一个节目关联。
  4、不是每个国家都要求LCN,但要求LCN的国家规则不一定相同
    如符合“0x22fc”则为泰国运营商,LCN分布在1-800,否则分布为800+LCN
  5、排序:LCN开关为“ON”,则按LCN排序,否则为“OFF”按program_number排序。
  
  

  

LCN的国家及频道表:

逻辑频道号---DVB NIT LCN的更多相关文章

  1. windows的磁盘操作之四——根据逻辑分区号获得物理磁盘号(转)

    第一节中我们谈到了磁盘设备名称的两种形式: 对于物理驱动器x,形式为\\.\PhysicalDriveX,编号从0开始,例如 名称 含义 \\.\PhysicalDrive0 打开第一个物理驱动器 \ ...

  2. IC卡的逻辑卡号和市民卡卡号

    CPU卡,IC卡等的卡号与卡在出厂时的卡号.

  3. DTV_SI 汇总 & 兼谈LCN

    前言 本章主要对数字广播DVB做一个系统的概况的描述,以及一些spc的相关的内容,虽然流程分析的不多,但是做为后续 章节资料的源泉,也是不可或缺的. 一. ATSC和DVB数字电视系统的比较 本文的主 ...

  4. (转)硬盘分区备忘(主分区,扩展分区和逻辑分区)以及Linux硬盘分区工具parted 介绍

    场景:最近在学习Linux的基础知识,不可避免的设计到Linux的磁盘分区,以前做过总结,但是那种总结就是复制别人的文章,总结完就不想看第二遍,所以很容易就遗忘了!清楚明白的理解分区后,我就可以在自己 ...

  5. ORACLE SEQUENCE跳号总结

      在ORACLE数据库中,序列(SEQUENCE)是使用非常频繁的一个数据库对象,但是有时候会遇到序列(SEQUECNE)跳号(skip sequence numbers)的情形,那么在哪些情形下会 ...

  6. Linux下的磁盘分区和逻辑卷

    一.硬盘接口类型 硬盘的接口主要有IDE.SATA.SCSI .SAS和光纤通道等五种类型.其中IDE和SATA接口硬盘多用于家用产品中,也有部分应用于服务器,SATA是一种新生的硬盘接口类型,已经取 ...

  7. PHP微信公众号开发之自动回复

    先把源码类发出来 <?php /** 自己封装 微信 开发api */ header('Content-type: text/html; charset=utf-8');#设置头信息 class ...

  8. SQL Server解惑——标识列的限制和跳号现象

      1:每个表只能创建一个标识列. 如下测试所示,如果表中有一个标识列,新增一个标识列就会遇到错误"Multiple identity columns specified for table ...

  9. PyQt学习随笔:QTableWidget的visualRow、visualColumn、logicalRow、logicalColumn(可见行、逻辑行、可见列、逻辑列)相关概念及方法探究

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概念 关于逻辑行logicalRow.列logicalColumn和可见行visualRow.列 ...

随机推荐

  1. 树莓派--bcm2835 library (2) 交叉编译BCM2835

    在上文中,按照guide, 在树莓派目标板上install bcm2835. 因为bcm2835是用户空间应用,所以可以在宿主机上交叉编译,生成binary后在树莓派执行 按照guide: Insta ...

  2. stark组件之显示页面内容搭建(六)

    之前主要介绍了前端页面list_fiter功能的显示,但是list_display功能的展示并没有过多介绍,这里介绍一下是如何实现的. 可以看到凡是蓝线圈起来的都是通过字段名反射一个个取出来的,红线的 ...

  3. 集训第五周 动态规划 K题 背包

    K - 背包 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Statu ...

  4. 我们参与投资36Kr股权众筹项目“易途8”的决策过程

     背景   中文接机.中文送机.中文包车. 当地玩乐   最大的竞争对手:皇包车,15年9月A轮   其它对手:唐人接等,订单量无法和 皇包车.易途8比.    看好理由 1.旅游行业和境外自由行,是 ...

  5. Notepad++ 连接远程 FTP 进行文件编辑

    一.下载安装 Notepad++ 1.下载 Notepad++ : https://pan.baidu.com/s/1o7VrS4y 密码 : ck8a 2.安装 Notepad++ 2.1.勾选所有 ...

  6. * SPOJ PGCD Primes in GCD Table (需要自己推线性筛函数,好题)

    题目大意: 给定n,m,求有多少组(a,b) 0<a<=n , 0<b<=m , 使得gcd(a,b)= p , p是一个素数 这里本来利用枚举一个个素数,然后利用莫比乌斯反演 ...

  7. 重启系统media服务

    1.adb shell 执行 stop media & start media 或者stop media ; start media 2.代码里执行 import android.os.Sys ...

  8. POJ 2186 tarjan+缩点 基础题

    Popular Cows Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 37111   Accepted: 15124 De ...

  9. zoj3988 Prime Set

    思路不难想到二分图求个最大匹配P,若P>=K,则2*K即可,否则应为P*2+min(K-P,未匹配且有度数不为0的顶点个数s).但坑点在于有1的情况,所以如果直接建二分图去跑最大匹配会因为1的影 ...

  10. ubuntu忘记root密码的解决办法

    ubuntu忘记密码,不需要重装系统即可重新设置root密码,以下是步骤: 1)在系统一启动时,按ESC键,目的是为了出现选单页面 2) 当看到选单页面时,此时按下[e] 这个键,此时会进入grub ...