深入浅出 MPEG-TS:为“传输”而生的封装格式
目录一、TS 是什么二、TS 的分层与包结构1. TS 包188 字节定长2. PSITS 流的“导航地图”3. 时钟同步机制三、TS 的核心特点1. 固定小包强抗误码2. 任意位置可解码3. 原生多节目复用4. CBR 友好5. 直播分片天然适配缺点同样明显四、TS vs 常见封装格式重点对比TS vs MP4ISO BMFFTS vs fMP4 / CMAFTS vs MKVMatroskaTS vs FLVTS vs PSProgram Stream五、典型应用场景六、总结觉得有用就请您帮忙点赞转发收藏吧您的鼓励是我创作的动力多谢看官。由于能力水平有限文中的错误或不严谨的地方在所难免还请批评指正。传送流Transport StreamTS流是由MPEG组织发布的MPEG-2标准定义的数据流格式遵循ITU-T H.222.0及ISO/IEC 13818系列协议 。该格式包含同步字节、数据包识别号PID及负载内容其传输包长度固定为188字节 。TS流最早应用于DVD的实时传送节目 作为IPTV关键技术适用于可能发生严重错误的环境下传输单路或多路节目编码数据 。传送流支持多节目复用传输 。其复用技术涉及ES流、PES流与TS流的转换需处理音视频同步及PCR参数修正问题 。编码器实现需提取时间参数PCR,PTS,DTS并通过视频压缩芯片与音频编码方案完成原始流复用 。传输层面支持TS/UDP和TS/RTP/UDP协议采用SBPCR流控算法与RTP自适应算法结合方案 。在IPTV系统中TS流封装后使用IP网络传输且TS流之上一般采用RTP机制进行传输。随着数字电视发展MPEG-2 TS流监控系统用于数字电视信号监控 。此外TS流已被现代操作系统作为标准媒体类型支持 。一、TS 是什么TS 全称MPEG-TSMPEG Transport Stream传输流定义在ISO/IEC 13818-1MPEG-2 Systems后缀通常是.ts蓝光变种叫.m2ts/.mts。它和 MP4 根本不是一类东西MP4 是为存储设计的容器box 结构、有全局索引 moovTS 是为传输设计的容器固定小包、可任意位置切入、抗丢包一句话定位TS 用「固定 188 字节小包 PID 路由 PSI 导航表」把音视频塞进一条可以边传边丢边恢复的流里。二、TS 的分层与包结构TS 的封装链路是ES编码裸流 H264/AAC ↓ 加 PTS/DTS PES包化基本流 ↓ 按 184 字节切块 加 4 字节头 TS 包固定 188 字节 ↓ 多路 PID 交织复用 Transport Stream1. TS 包188 字节定长区域大小作用Sync Byte1B0x47扫描它就能重新同步流TS Header3BPID、错误标志、起始标志、CC 计数等Adaptation Field可选PCR 时钟、填充字节、随机接入点Payload剩余PES 分片 或 PSI 表数据Header 里最关键的字段PID13 bit相当于“物流单号”。视频、音频、字幕、PAT、PMT 各占一个 PID0x0000PAT总目录0x0001CAT加密0x1FFFNull 包填比特率用continuity_counter4 bit同 PID 包 0~15 循环跳变 丢包payload_unit_start_indicator标记 PES 包开头adaptation_field_control本包是纯负载 / 纯适配域 / 两者都有DVB 场景还有 204 字节变种188 16 字节 RS 纠错。2. PSITS 流的“导航地图”光有 PID 不够播放器得知道“PID 256 是视频还是音频”靠两张表PATProgram Association TablePID 固定0x0000告诉你说Program 1 → PMT 在 PID 0x100Program 2 → PMT 在 PID 0x101PMTProgram Map Table每个节目一张列出该节目下视频 PID、音频 PID、字幕 PID以及 stream_type如 0x1BH2640x0FAAC解析顺序永远是扫 0x47 → 找 PID 0 → 读 PAT → 拿 PMT PID → 读 PMT → 按 PID 抽音视频。3. 时钟同步机制PCRProgram Clock Reference27MHz 基准放在适配域解码器用来锁时钟PTS/DTS90kHz 基准放在 PES 头控制音画同步和解码顺序这就是为什么 TS 在广播里“换台瞬间就有声画”而不用等全局索引。三、TS 的核心特点1. 固定小包强抗误码188 字节一包错一个包只毁一包接收端扫0x47能随时重新同步。卫星、地面波、有线那种误码率高的信道它是天选之子。2. 任意位置可解码不需要头索引从流中间切进去直播换台、HLS 切 ts 分片都能靠 PAT/PMT 重建播放。3. 原生多节目复用一路 TS 里可以塞几十个“节目”电视台频道各自 PID 隔离机顶盒按 PID 过滤就行。4. CBR 友好靠 Null 包0x1FFF填零维持恒定码率符合 DVB/ATSC 广播规范。5. 直播分片天然适配HLS 早期标准就是.m3u8 一串 .ts每个 ts 分片自带 PAT/PMT可独立播放。缺点同样明显无全局索引Seek 慢本地播放不如 MP4无章节/标签/现代字幕WebVTT/ASS 支持弱只能 DVB subtitle / teletext有冗余Null 包 表重复发送体积比 MP4 大 10%~15%Codec 范围窄主要是 H264/H265/AAC/AC3/MPEG2不像 MKV 啥都塞四、TS vs 常见封装格式重点对比TS vs MP4ISO BMFF维度MPEG-TSMP4结构188B 定长包box/atommoovmdat索引无全局索引moov 集中索引随机访问任意字节切入必须先有 moov容错丢包可恢复moov 坏全废Seek扫 PCR慢秒跳场景广播/IPTV/HLS 传统直播点播/下载/本地拼接cat a.ts b.ts同 PID 可直接连必须处理 moov结论直播传输选 TS存储分发选 MP4。TS vs fMP4 / CMAF现代 HLSDASH 双栈基本转向fMP4分片 MP4 / CMAF分片内部有 moof/mdat仍支持随机接入开销比 TS 小支持 Low-Latency HLS / LL-DASH一套段同时喂 HLS 和 DASHTS 在苹果生态和老 IPTV 里还没退场但新项目直播首选 fMP4。TS vs MKVMatroskaMKV为“归档和播放”而生支持几乎任意 codec、章节、多字幕、附件TS为“传输”而生灵活度低但信道鲁棒性强本地收藏转 MKV直播推流用 TSTS vs FLVFLV曾经 RTMP 直播标配变长 tag结构比 TS 简单但容错弱、不支持多节目、H265/OPUS 支持靠私增 tagTS广播级 PSI/PID/PCR 体系完整FLV 更像“简化版传输容器”现在 RTMP 衰落FLV 也主要在旧直播链路里吃灰TS vs PSProgram StreamPSDVD 的 VOB 之类变长包适合误码少的存储TS定长包适合误码多的传输两者同属 MPEG-2 Systems双子星五、典型应用场景广电数字电视DVB / ATSC / ISDB 的底层容器IPTV 组播UDP/RTP 承载 MPEG-TS苹果 HLS 传统分片.ts.m3u8蓝光 BDMV / AVCHD 摄像机M2TS 变种直播转码中间格式FFmpeg 经常mpegts做管道传输监控/卫星接收落盘不适合的场景本地电影收藏用 MKV/MP4、短视频点播MP4、现代低延迟直播fMP4/CMAF、需要软字幕和标签的媒体库。六、总结TS 不是“视频格式”是面向丢包信道的传输容器理解 TS 只需要记住三件事188 字节定长包、PID 寻址、PAT/PMT 导航它用冗余和固定结构换传输可靠性MP4/MKV 用索引和变长换存储效率现在做直播老链路 TS 还在跑新链路 fMP4 上位做本地别用 TS

相关新闻

从入门到企业级:AI Agent项目实战指南与求职技能提升

从入门到企业级:AI Agent项目实战指南与求职技能提升

这次我们来看一个关于 AI Agent 开发求职与技能提升的实战话题。如果你已经学习了 Agent、RAG、MCP 等热门概念,但在求职面试中仍被评价为“技能太入门”,那么这篇文章正是为你准备的。核心问题不在于你学了什么,而在于你是否能将知识转化为解…

2026/10/17 6:50:00 阅读更多 →
告别 DLL 报错:VisualCppRedist AIO 一次补齐全部 Visual C++ 运行库

告别 DLL 报错:VisualCppRedist AIO 一次补齐全部 Visual C++ 运行库

告别 DLL 报错:VisualCppRedist AIO 一次补齐全部 Visual C 运行库 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你有没有过这样的经历&#xff1a…

2026/10/11 6:22:51 阅读更多 →
044、坏点校正的漏检与误杀——静态表+动态检测的互补策略——从单像素坏点到cluster坏点的检测算法设计与极限case处理

044、坏点校正的漏检与误杀——静态表+动态检测的互补策略——从单像素坏点到cluster坏点的检测算法设计与极限case处理

044、坏点校正的漏检与误杀——静态表动态检测的互补策略——从单像素坏点到cluster坏点的检测算法设计与极限case处理 昨晚在实验室盯着一块Sensor的RAW图,越看越觉得不对劲。暗场下明明做了坏点校正,画面里却还是星星点点地闪着白点,不是那…

2026/10/17 0:20:46 阅读更多 →

最新新闻

DbUtils下划线转驼峰:BeanHandler列名映射全解析

DbUtils下划线转驼峰:BeanHandler列名映射全解析

大概每个写过 JDBC 报表查询的 Java 开发者,都经历过类似的场景:数据库表里明明写着user_name、create_time,Java 实体类里是userName、createTime,用 Apache Commons DbUtils 的BeanHandler一查,返回的对象里全是 nul…

2026/10/17 7:47:13 阅读更多 →
CPU空闲但服务器卡顿?磁盘I/O瓶颈排查与优化实战

CPU空闲但服务器卡顿?磁盘I/O瓶颈排查与优化实战

老板扔来一句“服务器卡死了,赶紧看看”,你登上机器一瞧:CPU 是空闲的,内存也够用,load average 却飙到了几十,整个系统慢得像幻灯片。这时候你要是跟老板说“磁盘I/O的问题”,他没概念&#xf…

2026/10/17 7:47:13 阅读更多 →
从Java转行RAG应用开发:索引、向量存储与提示增强实战指南

从Java转行RAG应用开发:索引、向量存储与提示增强实战指南

1. 转行前的认知准备:RAG不是调API那么简单我的技术起点是Java后端,写过几年CRUD、调过接口、处理过分布式事务,也维护过几个高并发的服务。大模型应用刚开始流行的时候,我很自然地以为转行门槛很低:会调API、会写点Py…

2026/10/17 7:47:13 阅读更多 →
UDP套接字编程实战:从底层原理到应用层可靠传输

UDP套接字编程实战:从底层原理到应用层可靠传输

做了这么多年网络编程,我一直觉得UDP数据报套接字编程是个被低估的方向。很多人一提到UDP就想到“不可靠”“会丢包”,然后直接绕道选TCP。但在实时音视频、游戏同步、设备状态上报这类场景里,UDP不仅没被淘汰,反而因为低延迟和数…

2026/10/17 7:47:13 阅读更多 →
AI智能体火爆秋招!月薪63160元,小白也能抓住这波红利,速收藏!

AI智能体火爆秋招!月薪63160元,小白也能抓住这波红利,速收藏!

本文分析了AI智能体岗位的快速增长趋势,包括招聘数据、薪资水平以及企业需求。文章指出,AI智能体开发人才需求旺盛,供需比高达2.62:1,成为AI行业中增速领先的方向。企业对AI智能体人才的需求已升级为“懂技术、懂场景、懂交付”的…

2026/10/17 7:47:13 阅读更多 →
深入理解 I/O 多路复用:从 select/poll 到 epoll 高并发实战

深入理解 I/O 多路复用:从 select/poll 到 epoll 高并发实战

如果你写过网络服务器,迟早会被这么一个问题卡住:一个进程到底怎么同时照顾几百上千个连接?很多初学者第一反应是开线程,一个连接一个线程,结果连接一多,CPU先飙了,内存也吃不消。这个问题的标准…

2026/10/17 7:46:12 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →