如何从 MPEG TS 文件中提取 EPG 数据?

rog*_*ack 9 mpeg dvb-t

我有能力捕获“MPEGTS”DVB/ATSC 流。我希望能够获取 TS 文件并从中提取“EPG”(编程指南)信息,因为 FFmpeg(进行捕获)似乎无法从 MPEGTS 流中读取任何 EPG 信息. 如何将这些数据提取为某种人类可读的文本形式?我有可用的 MPEGTS 文件作为输入。我尝试了几个库:

libdvbtee 似乎只为 unix 编译:https : //github.com/mkrufky/libdvbtee/issues/12(更新:它现在适用于 Windows,请参阅答案)

DVBInspector 仅是 GUI(此处需要命令行 UI)。

TSReader“免费”版本不提取EPG。

FFmpeg 似乎“还”没有任何支持 EPG 的概念。

CherryEPG好像只会写,不会读 EPG。

libucsi显然可以做到,但不清楚是否有命令行选项。

EPG 收集器似乎只是 GUI (?) 并且很难理解如何转换为人类可读的输出。

mkr*_*fky 10

由于您发布了这个问题,我已经继续并修复了对 Windows 的构建支持 libdvbtee

libdvbtee是一个开源的传输流服务信息解码器库 ( mkrufky.github.io/libdvbtee ),您可以使用它来查看嵌入在任何TS文件中的 EPG 或任何其他服务信息。使用以下命令:

dvbtee -F mpegfile.ts
Run Code Online (Sandbox Code Playgroud)

如果添加的-j选项,它也将输出的内容PSIP表和descriptors一个JSON对象:

dvbtee -F mpegfile.ts -j 
Run Code Online (Sandbox Code Playgroud)

  • @BruceAdams,如果您正在寻找“dvbtee”的 Windows 版本,OP 海报在 https://github.com/rdp/ffmpeg-windows-build-helpers 上设置了交叉构建 (2认同)