MpegTS流解复用程序实现(解复用得到PES和ES)

MPEG2-TS基础 一:基本概念 1.ES--Elementary Streams(原始)是直接从编码器出来的数据ES经过PES打包器之后,转换成PES包。 ES仅是包含一种数据内容的数据,如h.264视频或者aac音频数据。打包之后的PES也是只包含一种的ES,如只含视频ESPES或者只含音频ESPES。每个ES都由若干个存取单元(AU)组成,每个视频AU或者音频AU都由头部编码数据两部分组成,一 阅读详情

MpegTS基础看这几篇博文:

MpegTS基础

MpegTS之TS,PES,ES结构分析


TS流复用和解复用是一个相逆的过程。TS解复用得到的是音视频的PES裸流。一般来讲,每个TS包的长度是188个字节,也有一种204个字节的,就是在每个包后面加上16个字节的RS冗余校验信息。在这里分析188个字节的情况,其余的都类似了。

从文件中循环读取188个字节的包,然后对包进行逐字节分析,分析流程如下:

TS包的标志是首字节以0x47开头

如下图是一个ts包:


按位解析,得到pid,flag,错误标志,负载类型,PSI, PMI等信息。

源码分析如下:该源码是从一开源工具tsDemux截取,所有的ts流的解析过程无非也就是整么一个过程了。

<span style="font-family:SimHei;font-size:18px;">int ts::demuxer::demux_ts_packet(const char* ptr)
{
	u_int32_t
TS 数据分析学习 TS 、包结构以及同步 1. TS : 可以将TS理解为一种单一码、混合码。   单一码TS的基本组成单位是长度为188字节的TS包。 混合码TS有多种数据组成,一个TS包中的数据可以是视频数据、音频数据、填充数据,PSI/SI表格数据.....(唯一的PID对应) 2. TS 包结构分析:   TS 包由包头、有效载荷区组成。(有些包中包... 阅读详情

相关推荐

TS文件格式深度解析:从传输原理到FFmpeg解封装实战

传输(Transport Stream,TS)是媒体与数字广播领域的核心容器格式,其设计初衷是在不可靠信道中实现音视频数据的稳定传输。TS格式基于固定188字节的传输包结构,通过包标识符(PID)节目映射表(PMT)实现多路复用的数据分拣,并利用连续计数器适配域等机制保障容错与同步。这一技术为数字电视(DVB)、IPTV及HLS、MPEG-DASH等低延迟直播提供了基础传输层支持,广泛应用于广电制作与网络媒体场景。理解TS的包结构与解复用原理,是处理TS文件播放、转换与分析问题的关键。本文结合FF

weixin_33696822的博客 448

mpeg2ts分离器源代码

实现mpeg2-ts音频视频分析。把分离过程封装成一个类。

MPEGTSTS解复用完整代码示范

TS解复用完整示范,可获取PES数据,ES数据以及相关打印。

手写解复用(一):TS解析

纯C代码实现TS解复用

FlightYe的专栏 1010

从mpeg ts文件中提取I帧(3)pes包的解析

本系列的第一篇文章讲解了如何把ts包拼装为pes包,本章主要讲解如何解析pes包。 一、pes包的格式如下图所示: 二、相关字段解析 packet_start_code_prefix         标识包起始端的包起始码。固定值为  0000 0000 0000 0000 0000 0001 (0x000001) stream_id                                ...

maxzero的专栏 2644

mpegts介绍

声明: 这里主要介绍FFmpeg 中mpegts这个封装格式,希望可以对大家有所帮助。 介绍: mpegts : 对应的是封装层代码,在解码过程中对应的是下面的解封装。经过解封装之后,获得音视频对应的es数据。 我们看电视的时候之所以可以每次切台都可以接着看,而DVD换碟片就要重头开始看,这是因为电视在切台后会发送PATPMT。通过PAT我们可以确定PMT的pid,同时接收有与之pid匹配的PMT,而通过PMT我们可以知道将要获得的音视频的pid。之后我们接收与...

静祥阁 8872

MPEG2 TS 小结(二)

前面3节总结了MPEG2 TS的基本格式,其中包括PES,PSTS,以及相关字段的介绍。那么作为一种传输TS将内容进行打包/复用,让其媒体内容变成TS传输,并最终在解码端解码。简单来看,TS是一个传输层的协议栈,它可以承载各种内容的传输,比如MPEG,WMV,H264,甚至是IP,那么其中的传输规范是如何定义的呢?这个即是PSI(节目特定信息)要做的事情。         PSI由四张表构

dssxk的专栏 772

MPEG2 TS小结(五)

http://blog.csdn.net/u013354805/article/details/51543666 版权声明:本文为博主原创文章,未经博主允许不得转载。 1. 应该说真正了解TS,还是看了朋友推荐的《数字电视业务信息及其编码》一书之后,MPEG2 TS数字电视是紧密不可分割的,值得总结一下其中的一些关系。 ISO/IEC-1

STN_LCD的专栏 645

TS解复用程序

TS解复用工程。具体的请参考我的博文<> http://blog.csdn.net/rootusers/article/details/43528261

tsdemuxTS解复用源代码)

mpeg2的ts解析,按照实际播放媒体的过程来实现,从pat表分析出pmt表内容,从pmt表内容分析es的pid,然后把video,audio内容的es 输出相应pid名的文件。

ts demux解复用

参考dvbsnoop,写的一个简单的ts demux解复用测试程序。 不管是ts格式封装的媒体文件,还是实时的卫星、地面、有线数字广播码,其核心都是ts格式的数据包。但是使用者期望获取到的可能会是TSPES、PSI/SI Section的数据。所以需要实现一个Demux模块,输入ts包,解析出这3种格式的数据。 dvbsnoop是一个非常强大的DVB分析器,源代码里有很多技巧值得学习。ts_demux即是参考了其处理ts文件的部分代码。以后再上传解析DVB PSI/SI Section数据的模块。

TS复用解复用程序

TS复用解复用的源代码,很好的学习TS的资料。mpeg2

ffmpeg中hls.c代码分析

HLS在播放时是先解协议(hls.c)后解封装(mpegts.c),libavformat下的hls.cmpegts.c实际上是同一个级别的,同属于demuxer。 一、解HLS协议 1.FFmpeg代码分析 首先看一下ff_hls_demuxer的定义: AVInputFormat ff_hls_demuxer = { .name = ...

yihuanyihuan的博客 2581

TSPAT/PMT详解

一 从TS开始 从MPEG-2到DVB,看着看着突然就出现了一大堆表格,什么PAT、PMT、CAT……如此多的表该怎样深入了解呢? 我们知道,数字电视机顶盒接收到的是一段段的码,我们称之为TS(Transport Stream,传输),每个TS都携带一些信息,如Video、Audio以及我们需要学习的PAT、PMT等信息。因此,我们首先需要了解TS是什...

weixin_33752045的博客 172

MPEG2 TS概念总结

应该说真正了解TS,还是看了朋友推荐的《数字电视业务信息及其编码》一书之后,MPEG2 TS数字电视是紧密不可分割的,值得总结一下其中的一些关系。 ISO/IEC-13818-1:系统部分; ISO/IEC-13818-2:视频; ISO/IEC-13818-3:音频; ISO/IEC-13818-4:一致性测试; ISO/IEC-13818-5:软件部分; ISO/IEC-1381

影音视频技术 3996

TS格式深度解析:从封装原理到媒体问题排查实战

媒体传输领域,封装格式是确保音视频数据可靠、同步传输的基石。MPEG-2 Transport Stream(TS)作为一种专为不可靠网络设计的容器格式,其核心原理在于通过固定包长、PID标识、PCR时钟同步等机制,实现了多路节目的复用与抗干扰传输。这一设计不仅保障了数字广播IPTV的稳定播出,更成为HLS等主媒体协议的底层支撑。理解TS格式的封装层次(从ESPESTS包)与关键结构(如PAT/PMT表),是进行媒体深度问题诊断(如卡顿、花屏、音画不同步)定制化处理(如文件修复、分析)的技

weixin_33722405的博客 322
上一篇: FFMPEG实现的转码程序
下一篇: FFMPEG实现H264的解码(从源代码角度)
BIGBurning
博客等级 码龄12年 625粉丝 59原创
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值