MpegTS基础看这几篇博文:
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