我作为一位世界电影和地区电影爱好者已经几十年了。这期间字幕是一个必不可少的工具,它可以使我享受来自不同国家不同语言的优秀电影。如果你喜欢观看带有字幕的电影,你可能会注意到有时字幕并不同步或者说并不正确。你知道你可以自己编写字幕并使得它们更完美吗?让我们向你展示一些 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 modeDocument 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: $somethingTrack entry:Track number: 1UID: 1Type: videoCodec ID: V_MPEG4/ISO/AVCLanguage: malName: $somethingTrack entry:Track number: 2UID: 2Type: audioCodec ID: A_MPEG/L3Language: malName: $somethingTrack entry:Track number: 3UID: somenumberType: subtitleCodec ID: S_TEXT/UTF8Name: $something99%  |  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 FrameFormat settings                          : CABAC / 4 Ref FramesFormat settings, ReFrames                : 4 framesFrame rate mode                          : ConstantFrame rate                               : 25.000 FPSBits/(Pixel*Frame)                       : 0.082Frame 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 个小时,甚至更多的时间,这取决于字幕员的技巧、耐心、上下文、行话、口音、是否是以英语为母语的人、翻译等,所有的这些都会对字幕的质量产生影响。

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

本文地址:https://www.linuxprobe.com/linux-subtitle-editing.html

Linux中编辑视频字幕相关推荐

  1. linux中编辑好的源如何保存,Linux下, Eclipse C/C++ IDE下编辑好C/C++源程序之后要先保存!!!否则,就会……...

    注意:Linux下,Eclipse C/C++ IDE下编辑好C/C++源程序之后要先保存! ! ! 然后Project-->Build All/Build Project,再点绿箭头执行.否则 ...

  2. linux中编辑pdf文件,Linux下PDF操作与转换

    如果说PDF是电子纸张,那么pdftk就是电子起钉器.打孔机.粘合剂.解密指环和 X光镜片.Pdftk是一个简单的工具,可以对PDF文档进行各种日常操作.Pdftk可以让你简单而自由地操作PDF.它不 ...

  3. linux视频编辑软件字幕,Linux下的视频字幕编辑

    一.Linux下的字幕编辑软件 常用的有subtitleeditor, gnome-subtitles, gaupol 1.gnome-subtitles:不支持多字幕文件批量处理 2.gaupol: ...

  4. linux中编辑jar包的内容

    在linux环境中,有时我们需要编辑某些配置文件的信息,然后重新运行jar包,避免重新上传打包上传jar包这些繁琐的操作. 方式一:使用jar命令 1.1 列出jar包的文件清单 jar tf xxx ...

  5. linux中编辑pdf文件,如何在Ubuntu中创建和编辑PDF文件

    在打印,共享和通过电子邮件发送文档(尤其是大型文档)时,PDF或可移植文档格式通常是我们的首选.对于Windows和MacOS,您可能非常熟悉,也依赖于广泛使用的Acrobat产品来进行pdf创建,查 ...

  6. linux 图片转视频教程,如何在Linux中转换视频

    描述 步骤1:打开终端 端子位于子类别之一的应用程序菜单中. (取决于发行版和桌面环境).在Ubuntu中,它位于"应用程序"->"附件"->&qu ...

  7. Linux中编辑文档

    vi document: i //键盘上敲 i,进入编辑模式 ESC //敲[ESC]键,退出编辑模式 :wq //保存退出 :q! //不保存,强制退出

  8. iSubtitle for Mac(视频字幕制作软件)

    iSubtitle Mac特别版是一款能够为您将字幕轨道,元数据和章节标记插入到您的电影和电视中的视频字幕制作软件.iSubtitle for Mac可以帮助用户创建和编辑电影字幕,还能够创建在iPo ...

  9. 同步播放的效果——iSubtitle for mac视频字幕制作可以做到!

    同步播放的效果--iSubtitle for mac视频字幕制作可以做到!它不依赖于QuickTime或任何其他系统扩展或插件.支持批量导出和智能导入,iSubtitle for mac是一款可以将字 ...

最新文章

  1. 用Flutter + Dart快速构建一款绝美移动App
  2. 东北育才 NOIP模拟赛第1场
  3. 软设考试笔记--UML建模
  4. Flutter之Align
  5. ipcp协议 Linux,Linux命令Man解释:PPPD(8) :点对点daemon协议
  6. Codeforces Round #375 (Div. 2) F. st-Spanning Tree 生成树
  7. jquery 获取同级元素_如何在jQuery中获取元素的同级
  8. 大数据平台对企业有什么作用
  9. vue+express+mongoose项目构建
  10. 【存档】使用OllyDbg+ResHack+LordPE来修改EXE文件
  11. 戏说面向对象程序设计
  12. 华为B610-4E光猫固件Shell补全及升级最新的050固件
  13. CSDN:2020 年度 CSDN 博客之星评选——28 号【沉默王二】,感谢你投上的宝贵一票,感谢!
  14. python发outlook邮件_通过Python发送Outlook电子邮件?
  15. sqlite3 java 内存,嵌入式数据库SQLite与Java
  16. 多米诺骨牌java_通过递归和回溯找到所有可能的多米诺骨牌链
  17. 计算机文化起源于,计算机文化.pps
  18. 情态动词can与could的用法详解
  19. [墨者学院] Windows硬盘文件分析取证(新建的用户名)
  20. wo zai gong si de yi tian

热门文章

  1. CSC在DomainSec℠平台上推出3D域名监测解决方案
  2. 思岚RPLIDAR A1激光雷达扫描测距的模式C语言实现(STM32)
  3. 如何在Photoshop中创建自己的自定义网格系统
  4. React语法开发微信小程序
  5. mamp mysql启动失败_MAMP pro mysql 启动失败
  6. opencv的安装+pycharm中安装cv2库
  7. 如何在AI中插入常见但没有现成矢量图的符号/图形
  8. eclipse上面一条工具栏图标不见了
  9. 法切蒂:真正的球迷是不会中途退场
  10. 应用Python3发送邮件示例