导读

我作为一位世界电影和地区电影爱好者已经几十年了。这期间字幕是一个必不可少的工具,它可以使我享受来自不同国家不同语言的优秀电影。如果你喜欢观看带有字幕的电影,你可能会注意到有时字幕并不同步或者说并不正确。你知道你可以自己编写字幕并使得它们更完美吗?让我们向你展示一些 Linux 中的基本字幕编辑吧。

从闭路字幕数据中提取字幕

大概在 2012、2013 年我开始了解到有一款叫做 CCEextractor 的工具。随着时间的推移,它已经成为我必不可少的工具之一,尤其是当我偶然发现一份内含有字幕的媒体文件。

CCExtractor 负责解析视频文件以及从闭路字幕closed captions数据中产生独立的字幕文件。

CCExtractor 是一个跨平台的、自由开源工具。自它形成的那年起该工具已经成熟了不少而如今已成为 GSOC 和谷歌编码输入的一部分。

简单来说,这个工具基本上是一系列脚本,这些脚本以一种顺序方式一个接着一个地给你提供提取到的字幕。

你可以按照本页的 CCExtractor 安装指南进行操作。

若安装后你想从媒体文件中提取字幕,请按以下步骤操作:

ccextractor

该命令将会输出以下内容:

$ ccextractor $something.mkv

CCExtractor 0.87, Carlos Fernandez Sanz, Volker Quetschke.

Teletext portions taken from Petr Kutalek's telxcc

--------------------------------------------------------------------------

Input: $something.mkv

[Extract: 1] [Stream mode: Autodetect]

[Program : Auto ] [Hauppage mode: No] [Use MythTV code: Auto]

[Timing mode: Auto] [Debug: No] [Buffer input: No]

[Use pic_order_cnt_lsb for H.264: No] [Print CC decoder traces: No]

[Target format: .srt] [Encoding: UTF-8] [Delay: 0] [Trim lines: No]

[Add font color data: Yes] [Add font typesetting: Yes]

[Convert case: No] [Video-edit join: No]

[Extraction start time: not set (from start)]

[Extraction end time: not set (to end)]

[Live stream: No] [Clock frequency: 90000]

[Teletext page: Autodetect]

[Start credits text: None]

[Quantisation-mode: CCExtractor's internal function]

-----------------------------------------------------------------

Opening file: $something.mkv

File seems to be a Matroska/WebM container

Analyzing data in Matroska mode

Document type: matroska

Timecode scale: 1000000

Muxing app: libebml v1.3.1 + libmatroska v1.4.2

Writing app: mkvmerge v8.2.0 ('World of Adventure') 64bit

Title: $something

Track entry:

Track number: 1

UID: 1

Type: video

Codec ID: V_MPEG4/ISO/AVC

Language: mal

Name: $something

Track entry:

Track number: 2

UID: 2

Type: audio

Codec ID: A_MPEG/L3

Language: mal

Name: $something

Track entry:

Track number: 3

UID: somenumber

Type: subtitle

Codec ID: S_TEXT/UTF8

Name: $something

99% | 144:34

100% | 144:34

Output file: $something_eng.srt

Done, processing time = 6 seconds

Issues? Open a ticket here

https://github.com/CCExtractor/ccextractor/issues

它会大致浏览媒体文件。在这个例子中,它发现该媒体文件是马拉雅拉姆语言(mal)并且格式是 .mkv。之后它将字幕文件提取出来,命名为源文件名并添加“_eng”后缀。

CCExtractor 是一款用来增强字幕功能和字幕编辑的优秀工具,我将在下一部分对它进行介绍。

趣味阅读:在 vicaps 有一份有趣的字幕提要,它讲解和分享为何字幕对我们如此重要。对于那些对这类话题感兴趣的人来说,这里面也有许多电影制作的细节。

用 SubtitleEditor 工具编辑字幕

你大概意识到大多数的字幕都是 .srt 格式 的。这种格式的优点在于你可以将它加载到文本编辑器中并对它进行少量的修改。

当进入一个简单的文本编辑器时,一个 srt 文件看起来会是这个样子:

1

00:00:00,959 --> 00:00:13,744

"THE CABINET

OF DR. CALIGARI"

2

00:00:40,084 --> 00:01:02,088

A TALE of the modern re-appearance of an 11th Century Myth

involting the strange and mysterious influence

of a mountebank monk over a somnambulist.

我分享的节选字幕来自于一部非常老的德国电影《卡里加里博士的小屋》(1920)。

Subtitleeditor 是一款非常棒的字幕编辑软件。字幕编辑器可以用来设置字幕持续时间、与多媒体文件同步的字幕帧率以及字幕间隔时间等等。接下来我将在这分享一些基本的字幕编辑。

首先,以安装 ccextractor 工具同样的方式安装 subtitleeditor 工具,使用你自己喜爱的安装方式。在 Debian 中,你可以使用命令:

sudo apt install subtitleeditor

当你安装完成后,让我们来看一下在你编辑字幕时一些常见的场景。

调整帧率使其媒体文件同步

如果你发现字幕与视频不同步,一个原因可能是视频文件的帧率与字幕文件的帧率并不一致。

你如何得知这些文件的帧率呢,然后呢?为了获取视频文件的帧率,你可以使用 mediainfo 工具。首先你可能需要发行版的包管理器来安装它。

使用 mediainfo 非常简单:

$ mediainfo somefile.mkv | grep Frame

Format settings : CABAC / 4 Ref Frames

Format settings, ReFrames : 4 frames

Frame rate mode : Constant

Frame rate : 25.000 FPS

Bits/(Pixel*Frame) : 0.082

Frame rate : 46.875 FPS (1024 SPF)

现在你可以看到视频文件的帧率是 25.000 FPS 。我们看到的另一个帧率则是音频文件的帧率。虽然我可以分享为何在视频解码和音频解码等地方会使用特定的 fps,但这将会是一个不同的主题,与它相关的历史信息有很多。

下一个问题是解决字幕文件的帧率,这个稍微有点复杂。

通常情况下,大多数字幕都是压缩格式的。将.zip 归档文件和字幕文件(以 XXX.srt 结尾)一起解压缩。除此之外,通常还会有一个同名的 .info 文件,该文件可能包含字幕的帧率。

如果不是,那么通常最好去某个站点并从具有该帧速率信息的站点下载字幕。对于这个特定的德文文件,我使用 Opensubtitle.org 来找到它。

正如你在链接中所看到的,字幕的帧率是 23.976 FPS 。很明显,它不能与帧率为 25.000 FPS 的视频文件一起很好地播放。

在这种情况下,你可以使用字幕编辑工具来改变字幕文件的帧率。

按下 CTRL+A 选择字幕文件中的全部内容。点击 “Timings -> Change Framerate” ,将 23.976 fps 改为 25.000 fps 或者你想要的其他帧率,保存已更改的文件。

synchronize frame rates of subtitles in Linux

改变字幕文件的起点

有时以上的方法就足够解决问题了,但有时候以上方法并不足够解决问题。

在帧率相同时,你可能会发现字幕文件的开头与电影或媒体文件中起点并不相同。

在这种情况下,请按以下步骤进行操作:

按下 CTRL+A 键选中字幕文件的全部内容。点击 “Timings -> Select Move Subtitle” 。

Move subtitles using Subtitle Editor on Linux

设定字幕文件的新起点,保存已更改的文件。

Move subtitles using Subtitle Editor in Linux

如果你想要时间更精确一点,那么可以使用 mpv 来查看电影或者媒体文件并点击进度条(可以显示电影或者媒体文件的播放进度),它也会显示微秒。

通常我喜欢精准无误的操作,因此我会试着尽可能地仔细调节。相较于人类的反应时间来说,MPV 中的反应时间很精确。如果我想要极其精确的时间,那么我可以使用像 Audacity 之类的东西,但是那是另一种工具,你可以在上面做更多的事情。那也将会是我未来博客中将要探讨的东西。

调整字幕间隔时间

有时,两种方法都采用了还不够,甚至你可能需要缩短或增加间隔时间以使其与媒体文件同步。这是较为繁琐的工作之一,因为你必须单独确定每个句子的间隔时间。尤其是在媒体文件中帧率可变的情况下(现已很少见,但你仍然会得到此类文件)

在这种设想下,你可能因为无法实现自动编辑而不得不手动的修改间隔时间。最好的方式是修改视频文件(会降低视频质量)或者换另一个更高质量的片源,用你喜欢的设置对它进行转码 。这又是一重大任务,以后我会在我的一些博客文章上阐明。

总结

以上我分享的内容或多或少是对现有字幕文件的改进。如果从头开始,你需要花费大量的时间。我完全没有分享这一点,因为一部电影或一个小时内的任何视频材料都可以轻易地花费 4-6 个小时,甚至更多的时间,这取决于字幕员的技巧、耐心、上下文、行话、口音、是否是以英语为母语的人、翻译等,所有的这些都会对字幕的质量产生影响。

我希望自此以后你会觉得这件事很有趣,并将你的字幕处理的更好一点。

linux视频字幕下载工具,Linux中编辑视频字幕相关推荐

  1. linux补丁怎么下载工具,Linux内核补丁批量自动下载工具

    Linux kernel官网cgit工具不支持按变更代码进行补丁搜索,想到个办法就是把补丁都抓下来,这样可以在本地搜索.花了2个小时写了个小工具,话不多说,直接看效果: E:\docs\TOOLS\p ...

  2. linux 解析pdf下载工具,Linux高级系统级性能分析工具-perf.pdf

    Linux高级系统级性能分析工具-perf Linux 的系统级性能剖析工具‐perf (二) 承刚 TAOBAO  Kernel Team chenggang.qin@ 第三章  Perf top ...

  3. 微软WebCast(视频教材下载工具)上千视频下载

    iReaper是由国内一群.Net爱好者开发的,用来帮助您方便下载MSDN Webcast(中文网络广播)一款桌面小工具.MSDN Webcast的课程资源极其丰富,涉及到软件开发的方方面面.为了使听 ...

  4. 小 V 视频号下载工具(可下载所有视频号中的视频+公众号中的部分视频、音频)

    这个视频下载软件名叫小 V 视频号下载工具,为PC版,所以得用微信PC版配合操作. 如何下载微信视频号中的视频 使用小 V 视频号下载工具来下载视频非常的简单,只需轻松两步即可下载视频. 首先我们在微 ...

  5. TED演讲集 TED视频打包下载(MP4+中英字幕) TED中英文对照字幕视频 TED资料文档 完整

    TED演讲集 TED视频打包下载(MP4+中英字幕) TED中英文对照字幕视频 TED资料文档 学习英语的好帮手 TED1984-2019全部中英对照演讲稿集视频 下载CSDN 一.TED简介: TE ...

  6. linux torrent 下载工具,Linux 下载工具推荐: Motrix qbittorrent

    Linux下载介绍 Linux下其实下载工具还是蛮多的, 命令行的wget,curl,aria2,甚至于apt 但是个人日常使用下还是有图形化界面比较方便易用.大多数教程里推荐的Uget,可能是我也不 ...

  7. linux上传下载工具lrzsz

    linux上传下载工具lrzsz ubuntu安装 sudo apt-get install lrzsz centos安装 yum -y install lrzsz 下载 操作 命令 下载文件 sz ...

  8. 【译】听尤雨溪聊:下一代前端构建工具 ViteJS 中英双语字幕

    原视频地址:Next generation frontend tooling with ViteJS ✨ Open Source Friday ✨[1] 中英文字幕视频地址(B站):[译]下一代前端工 ...

  9. 教你如何用手机下载视频号[微信小程序]中的视频

    ** 如何下载微信视频号**[微信小程序]**中的视频 ** 事情是这样的,因为近期所在工作单位要迎接检查,老板发了几个小程序视频给我,需要我把他下下来,我最初找了一下,并不能够找到下载按钮,就打算改 ...

  10. 如何下载学堂在线中的视频(非常方便)

    一.问题背景 学堂在线中的视频需要在线观看,如果能将学堂在线中的视频下载,并且离线观看将为广大学生及其他学习者带来极大的方便. 二.问题描述 希望下载学堂在线中的视频. 三.解决过程 步骤一:进入观看 ...

最新文章

  1. 华为安卓11是鸿蒙系统吗,恭喜华为手机,EMUI11曝光,是披着Android 11的“鸿蒙系统”?...
  2. Leetcode 122. 买卖股票的最佳时机 II 解题思路及C++实现
  3. 新浪微博开发-添加子视图控制器设置颜色
  4. hive mysql 字符集_Hive字符编码
  5. 优秀博客-前端博客(转)
  6. 一步一步写算法(之排序二叉树线索化)
  7. 2018年6月1号(线段树(1))
  8. 大数据平台安全风险与建设
  9. JavaSE学习--正则表达式
  10. 性能测试--jmeter如何发送get请求【3】
  11. php9.0论坛搭建默认,phpwind9.0
  12. 高程(DEM) ASCII数据获取
  13. Android腾讯微博开放平台(六)发布一条图文微博
  14. 2路10核物理服务器能否虚拟40vcpu,XenServer中Windows 7与XP多vCPU支持配置,cpu 2 核限制...
  15. Spark、Hadoop大数据平台搭建
  16. 企业组织架构的架构图用思维导图软件怎么做?
  17. 有了这个 Python 库,以后再也不用写正则表达式了
  18. 花生壳域名穿透 网站无法访问
  19. 腾讯视频云流媒体技术探索
  20. Windows下IE浏览器文件下载

热门文章

  1. 腾达ap设置说明_优科 Ruckus R610 AC1900规格 无线AP 开箱拆解评测
  2. 强大的Win7计算器
  3. K3CLOUD业务系统编码规则设置
  4. 自动驾驶—高精度地图or人工智能or其他
  5. 怎么使用水经注万能地图下载器制作百度个性化道路地图
  6. 小米手机全黑屏9008救砖
  7. jetson nano使用python读取解析GPS数据(GPRMC,GPGGA)。
  8. 企业微信API群机器人配置
  9. 未来教育mysql下载_未来教育计算机二级题库中的视频为什么无法播放?
  10. nfc pm3 模拟加密门禁卡_手机/手环NFC模拟加密门禁卡电梯卡最全教程之初期判断...