升级到包含 Handbrake 1.5.1 的 Ubuntu 22.04 后,HandBrakeCLI 生成的字幕似乎是错误的 — 至少在使用 VLC 版本 3 播放时是这样。它们有固定的(对我来说丑陋的)字体,我无法更改,并且它们显示大的我无法消除的阴影。这是一个示例(实际 Buffy 转换的 DVD 的快照如下所示合理使用条款):
可以看到没有阴影,没有轮廓,配置的字体是DejaVu Sans,这不是实际字幕显示的样子。
注意:字幕不会“刻录”到视频上 - 我可以启用/禁用它们。
将我的 DVD 转换为每集的单独 .mkv 文件的工作流程如下:
- 运行
dvdbackup --mirror
以在我的硬盘驱动器上创建 DVD 映像(目录 Buffy-S2D2、子目录 VIDEO_TS 等)。 - 然后,运行以下脚本以使用 HandBrakeCLI 对剧集进行编码:
#!/bin/bash
SHOW="Buffy"
SEASON="2"
DISC="2"
SRC="/home/cal-linux/Videos/Buffy-S$SEASON""D$DISC"
DIR="/home/cal-linux/tv/Buffy-the-Vampire-Slayer"
QUALITY=16.0
HIGHQUALITY=12.0
T1="05--Reptile-Boy"
T2="06--Halloween"
T3="07--Lie-to-Me"
T4="08--The-Dark-Age"
Q1=$QUALITY
Q2=$HIGHQUALITY
Q3=$HIGHQUALITY
Q4=$QUALITY
CC1=`HandBrakeCLI --scan -i $SRC -t 1 2>&1 | grep "Closed Caption" | grep -v VOBSUB | cut -f2 -d"+" | cut -f1 -d","`
CC2=`HandBrakeCLI --scan -i $SRC -t 2 2>&1 | grep "Closed Caption" | grep -v VOBSUB | cut -f2 -d"+" | cut -f1 -d","`
... (same for the remaining episodes)
## The above commands, in this case for this DVD, assign 4 to each of the variables CC1 to CC4 (that happens to be the "track number" for the English captions)
HandBrakeCLI --decomb --deinterlace --markers -e x264 --quality $Q1 --two-pass --no-turbo --encoder-level 5.2 --encoder-preset veryslow --subtitle $CC1 -i $SRC -t 1 -o "$DIR/$SHOW-S$SEASON""E$T1.mkv"
.... (similar for the other three episodes)
问题是,这就是完全相同的脚本我在两三年前使用过这些功能来对这些相同的 DVD 进行编码 - 除了开关--decomb --deinterlace
(我最近发现/注意到这些功能促使我重复对 Buffy DVD 进行编码)。当我大约两三年前对这些 DVD 进行编码时(当时运行的是 Ubuntu 18.04,我相信其中包括 Handbrake 1.3),字幕按预期工作。现在,使用相同的命令(除了解梳和去隔行之外)重新制作相同的 DVD,字幕会出现“错误”。这是原始编码文件之一的示例(刚刚拍摄的屏幕截图),显示了应显示的字幕(即尊重播放器的设置):
我很困惑为什么会发生这种情况,但更重要的是我感兴趣的是:如何解决它?