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

如何使用GStreamer从.ts文件中提取CEA-608/CEA-708格式的隐藏字幕至TXT文件

如何使用GStreamer从.ts文件中提取CEA-608/CEA-708格式的隐藏字幕至TXT文件

你好呀!你之前尝试的命令没生效,核心原因是filesink没法直接处理CEA-608/708这种原始字幕流——它输出的是二进制数据,不是可读的文本格式。得先把字幕解码并转换成纯文本,才能写入TXT文件。下面给你几个实用的解决方案:

方案1:针对CEA-608字幕的精准提取

如果你的TS文件里是CEA-608格式的字幕,可以用这条命令:

gst-launch-1.0 filesrc location=a.ts ! tsdemux name=demux demux. ! queue ! cea608dec ! cc2txt ! filesink location=subtitles.txt
  • tsdemux:负责把TS文件里的音视频、字幕轨道分离开
  • cea608dec:专门解码CEA-608格式的隐藏字幕
  • cc2txt:把解码后的字幕转换成纯文本格式
  • filesink:最终把文本写入指定的TXT文件

方案2:针对CEA-708字幕的提取

如果是CEA-708格式,只需要把解码元素换成cea708dec就行:

gst-launch-1.0 filesrc location=a.ts ! tsdemux name=demux demux. ! queue ! cea708dec ! cc2txt ! filesink location=subtitles.txt

方案3:通用自动识别方案(兼容两种格式)

要是不确定字幕是哪种格式,或者想省事,可以用decodebin自动识别并处理轨道,这条命令通用性更强:

gst-launch-1.0 filesrc location=a.ts ! decodebin name=d d. ! queue ! cc2txt ! filesink location=subtitles.txt

decodebin会自动检测输入流里的所有可用轨道,包括字幕,然后自动调用对应的解码器,不用你手动指定是CEA-608还是708,非常方便。

补充说明

你之前的命令直接把原始CEA-708流写入了文件,那是二进制编码的数据,不是可读文本,所以打开后肯定看不到正常字幕内容。必须经过解码+文本转换这两步,才能得到清晰的TXT字幕文件哦。

备注:内容来源于stack exchange,提问作者Amgad Eid

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 07:59:36