TS各個表 與 SECTION 的解析 CAS原理


  TS流,通過一個個的TS包來傳送; TS包可以是傳送PSI SI等各表的數據包,也可以是傳送節目音視頻數據(攜帶的PES包:音視頻基本流包)的包;TS攜帶 PSI SI等表的數據時,各個表以各表對應的Section語法格式做為傳輸單元存放到TS包中 以便傳輸;
  TS包,有一個TS包的PID,系統就是根據這個PID來找對應的TS包;對於包含音視頻數據(PES包)的TS包,系統通過TS的PID找到對應TS數據包,提取其中的數據組合成節目的音視頻;對於攜帶PSI SI等數據的TS包,系統通過TS的PID找到對應TS數據包,提取各個PSI SI數據表格,用來指導系統。
  有了TS的PID后, 如果TS包攜帶的是PSI SI等表格的Section數據時,有時還不能確定該PID的TS包中攜帶的數據是什么,SDT BAT ST 等表傳送時,都用的是PID為0X0011的TS數據包,對於這種攜帶PSI SI Section單元的TS包,對應的數據(表的Section語法中)還有一個 TABLE_ID字段,用來可以確定是具體的什么表。
  每不同的表中,我們看表的SECTION語法,都會看到descriptor()字樣,descriptor()表示的也是一個語法結構,他具體對應的語法結構,由他內部的descriptor tag字段決定,各個表的具體的定義,可以參見13818對應的定義,其中這里面還可以有用戶的自定義描述。
  
  •PSI(Program Specific Information)
  –PAT (Program Association Table)節目關聯表
  –PMT(Program Map Table)節目映射表
  –CAT(Conditional Access Table)條件接收表
  •SI(Service Information) 
  –NIT(Network Information Table)網絡信息表
  –SDT(Service Discription Table)業務描述信息表
  –BAT(Bouquet Association Table)業務群信息表
  –EIT(Event Information Table)節目事件信息表
  –TDT(Time and Data Table)
  日期時間表
  •事件  event
    – 一組給定了起始時間和結束時間、屬於同一業務的基本廣播數據流。例如:一場足球比賽的半場、新聞快報或娛樂表演的第一部分
  •節目   programme
    –由廣播者提供的一個或多個連續的事件。例如:新聞廣播,娛樂廣播。
  •網絡   network
    一個傳輸系統,可以傳輸一組MPEG-2傳輸流(TS)。例如:某個有線電視系統中的所有數字頻道
  •業務  service
    –在廣播者的控制下,可以按照時間表分步廣播的一系列節目,我們也稱之個頻道,口語中也稱之為節目
  節目關聯表PAT
    •PAT定義了一個TS流中所有的節目,PAT的PID是0x0000,他是PSI信息的根節點。要查找節目播放信息必須從PAT開始。
    •PAT中包含了TS中所有節目的完整列表,每個表項包括ServiceID   和PMT(用於播放)的PID。
    •PAT中ServiceID 為0的表項表示NIT。
  節目映射表PMT
    •  PMT提供了一個節目的ServiceID和用於播放的所有資源信息,例如音視頻PID,PCR,字幕PID等。
    •  簡單的說,PMT完整的描述了一路節目是由哪些PES組成,給播放提供相應的資源。
    •  PAT與PMT 關系
  條件訪問表CAT
    •CAT提供了在一個或多個CA系統及其授權管理信息,用於節目的解擾工作。
    •如果在一個TS中任何原始流進行了加密處理,那么在TS中一定要插入CAT。
    •在CAT中,最重要的字段就是CA_descriptor()段。下面將簡單講述一下該描述段
    •CA_descriptor用來表示含有ECM或者是EMM信息的TS的PID,即CA_PID。
      –當CA_descriptor出現在PMT中時,CA_PID指向含有與訪問控制信息(ECM)相關的節目包。
      –當CA_descriptor出現在CAT中時,CA_PID指向含有與授權管理信息(EMM)相關的節目包。
    •CA_descriptor中幾個重要的字段如下:
      –CA_system_ID:該字段表示適用於相關ECM和/或EMM流的CA系統類型。其值是用戶定義的。
      –CA_PID:該字段表示傳送流包的PID,此包中含有由相應的CA_system_ID指明的CA系統的ECM或EMM信息,由CA_PID指明的包的內容(ECM或EMM)所在的上下文決定,既由TS中的PMT、CAT或節目流中的stream_id字段決定。
 網絡信息表NIT
  •NIT描述了一個DVB傳輸通道的所有物理參數,包括下列信息:
    –傳輸路徑(衛星、電纜、地面)
    –接收頻率
    –調制類型
    –誤碼保護
    –傳輸參數
  •機頂盒在掃描或變換信道時,可以存儲一個物理信道的所有參數,便於以后很快跳回該信道。
  •信道中也可以傳送相鄰或其他信道的傳輸參數,使得信道轉換靈活快捷。
  •如果NIT中的傳輸參數與實際不符,會對許多接收設備,如機頂盒,產生不可預知的影響。
    –如果NIT中的傳輸頻率與實際接收頻率不同,許多接收設備在沒有任何原因提示的情況下,不產生任何圖像和聲音。
  SDT
    •SDT包含對TS流中節目(服務)的更多詳細描述:
      –節目名稱,如CNN,CBS,Eurosport,ARD,ZDF,BBC,ACB,SBS等等
      –在提供節目PID的同時,SDT對用戶提供了文本信息。
      –通過提供文本列表,使得接收設備操作靈活。
    •BAT,與SDT密切相關:
      –BAT與SDT的PID相同,只是table ID不同。
      –SDT描述一個物理信道的節目結構。
      –BAT描述幾個或大量物理信道的節目結構。
  BAT
    •BAT表是由DVB定義的,是一個SI表,因此它是一個全局表,一個數字電視系統只對應一個BAT表,其table_id=0X4A。
    •一個節目類別對應一個段。為了讓受眾能更方便地在眾多的節目中尋找出自己喜歡的節目,往往需要提供一種把眾多的節目頻道進行分類的方法(一個類相當一個節目組)。
    •例如把電影頻道歸為“家庭影院”的類別,把電視連續劇歸為“電視劇場”的類別等等,BAT表就提供了這一功能,每一個類別都用一個bouquet_id
 來標識。它包括了節目業務名稱(類別)及節目組所包含的節目清單(節目列表)。BAT表在SI信息中屬於可選表 
  EIT
    •EIT(event information table)
      –即DVB中的EPG(electronic program guide)表
      –包含一天或一周內所有廣播的計划開始和結束時間。
      –結構非常靈活,允許傳送大量附加信息
      –不是所有機頂盒都支持這一特性
      – 事件信息表EIT按時間順序提供每一個業務所包含的事件的信息。按照不同table_id有四類EIT:
        –1) 現行傳輸流,當前/后續事件信息= table_id = "0x4E";
        –2) 其它傳輸流,當前/后續事件信息= table_id = "0x4F";
        –3) 現行傳輸流,事件時間表信息= table_id = "0x50" 至 "0x5F";
        –4) 其它傳輸流,事件時間表信息= table_id = "0x60" 至 "0x6F"。
      –現行傳輸流的所有EIT子表都有相同的transport_stream_id和original_network_id。
  TDT/TOT
    •機頂盒操作還需要傳輸當前時鍾和當前日期,分兩步:
      –TDT(time&date  table)
    •傳送GMT或UTC
    •即零度子午線的當前時刻
      –TOT(time offset table)
    •傳送不同時區各自適當的時間偏移量
      –TDT和TOT中的信息如何計算以及計算到什么程度,取決於機頂盒的軟件
      –對廣播時間信息的完全支持還需要機頂盒得到當前的位置信息:
    •對擁有多個時區的國家,如澳大利亞和美國,這個問題尤其重要。
  其它表
    •運行狀態表(RST):
      –運行狀態表給出了事件的狀態(運行/非運行)。運行狀態表更新這些信息,允許自動適時切換事件。
    •填充表(ST):
      –填充表用於使現有的段無效,例如在一個傳輸系統的邊界。
    •選擇信息表(SIT):
      –選擇信息表僅用於碼流片段(例如,記錄的一段碼流)中,它包含了描述該碼流片段的業務信息的概要數據。
    •間斷信息表(DIT):
      –間斷信息表僅用於碼流片段(例如,記錄的一段碼流)中,它將插入到碼流片段業務信息間斷的地方。
    
    
    
 
  TS流的形成:前段音視頻數據經過音視頻編碼器后音視頻數據流ES,ES經過分組器(打包器)形成一個個的分組,即PES(音視頻數據流ES的分組包,Packet ES,PES最長一般為188個字節);音視頻PES再經過復合器,從而形成傳輸流TS,傳輸流以傳輸流分組(TS Packet);TS Packet中的有效數據既可以是PES(音視頻ES分組包),也可以是PSI等信息數據,這個由TS Packet中的PID來指定負荷數據的類型;SI各表格是以SECTION為單位放到TS Packet中,因此不同的表格就要按標准遵循對應SECTION的語法;比如PMT表,PMT可能包含多個節目的描述,因此它可能會被划分為多個SECTION放到TS Packet中,遵循的語法就是TS_program_map_section() ;
    
 
    
     

    

    

    

 【通過碼流分析工具的查看,800來個 PID為0X191的401節目的PMT SECTION TS包都是一樣的】
  根據TS Packet 的語法,可以簡要分析下上面的數據包:
  同步字節段:0X47(8bit)
  傳輸錯誤指示字符段:0(1bit)
  有效負載數據單元起始指示符字段:1(1bit)
  傳輸優先級字段:0(1bit)
  PID:0x191(13bit)(PAT表中指定該PID的TS包為包含PMT SECTION數據的TS包)
  傳輸加擾控制字段:(0x0)(2bit)
  調整字段控制字段:0x01(無調整字段,只有有效負載)(2bit)
  連續性計數器字段:(4bit)
  數據字節字段:這些數據 有可能是PES包,有可能是PSI SECTION (由PID決定),如果沒有調整字段,從這開始就是負載數據了;
      若是PES數據,則這些負載數據通過PES分組語法來解析;
      若是PSI SECTION數據,則通過SECTION語法來解釋,可通過第一個table_id來確定是哪一個表的SECTION;
 
    
    
    
 
  
CAS原理:
     條件接收(CA)系統(CAS)是數字電視廣播(DVB)實行收費所必須采用的系統,也是數字電視平台不可缺少的部分,CAS負責完成用戶授權控制與管理信息的獲取、生成、加密、發送以及節目調度控制等工作,保證只有已被授權的用戶才能收看節目,從而保護節目制作商和廣播運營商的利益。
     在DVB前端,CAS將通過加擾器節目級復用器復用后的節目內容,即MPEG-2/DVB視頻、音頻和輔助數據傳輸流(TS), 與一個加擾偽隨機序列做XOR運算,這個偽隨機加擾序列就是控制字發生器提供的控制字CW
     CW被業務密鑰(SK加密處理后授權控制信息(ECM)數據流中傳送SK被用戶個人分配密鑰(PDK加密處理后,在授權管理信息EMM數據流中傳送,PDK存放在用戶智能卡(Smard Card)中
     已加擾的MPEG-2/DVB視頻、音頻和輔助數據傳輸流(TS)、ECM、EMM數據流、節目說明信息(PSI)和業務信息(SI)等數據流,經復用后,從發送端經傳輸信道傳送給接收端機頂盒(STB)。
     對於已經繳費的用戶,其智能卡會被授權,STB從接收到的已加擾傳輸流中,解復用出ECM和EMM數據流后送給智能卡,智能卡首先讀取PDK,用PDK對EMM解密得到SK,再用SK對ECM解密得到CW,利用CW由解擾器對已加擾傳輸流(TS)進行解擾后,再進行節目級解復用
    
    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM