我有一个大的 MPEG (.ts) 二进制文件,通常是 188 字节的倍数,我使用 python3,当我每次读取 188 字节并解析以获得所需的值时,我发现它真的很慢。我必须遍历每个 188 字节的数据包以获取 PID(二进制数据)的值。
- 同时,当我使用任何 MPEG 离线专业分析仪时,他们会在 45 秒内获得所有 PID 值及其总计数的列表,持续时间为 5 分钟的 TS 文件,而我的程序需要 10 分钟以上才能得到相同的结果。
- 我不明白他们能多快找到,即使它们可能是用 c 或 c++ 编写的。
- 我尝试了 python 多处理,但它没有多大帮助。这意味着我解析和处理 188 字节数据的方法不正确并导致巨大的延迟。
`with open(file2,'rb') as f:
data=f.read(188)
if len(data)==0: break
b=BitStream(data)
... #parse b to get the required value
... # and increase count when needed
...
cnt=cnt+188
f.seek(cnt)`