You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python统计PGS格式字幕文件的条目数量

Python统计PGS格式字幕条目数的实现方法

PGS(Presentation Graphic Stream)是蓝光常见的图形字幕格式,其存储结构基于分段设计,每个独立的字幕显示条目对应一个演示合成段(PCS,Presentation Composition Segment),统计该类型段的数量即可直接得到字幕总条目数,全程不需要OCR、不需要转换为SRT格式、不需要解析字幕图像内容。

方法1:使用第三方库快速实现

  • 第一步:安装轻量PGS解析库pgsreader,无额外图像处理依赖
    pip install pgsreader
    
  • 第二步:调用代码统计
    from pgsreader import PGSReader
    
    def count_pgs_entries(pgs_file_path: str) -> int:
        pgs = PGSReader(pgs_file_path)
        entry_count = 0
        # 遍历所有字幕显示集,每个有效显示集对应1条字幕条目
        for display_set in pgs.iter_displaysets():
            if display_set.has_image:
                entry_count += 1
        return entry_count
    
    if __name__ == "__main__":
        # PGS格式文件通常后缀为.sup,替换为你的文件路径即可
        sup_file_path = "./example_subtitle.sup"
        total = count_pgs_entries(sup_file_path)
        print(f"字幕总条目数:{total}")
    

方法2:无第三方依赖的原生实现

如果不想安装额外库,可以直接解析PGS的二进制结构统计PCS段数量:

def count_pgs_entries_raw(pgs_file_path: str) -> int:
    # PGS段魔数、PCS段类型常量定义
    PGS_MAGIC = b'PG'
    PCS_SEGMENT_TYPE = 0x16
    entry_count = 0

    with open(pgs_file_path, "rb") as f:
        while True:
            # 读取9字节段头信息:2字节魔数 + 1字节段类型 + 4字节时间戳 + 2字节段长度
            header = f.read(9)
            if len(header) < 9:
                break
            # 校验是否为有效PGS段
            if header[:2] == PGS_MAGIC:
                segment_type = header[2]
                # 统计PCS段数量
                if segment_type == PCS_SEGMENT_TYPE:
                    entry_count += 1
                # 跳过当前段的内容部分,读取下一个段头
                segment_length = int.from_bytes(header[7:9], byteorder="big")
                f.seek(segment_length, 1)
            else:
                # 匹配不到魔数则跳过1字节继续校验
                f.seek(1, 1)
    return entry_count

if __name__ == "__main__":
    sup_file_path = "./example_subtitle.sup"
    total = count_pgs_entries_raw(sup_file_path)
    print(f"字幕总条目数:{total}")

两种方法的处理速度都非常快,GB级别的PGS文件也可以在数秒内完成统计。

内容的提问来源于stack exchange,提问作者santos82h

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 19:24:08