Shirish 发布的文章

我作为一位世界电影和地区电影爱好者已经几十年了。这期间字幕是一个必不可少的工具,它可以使我享受来自不同国家不同语言的优秀电影。

如果你喜欢观看带有字幕的电影,你可能会注意到有时字幕并不同步或者说并不正确。

你知道你可以自己编写字幕并使得它们更完美吗?让我们向你展示一些 Linux 中的基本字幕编辑吧。

Editing subtitles in Linux

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

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

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

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

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

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

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

ccextractor <path_to_video_file>

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

$ 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 --&gt; 00:00:13,744
"THE CABINET
OF DR. CALIGARI"

2
00:00:40,084 --&gt; 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 个小时,甚至更多的时间,这取决于字幕员的技巧、耐心、上下文、行话、口音、是否是以英语为母语的人、翻译等,所有的这些都会对字幕的质量产生影响。

我希望自此以后你会觉得这件事很有趣,并将你的字幕处理的更好一点。如果你有其他想要补充的问题,请在下方留言。


via: https://itsfoss.com/editing-subtitles

作者:Shirish 选题:lujun9972 译者:chenmu-kk 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Debian 10 Buster 即将发布。第一个发布候选版已经发布,我们预期可以在几周内见到待最终版。

如果你期待对这个新的主要发布版本,让我告诉你里面有什么。

Debian 10 Buster 发布计划

Debian 10 Buster 的发布日期并没有确定。为什么这样呢?不像其他分发版,Debian 并不基于时间发布。相反地它主要关注于修复 发布版重要 Bug release-critical bug 。发布版重要 Bug 要么是严重的安全问题(CVE),要么是一些其他阻止 Debian 发布的严重问题。

Debian 在它的软件归档中分为三个部分,叫做 Main、contrib 和 non-free。在这三者之中,Debian 开发者和发布管理者最关心的包组成了该分发版的基石。Main 是像石头一样稳定的。因此他们要确保那里没有主要的功能或者安全问题。他们同样给予了不同的优先级,例如 Essential、Required、Important、Standard、Optional 和 Extra。更多关于此方面的知识参考后续的 Debian 文章。

这是必要的,因为 Debian 在很多环境中被用作服务器,人们已经变得依赖 Debian。他们同样看重升级周期是否有破环,因此他们寻找人们来测试,来查看当升级的时候是否有破坏并通知 Debian 有这样的问题。

这种提交方式带来的稳定性是我喜欢 Debian 的众多原因之一

Debian 10 Buster 版本的新内容

这里是即将到来的 Debian 主要发布版的一些视觉上和内部的改变。

新的主题和壁纸

Buster 的 Debian 主题被称为 FuturePrototype 并且看起来如下图:

Debian Buster FuturePrototype Theme

1、GNOME 桌面 3.30

Debian Stretch 版中的 GNOME 桌面在 Buster 中从 1.3.22 升级到了 1.3.30。在 GNOME 桌面发布版中新包含的一些包是 gnome-todo、tracker 替代了 tracker-gui、gstreamer1.0-packagekit 的依赖,因此可以通过自动地安装编码解码器来做播放电影之类的事。对于所有包来说一个大的改变是从 libgtk2+ 到 libgtk3+。

2、Linux 内核 4.19.0-4

Debian 使用 LTS 内核版本,因此你可以期待更好的硬件支持和长达 5 年的维护和支持周期。我们已经从内核 4.9.0.3 到 4.19.0-4。

$ uname -r
4.19.0-4-amd64

3、OpenJDK 11.0

Debian 在很长时间里都是 OpenJDK 8.0。现在在 Debian Buster 里我们已经升级为 OpenJDK 11.0,并且会有一个团队维护新的版本。

4、默认启用 AppArmor

在 Debian Buster 中是默认启用 AppArmor 的。这是一个好事,谨慎是系统管理员必须采取的正确策略。这仅仅是第一步,并且可能需要修复很多对用户觉得有用的脚本。

5、Nodejs 10.15.2

在很长一段时间里 Debian 在仓库中都只有 Nodejs 4.8。在这个周期里 Debian 已经移到 Nodejs 10.15.2。事实上,Debian Buster 有很多 javascript 库例如 yarnpkg (一个 nmp 的替代品)等等。

当然,你可以从该项目仓库在 Debian 中安装最新的 Nodejs,但是从 Debian 仓库中看到更新的版本是很棒的。

6、NFtables 替代了 iptables

Debian Buster 提供了 nftables 来完整地替代了 iptables,因为它有更好、更简单的语法,更好的支持双栈 ipv4/v6 防火墙等等。

7、支持更多的 ARM 64 和 ARMHF 的单板机。

Debian 已经支持一些常见的新的单板机,其中最新的包括 pine64\_plus、ARM64 的 pinebook、Firefly-RK3288、ARMHF 64 的 u-boot-rockchip 以及 Odroid HC1/HC2 板、SolidRun Cubox-i 双核/四核(1.5som)和 SolidRun Cubox-i 双核/四核(1.5som+emmc)板、Cubietruckplus 等。同样支持 Rock 64、Banana Pi M2 Berry、Pine A64 LTS Board、Olimex A64 Teres-1 与 Rapberry Pi 1、Zero 和 Pi 3。对于 RISC-V 系统同样支持开箱即用。

8、Python 2 已死,Python 3 长存

在 2020 年 1 月 1 日,Python 2 将被 python.org 废弃。在 Debian 将所有的软件包从 Python 2.7 移到 Python 3 以后,Python 2.7 将从软件仓库中移除。这可能发生在 Buster 发布版或者将来的某个发布版,这是肯定要来临的。因此 Python 开发者被鼓励移植他们的代码库来兼容 Python 3。在写本文的时候,在 Debian Buster 中同时支持 python2 和 pythone3。

9、Mailman 3

在 Debian 中终于可以使用 Mailman3 了。同时 Mailman 已经被细分成为组件。要安装整个软件栈,可以安装 mailman3-full 来获取所有组件。

10、任意已有的 Postgresql 数据库将需要重新索引

由于 glibc 本地数据的更新,放入文本索引中的信息排序的方式将会改变,因为重新索引是有益的,这样在将来就不会有数据破坏发生。

11、默认 Bash 5.0

你可能已经了解了 Bash 5.0 的新特点,在 Debian 中已经是该版本了。

12、Debian 实现 /usr/merge

我们已经分享过一个优秀的 freedesktop 读物,介绍了 /usr/merge 带来了什么。有一些事项需要注意。当 Debian 想要整个过渡时,可能由于未预见的情况,一些二进制文件可能并没有做这些改变。需要指出的一点是,/var/etc 不会被触及,因此使用容器或者云技术的不需要考虑太多 :)。

13、支持安全启动

在 Buster RC1 中,Debian 现在支持 安全启动 secure-boot 。这意味着打开了安全启动设置的机器应该能够轻松安装 Debian。不再需要禁止或者处理安全启动的事 :)

14、Debian-Live 镜像的 Calameres Live-installer

对于 Debian Buster 的 Live 版,Debian 引入了 Calameres 安装器来替代老的 Debian-installer。Debian-installer 比 Calameres 功能更多,但对于初学者,Calameres 相对于 Debian-installer 提供了另外一种全新的安装方式。安装过程的截图:

Calamares Partitioning Stage

如图所见,在 Calamares 下安装 Debian 相当简单,只要经历 5 个步骤你就能在你的机器上安装 Debian。

下载 Debian 10 Live 镜像 (只用于测试)

现在还不要将它用于生产机器。可以在测试机上尝试或者一个虚拟机。

你可以从 Debian Live 目录获取 Debian 64 位和 32 位的镜像。如果你想要 64 位的就进入 64-bit 目录,如果你想要 32 位的,就进入 32-bit 目录。

如果你从已存在的稳定版升级并且出现了一些问题,查看它是否在预安装的升级报告中提及了,使用 reportbug 报告你看到的问题。如果 bug 没有被报告,那么请尽可能地报告和分享更多地信息。

总结

当上千个包被升级时,看起来不可能一一列出。我已经列出了一些你在 Debian Buster 可以找到的一些主要的改变。你怎么看呢?


via: https://itsfoss.com/new-features-coming-to-debian-10-buster-release/

作者:Shirish 选题:lujun9972 译者:warmfrog 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

十多年来,我一直都是 GNU-Linux 以及 Debian 的用户。随着我越来越频繁的使用桌面环境,我发现对我来说除了少数基于 web 的服务以外我的大多数需求都可以通过 Debian 软件库里自带的桌面应用解决。

我的需求之一就是进行单位换算。尽管有很多很多在线服务可以做这件事,但是我还是需要一个可以在桌面环境使用的应用。这主要是因为隐私问题以及我不想一而再再而三的寻找在线服务做事。为此我搜寻良久,直到找到 Qalculate!。

Qalculate! 最强多功能计算器应用

最佳计算器应用 Qalculator

这是 aptitude 上关于 Qalculate! 的介绍,我没法总结的比他们更好了:

强大易用的桌面计算器 - GTK+ 版

Qalculate! 是一款外表简单易用,内核强大且功能丰富的应用。其功能包含自定义函数、单位、高计算精度、作图以及可以输入一行表达式(有容错措施)的图形界面(也可以选择使用传统按钮)。

这款应用也发行过 KDE 的界面,但是至少在 Debian Testing 软件库里,只出现了 GTK+ 版的界面,你也可以在 GitHub 上的这个仓库里面看到。

不必多说,Qalculate! 在 Debian 的软件源内处于可用状态,因此可以使用 apt 命令或者是基于 Debian 的发行版比如 Ubuntu 提供的软件中心轻松安装。在 Windows 或者 macOS 上也可以使用这款软件。

Qalculate! 特性一览

列出全部的功能清单会有点长,请允许我只列出一部分功能并使用截图来展示极少数 Qalculate! 提供的功能。这么做是为了让你熟悉 Qalculate! 的基本功能,并在之后可以自由探索 Qalculate! 到底还能干什么。

  • 代数
  • 微积分
  • 组合数学
  • 复数
  • 数据集
  • 日期与时间
  • 经济学
  • 对数和指数
  • 几何
  • 逻辑学
  • 向量和矩阵
  • 杂项
  • 数论
  • 统计学
  • 三角学

使用 Qalculate!

Qalculate! 的使用不是很难。你甚至可以在里面写简单的英文。但是我还是推荐先阅读手册以便充分发挥 Qalculate! 的潜能。

使用 Qalculate 进行字节到 GB 的换算

摄氏度到华氏度的换算

qalc 是 Qalculate! 的命令行版

你也可以使用 Qalculate! 的命令行版 qalc

$ qalc 62499836 byte to gibibyte
62499836 * byte = approx. 0.058207508 gibibyte

$ qalc 40 degree celsius to fahrenheit
(40 * degree) * celsius = 104 deg*oF

Qalculate! 的命令行界面可以让不喜欢 GUI 而是喜欢命令行界面(CLI)或者是使用无头结点(没有 GUI)的人可以使用 Qalculate!。这些人大多是在服务器环境下工作。

如果你想要在脚本里使用这一软件的话,我想 libqalculate 是最好的解决方案。看一看 qalc 以及 qalculate-gtk 是如何依赖于它工作的就足以知晓如何使用了。

再提一嘴,你还可以了解下如何根据一系列数据绘图,其他应用方式就留给你自己发掘了。不要忘记查看 /usr/share/doc/qalculate/index.html 以获取 Qalculate! 的全部功能。

注释:注意 Debian 更喜欢 gnuplot,因为其输出的图片很精美。

附加技巧:你可以通过在 Debian 下通过命令行感谢开发者

如果你使用 Debian 而且喜欢哪个包的话,你可以使用如下命令感谢 Debian 下这个软件包的开发者或者是维护者:

reportbug --kudos $PACKAGENAME

因为我喜欢 Qalculate!,我想要对 Debian 的开发者以及维护者 Vincent Legout 的卓越工作表示感谢:

reportbug --kudos qalculate

建议各位阅读我写的关于如何使用报错工具在 Debian 中上报 BUG的详细指南。

一位高分子化学家对 Qalculate! 的评价

经由作者 Philip Prado,我们联系上了 Timothy Meyers 先生,他目前是在高分子实验室工作的高分子化学家。

他对 Qaclulate! 的专业评价是:

看起来几乎任何科学家都可以使用这个软件,因为如果你知道指令以及如何使其生效的话,几乎任何数据计算都可以使用这个软件计算。

我觉得这个软件少了些物理常数,但我想不起来缺了哪些。我觉得它没有太多有关流体动力学的东西,再就是少了点部分化合物的光吸收)系数,但这些东西只对我这个化学家来说比较重要,我不知道这些是不是对别人来说也是特别必要的。自由能可能也是。

最后,我分享的关于 Qalculate! 的介绍十分简陋,其实际功能与你的需要以及你的想象力有关系。希望你能喜欢 Qalculate!


via: https://itsfoss.com/qalculate/

作者:Shirish 选题:lujun9972 译者:name1e5s 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出