gpt4 book ai didi

ffmpeg - 如何使用 ffmpeg 从 ts 中提取 "GROUP-ID"、 "LANGUAGE"和 "INSTREAM-ID"

转载 作者:行者123 更新时间:2023-12-04 23:12:00 25 4
gpt4 key购买 nike

我正在尝试从实时提要的片段中获取字幕。我正在运行命令ffmpeg -i seg-1077853030-v1-a1.ts 输出
`输入#0,mpegts,来自'seg-109853030-v1-a1.ts':
时长:00:00:06.01,开始:57867.901133,比特率:2649 kb/s
程序 1

Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], Closed Captions, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 98 kb/s
Stream #0:2[0x102]: Data: timed_id3 (ID3 / 0x20334449)`
我的问题是我应该运行什么命令来打印带有轨道元数据的字幕文件,包括标签和语言。

最佳答案

如果您的 MPEG-TS 文件是 HLS 段,则只需解析 HLS 主播放列表以检索值。
如果您的输入是从现场直播中捕获的,请继续阅读。

  • GROUP-ID

  • 您可以在 HLS 播放列表中设置此值以指示再现的组。
    见: https://www.rfc-editor.org/rfc/rfc8216#section-4.3.4.1.1
  • LANGUAGE

  • 这是事情变得有点复杂的地方。
    enter image description here
    CEA-608 字幕不包括语言代码。
    对于 CEA-708 和 608 over 708,这表示为 ATSC 程序和系统信息协议(protocol) (PSIP) 表的一部分,该表应存在于 PMT 和 EIT 中。
    Caption Service Descriptor
    Caption Service Descriptor (concluded)
  • cc_type - 0对于 608,1 708
  • line21_field - 当cc_type0 : 0对于字段 1(包括 channel CC1 和 CC2)和 1对于字段 2(包括 channel CC3 和 CC4)
  • caption_service_number - 当cc_type1
  • INSTREAM-ID

  • 这可以是 CC1 , CC2 (字段 1), CC3 , CC4 (字段 2)用于 CEA-608 - 其中 CC1 和 CC2 带有用于主要语言的正常且易于阅读的字幕,而带有用于辅助语言的 CC3 和 CC4 - 或格式为 SERVICEn用于 CEA-708 服务。
    如果有的话,这些应该在 CSD 中公布(见上文)。
    我不认为 FFmpeg 默认情况下会提取这些信息,因此您需要对其进行扩展或编写 MPEG-TS 解析器来检索信息。有一些用于解析 MPEG-TS 和处理字幕的库(例如: libcaption 由 StackOverflow 用户 @szatmary 提供)。
    如果您只想提取字幕,请使用 FFmpeg 或 ccextractor
    如果您想手动操作,可以使用一些软件,如 DVBInspector查看 PSI 内容:
    DVBInspector CSD

    关于ffmpeg - 如何使用 ffmpeg 从 ts 中提取 "GROUP-ID"、 "LANGUAGE"和 "INSTREAM-ID",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64926336/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com