ps文件分析
PS文件有三种类型的: vob dat mpg
PS_DAT_PACK_SIZE 2352
PS_VOB_PACK_SIZE 2048
PS_MPG_PACK_SIZE 2324
与TS文件类似,是固定包长的。
打开文件,可以看到文件以0x0000 01B9结束,即 MPEG_Program_end_code,
之前有很多个0x0000 00BA字段,即为program pack的开始标志,代表每个packet的开始。
program packet 的结构如下所示:
可以看出program pack由3部分组成:pack_header+system_header+PES_packets,其中system_header当且仅当pack是第一个数据包时才存在。
1 system_header
2 packet header
第 5 个byte的 前两个比特 reserved中,左边为 01 ,右边为 00, 分别表示左边为 MPEG2,右边为MPEG1,所以上边packet header结构图是mpeg2的。
3 PES packet
第一个packet的 PES packet:起始地址:0x0000 0020
packet_start_code_prefix(3B):0x 00 00 01
stream_id(1B):0xBE(BE为Padding stream)
PES_packet_length(2B):0x07 DA,跳过该长度的填充字节,刚好为下一个pack的起始标志:0x000001BA 。 从0x0800地址开始为第二个pack包, 该包的构