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

如何通过ffmpeg-python提取.ts文件的Program列表与对应service_name

解决方案

1. FFmpeg套件原生支持直接导出结构化数据

不用手动解析普通命令行的文本日志,FFmpeg自带的ffprobe工具专门用于媒体信息探测,可直接输出JSON格式的Program元数据,命令如下:

ffprobe -v quiet -print_format json -show_programs .\log_dvbs.ts

输出结果中programs数组下的每一项对应一个Program,tags字段里就包含你需要的service_name、service_provider信息,结构稳定不会随版本变动出现解析异常。

2. 完全可以用ffmpeg-python实现需求

ffmpeg-python封装了ffprobe的探测能力,不需要手动调用命令、处理进程输出,直接调用内置的probe方法即可拿到解析好的Python字典对象,参考代码如下:

import ffmpeg

# 读取TS文件的Program信息
media_info = ffmpeg.probe(r".\log_dvbs.ts", show_programs=True)
result = []

for prog in media_info["programs"]:
    result.append({
        "program_id": prog["program_id"],
        "service_name": prog["tags"].get("service_name", ""),
        "service_provider": prog["tags"].get("service_provider", "")
    })

# 打印导出的列表
for item in result:
    print(f"Program {item['program_id']}: {item['service_name']}")

运行上面的代码就能直接得到Program ID和对应service_name的映射列表。

内容的提问来源于stack exchange,提问作者Mohammad Hassan Shammakhi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 16:06:03