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

MpegTS解复用过程中,TS包由188字节组成,通常以0x47开头。通过解析TS包的标志、PID、错误标志等信息,可获取音视频的PES裸流。本文介绍了一个开源工具tsDemux的源码分析,展示了解复用到PES和ES的实现,适合深入学习TS的同学参考。完整源码可在CSDN下载。
摘要由CSDN通过智能技术生成

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 timecode = 0;

	const char* end_ptr = ptr + 1
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值