ISO/IEC13818-1 TS 格式
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 格式相关推荐
- avs3 ts格式封装 标准_超能课堂(204):多媒体容器格式变迁录
从照相机.留声机诞生,解决了人们记录影像.声音的需求以来,人们就不断地追求着在有限的条件下尽可能地提高这些记录的品质,而从模拟时代过渡到数字时代以后,这方面的追求有一部分变成了在尽可能小的空间中提供尽 ...
- 视频解码研究之PTS(1)TS格式和FLV格式
相关文章: 视频解码研究之PTS(1)TS格式和FLV格式 视频解码研究之PTS(2)Mp4格式,AVI格式和MKV格式 MKV格式的PTS解析代码 FLV格式的解复用和PTS分析代码 今天来讨论下P ...
- 多媒体文件格式:TS 格式
一.TS 格式标准介绍 TS是一种音视频封装格式,全称为MPEG2-TS.其中TS即"Transport Stream"的缩写. 先简要介绍一下什么是MPEG2-TS: DVD的音 ...
- 多媒体文件格式-TS格式
一.TS 格式标准介绍 TS是一种音视频封装格式,全称为MPEG2-TS.其中TS即"Transport Stream"的缩写. 先简要介绍一下什么是MPEG2-TS: DVD的音 ...
- 一起Polyfill系列:让Date识别ISO 8601日期时间格式
一.什么是ISO 8601日期时间格式 ISO 8601是国际标准化组织制定的日期时间表示规范,全称是<数据存储和交换形式·信息交换·日期和时间的表示方法>. 示例: 1. 2014-12 ...
- 视频知识点(23)- TS格式详解指南
*<音视频开发>系列-总览*(点我) 一.格式简介 TS视频封装格式,是一种被广泛应用的多媒体文件格式.它的全称是MPEG2-TS,其中TS是"Transport Stream& ...
- 视频文件M3U8和TS格式切片,讨论一下?
写这篇文章之前,被自己否认了三连,因为只是出于对.ts格式视频文件的好奇才记录下来的一些笔记,做了个简单整理而已,既然最终决定了发出来,还是想同各位大佬学习下更多关于视频编码解码.流媒体.大文件上传时 ...
- android ts格式,MPEG2TS文件格式概述
总结TS文件格式,早在几个月前就有了这个想法,但一直拖到今天才真正准备写一篇博文来介绍. 再不介绍的话,估计几月后又要去故纸堆里翻东西了,毕竟个人笔记中总结记录的东西太多,搞不好哪天给意外弄丢了. 1 ...
- ffmpeg系列之mp4与ts格式转换
ffmpeg系列之mp4与ts格式转换 1. M3U 协议解析 1.1.Tag说明 2.HLS 与 M3U8 3.通过ffmpeg进行转换 3.1. mp4格式转换为ts格式 3.2. ts格式拼接命 ...
最新文章
- 重磅推出开发者计划、App Store,赛灵思普及自适应计算的一大步
- cmake使用示例与整理总结_QTVLC的博客-CSDN博客_cmake使用示例与整理 施公队演示时用的blog B zhan
- 解决403跨域问题之——————JSONP
- Fibonacci数列时间复杂度之美妙
- ORACLE系列异常总结ORA
- Java面试题:在一个递增的数组里面,找出任意两个数的和等于100,编写程序输出这些数对,可以假设数组中不存在重复元素
- c语言迭代法求平方根_求平方根问题 (C++ 实现)
- 输入一个正整数求所有素数因子_一起来聊聊素数的两个性质
- “约见”面试官系列之常见面试题第十一篇之canvas(建议收藏)
- 【LeetCode笔记】322. 零钱兑换(Java、动态规划)
- sql server 2005下开启xp_cmdshell的办法
- Kotlin的魔能机甲——KtArmor插件篇(二)
- Android应用开发的一些思考
- 海域网域名解析服务器,域名系统dns实现的映射是
- 安装 | MATLAB2020a (64位) 安装教程及安装包下载链接
- 数据中心规划设计参考-(文章以GB 50174为参考基准)
- 《RunningMan》评论及弹幕情感分析
- 贝叶斯算法(bayesian)在反垃圾邮件中的应用
- proxy代理配置及解析
- ICP、PL-ICP、PP-ICP、GICP对比
热门文章
- 自动化运维-Ansible(redhat 8)
- eclipse 项目中点击ctrl+左键不能进入方法
- 微信网页版营销软件 防撤回 自动同意加好友
- Fence Repair(优先队列)
- RAM,SRAM,SDRAM工作原理(很长)
- 苹果Usb连接linux,Mount iPhone in Linux using USB (ifuse, libiphone)
- 上海2345Android岗面经
- 谁是中国最大的门户网站??
- 深圳 不景气_为什么经济不景气会帮助社交网络
- 交通等时圈|可达性|Arcgis|Python