首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在直播流中使用FFMpeg将dvb字幕转换为文本格式,或者如何优化dvb刻录过程?

如何在直播流中使用FFMpeg将dvb字幕转换为文本格式,或者如何优化dvb刻录过程?
EN

Stack Overflow用户
提问于 2018-10-28 17:49:41
回答 2查看 3.5K关注 0票数 3

我正在做一个从任何格式到hls的HLS转码器,我需要同时用格式"dvbsub“编码多个字幕,以便由解释m3u8 HLS播放列表的客户端选择。

主要问题是以这种方式将每个dvbsub烧成一个实时视频流:

代码语言:javascript
复制
 "-filter_complex "[0:v][0:s:0]overlay[v0];[0:v][0:s:1]overlay[v1];[0:v][0:s:2]overlay[v2];......"

是一项非常密集的CPU任务。(我在同一流中有8个或更多的dvbsub )。

是否有人知道如何将每个dvbsub转换为文本格式(例如webvtt),或者是否有优化流程的方法?(我试着用NVIDIA gpu执行这个燃烧过程,但没有取得任何改进)

我读到了一些OCR程序,它们可以完成这项任务,但是经过几天的研究,我仍然不知道如何去做。

提前谢谢。

编辑:输入是一个实时的UDP信号。我需要在飞行中进行改造。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-05 09:10:46

使用cc提取器(https://github.com/CCExtractor/ccextractor),您可以提取dvbsub和dvb_teletext字幕。

要提取dvbsubs,您需要编译具有OCR支持的cc提取器。

安装依赖关系:

代码语言:javascript
复制
$ sudo apt-get update
$ sudo apt-get install tesseract-ocr-dev
$ sudo apt-get install tessercat-ocr-*
$ sudo apt-get install -y gcc
$ sudo apt-get install -y libcurl4-gnutls-dev
$ sudo apt-get install -y libleptonica-dev

在cc提取器代码中:

代码语言:javascript
复制
$ mkdir build && cd build
$ cmake -DWITH_OCR=ON ../src/ 
$ make -j4

按udp流您的内容(-map 0:18只从多路复用获得dvbsub内容):

代码语言:javascript
复制
$ ffmpeg -re -i mux562.ts -map 0:18 -c:s dvbsub -f mpegts udp://239.0.0.1:5000

实时读取udp流并获得srt输出:

代码语言:javascript
复制
$ ccextractor -s -codec dvbsub -in=ts -udp 239.0.0.1:5000 -o output.srt

您可以将srt输出写入FIFO或stdout,请参阅cc提取器帮助。

票数 3
EN

Stack Overflow用户

发布于 2018-10-29 10:58:41

这是你的问题的答案,然而,它不会被接受,因为你不会喜欢答案。

你不能这么做。不幸的是,这就是答案。

您的字幕是基于图形的,位图,您必须进行OCR,然后检查它们的错误和/或异常,事先。你不能在飞行中这样做。

根据您正在播放的内容,有许多在线资源可以使用基于文本的字幕等价物。

祝你好运。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53034473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档