bslbf代表位串,即“Bit string, left bit first ”,

uimsbf代表无符号整数,即”unsinged integer, most significant bit first”,数字表示该数据项所占的比特数

又一解释:

bslbf (bit string, left bit first)  比特串,左位在先

uimsbf (unsigned integer,most significant bit first)  无符号整数,高位在先

                 ISO/IEC13818-1 TS 格式    

        
transport_packet(){    
  sync_byte                                   8  bslbf
  transport_error_indicator                   1  bslbf
  payload_unit_start_indicator                1  bslbf
  transport_priority                          1  bslbf
  PID                                        13  uimsbf
  transport_scrambling_control                2  bslbf
  adaptation_field_control                    2  bslbf
  continuity_counter                          4  uimsbf
  if(adaptation_field_control=='10'    ||
adaptation_field_control=='11'){
  
    adaptation_field()    
  }    
  if(adaptation_field_control=='01'  ||
adaptation_field_control=='11') {
  
    for (i=0;i<N;i++){    
      data_byte                               8  bslbf
    }    
  }    
}    
表6.1 TS Header 语法

Sync_byte:总是0x47
Transport_error_indicator:总是0
payload_unit_start_indicator:当传送RTP 数据时,’1’表示Payload 包含RTP Header(即
1 个RTP 包的开始),’0’表示Payload 不包含RTP Header;当传送PSI 信息时,’1’表示包含
PSI 信息的第一个字节(即完整PSI 信息的开头),’0’表示不是一个PSI 的开始。
transport_priority:总是0
PID:13 位,其中PID0x0000 代表PAT,PID 范围0x0001-0x000F 是保留的,PID 值0x1FFF 代表空包
transport_scrambling_control:总是0
adaptation_field_control:
00:备用
01:没有adaptation_field
10:只有adaptation_field,没有Payload
11:有adaptation_field,adaptation_field 之后是Payload
在本规范中, adaptation_field 只是用作填充。所以,只会用到值01、11。
具体的填充细节见“TS包的填充规范”
continuity_counter:
4Bit 的计数器,0000-1111。对于同一个PID,顺序的TS 包自动增长,到1111 后转到0000。
该字段用作RTP 组包的排序功能,以后可以扩展支持重传等其它功能。
对于Payload 不足184 字节的情况,要进行填充。填充采用adaptaion_field,而且在本规范
中adaptation_field 只是用作填充使用。
Adaptation_field 的语法如表6.2 所示:

               Syntax                                  No. of Bits Mnemonic
adaptation_field() {    
  adaptation_field_length                                     8  uimsbf
  if(adaptation_field_length >0) {    
    discontinuity_indicator                                   1  bslbf
    random_access_indicator                                   1  bslbf
    elementary_stream_priority_indicator                      1  bslbf
    PCR_flag                                                  1  bslbf
    OPCR_flag                                                 1  bslbf
    splicing_point_flag                                       1  bslbf
    transport_private_data_flag                               1  bslbf
    adaptation_field_extension_flag                           1  bslbf 
    if(PCR_flag == '1') {     
      program_clock_reference_base                           33  uimsbf
      Reserved                                                6  bslbf
      program_clock_reference_extension                       9  uimsbf
    }    
    if(OPCR_flag == '1') {    
      original_program_clock_reference_base                  33  uimsbf
      Reserved                                                6  bslbf
        original_program_clock_reference_extension            9  uimsbf
    }      
    if (splicing_point_flag == '1') {    
      splice_countdown                                        8  tcimsbf
    }    
    if(transport_private_data_flag == '1') {    
      transport_private_data_length                           8  uimsbf
      for (i=0; i<transport_private_data_length;i++){    
        private_data_byte                                     8  bslbf
      }    
    }    
    if (adaptation_field_extension_flag == '1' ) {    
      adaptation_field_extension_length                       8  uimsbf
      for ( i=0;i<adaptation_field_extension_length;i++) {    
        Reserved                                              8  bslbf
      }    
    }    
    for (i=0;i<N;i++){    
      stuffing_byte                                           8  bslbf
    }    
  }    
}    
adaptation_field_length:填充的具体字节数,不包括adaptation_field_length 这个字节。
如果值为’0’,表示没有其它的填充字节。这用来填充1 个字节的情况。 
discontinuity_indicator:总是’0’
random_access_indicator:总是’0’
elementary_stream_priority_indicator:总是’0’
PCR_flag:总是’0’
OPCR_flag:总是’0’
splicing_point_flag:总是’0’
transport_private_data_flag:总是’0’
adaptation_field_extension_flag:总是’0’
stuffing_byte: 填充字节为’0xff’。

ISO/IEC13818-1 TS 格式相关推荐

  1. avs3 ts格式封装 标准_超能课堂(204):多媒体容器格式变迁录

    从照相机.留声机诞生,解决了人们记录影像.声音的需求以来,人们就不断地追求着在有限的条件下尽可能地提高这些记录的品质,而从模拟时代过渡到数字时代以后,这方面的追求有一部分变成了在尽可能小的空间中提供尽 ...

  2. 视频解码研究之PTS(1)TS格式和FLV格式

    相关文章: 视频解码研究之PTS(1)TS格式和FLV格式 视频解码研究之PTS(2)Mp4格式,AVI格式和MKV格式 MKV格式的PTS解析代码 FLV格式的解复用和PTS分析代码 今天来讨论下P ...

  3. 多媒体文件格式:TS 格式

    一.TS 格式标准介绍 TS是一种音视频封装格式,全称为MPEG2-TS.其中TS即"Transport Stream"的缩写. 先简要介绍一下什么是MPEG2-TS: DVD的音 ...

  4. 多媒体文件格式-TS格式

    一.TS 格式标准介绍 TS是一种音视频封装格式,全称为MPEG2-TS.其中TS即"Transport Stream"的缩写. 先简要介绍一下什么是MPEG2-TS: DVD的音 ...

  5. 一起Polyfill系列:让Date识别ISO 8601日期时间格式

    一.什么是ISO 8601日期时间格式 ISO 8601是国际标准化组织制定的日期时间表示规范,全称是<数据存储和交换形式·信息交换·日期和时间的表示方法>. 示例: 1. 2014-12 ...

  6. 视频知识点(23)- TS格式详解指南

    *<音视频开发>系列-总览*(点我) 一.格式简介 TS视频封装格式,是一种被广泛应用的多媒体文件格式.它的全称是MPEG2-TS,其中TS是"Transport Stream& ...

  7. 视频文件M3U8和TS格式切片,讨论一下?

    写这篇文章之前,被自己否认了三连,因为只是出于对.ts格式视频文件的好奇才记录下来的一些笔记,做了个简单整理而已,既然最终决定了发出来,还是想同各位大佬学习下更多关于视频编码解码.流媒体.大文件上传时 ...

  8. android ts格式,MPEG2TS文件格式概述

    总结TS文件格式,早在几个月前就有了这个想法,但一直拖到今天才真正准备写一篇博文来介绍. 再不介绍的话,估计几月后又要去故纸堆里翻东西了,毕竟个人笔记中总结记录的东西太多,搞不好哪天给意外弄丢了. 1 ...

  9. ffmpeg系列之mp4与ts格式转换

    ffmpeg系列之mp4与ts格式转换 1. M3U 协议解析 1.1.Tag说明 2.HLS 与 M3U8 3.通过ffmpeg进行转换 3.1. mp4格式转换为ts格式 3.2. ts格式拼接命 ...

最新文章

  1. 重磅推出开发者计划、App Store,赛灵思普及自适应计算的一大步
  2. cmake使用示例与整理总结_QTVLC的博客-CSDN博客_cmake使用示例与整理 施公队演示时用的blog B zhan
  3. 解决403跨域问题之——————JSONP
  4. Fibonacci数列时间复杂度之美妙
  5. ORACLE系列异常总结ORA
  6. Java面试题:在一个递增的数组里面,找出任意两个数的和等于100,编写程序输出这些数对,可以假设数组中不存在重复元素
  7. c语言迭代法求平方根_求平方根问题 (C++ 实现)
  8. 输入一个正整数求所有素数因子_一起来聊聊素数的两个性质
  9. “约见”面试官系列之常见面试题第十一篇之canvas(建议收藏)
  10. 【LeetCode笔记】322. 零钱兑换(Java、动态规划)
  11. sql server 2005下开启xp_cmdshell的办法
  12. Kotlin的魔能机甲——KtArmor插件篇(二)
  13. Android应用开发的一些思考
  14. 海域网域名解析服务器,域名系统dns实现的映射是
  15. 安装 | MATLAB2020a (64位) 安装教程及安装包下载链接
  16. 数据中心规划设计参考-(文章以GB 50174为参考基准)
  17. 《RunningMan》评论及弹幕情感分析
  18. 贝叶斯算法(bayesian)在反垃圾邮件中的应用
  19. proxy代理配置及解析
  20. ICP、PL-ICP、PP-ICP、GICP对比

热门文章

  1. 自动化运维-Ansible(redhat 8)
  2. eclipse 项目中点击ctrl+左键不能进入方法
  3. 微信网页版营销软件 防撤回 自动同意加好友
  4. Fence Repair(优先队列)
  5. RAM,SRAM,SDRAM工作原理(很长)
  6. 苹果Usb连接linux,Mount iPhone in Linux using USB (ifuse, libiphone)
  7. 上海2345Android岗面经
  8. 谁是中国最大的门户网站??
  9. 深圳 不景气_为什么经济不景气会帮助社交网络
  10. 交通等时圈|可达性|Arcgis|Python