Ubuntu 17.10
打开视频时默认总是显示英文字幕(嵌入),每次打开新文件时我都必须将其关闭。
如何将其设为none
默认值?
有一个复选框外部的我关闭了字幕。这个设置毫无意义。它也应该适用于嵌入式字幕。
不,另一个问题中的糟糕破解将字体大小设置为 1px 或类似的值并不是解决方案。
这种情况发生在.mkv
包含字幕流的容器文件subt
中。
答案1
使字幕覆盖不可见
经过大量谷歌搜索后,在 AU 中发现了相同的问答:图腾(视频)-关掉东西?。就像您的问题一样,那里的原始发帖人不想将字体大小设置为 1 像素作为解决方法。
问题中发布的答案发现,使用字体大小“0”可以gsettings
完美地工作:
永久删除视频中的字幕
另一个选择是永久删除字幕从您的.mkv
文件中。链接中的作者解释了如何对软标题和硬标题执行此操作(通过裁剪图片的下半部分)。本文分为三个部分:
- 第一部分:检查字幕是否为软字幕
- 第二部分:如何从 MKV、AVI 和 MP4 中删除软字幕?
- 第三部分:如何从 MKV、MP4 和 AVI 中删除硬编码字幕?
通过电子邮件向开发人员发送新功能请求
GNOME Totem 的开发者是 Bastien Nocera。您可以通过以下地址给他发送电子邮件:[电子邮件保护]并要求提供一项新功能,即设置新打开的视频的默认语言。在您的情况下,默认语言为“无”。但是对于其他用户来说,如果他们的系统语言设置为“俄语”,但他们希望所有打开的视频都带有“英语”字幕,那么这将带来好处。
修改源代码并重新编译
Totem 源代码可以在github如果开发人员不满足新功能请求,您可以修改源代码:
- 找到指定字幕格式的模块
- 找到将字幕设置为您的语言的行
- 添加一行新代码,将语言覆盖为 none
在源代码中添加一行代码可能需要花费很多时间,但你可能会发现这个过程很有启发性和令人愉快
我花了大概10分钟的时间才找到模块中设置字幕的函数:https://github.com/GNOME/totem/blob/master/src/totem-menu.c在第 246 行:
select_subtitle_action_cb (GSimpleAction *action,
GVariant *parameter,
gpointer user_data)
{
totem_playlist_select_subtitle_dialog (TOTEM_OBJECT (user_data)->playlist,
TOTEM_PLAYLIST_DIALOG_PLAYING);
}
图腾用于GStreamer
举重
感谢奇里基,我们了解了很多关于 Totem 内部结构以及它如何调用GStreamer
来完成视频播放的繁重工作。GStreamer 接口选项可以完全关闭字幕:
- 支持流选择和禁用。如果您的媒体有多个音频或字幕轨道,您可以动态选择播放哪一个,或者决定将其完全关闭(这对于关闭字幕特别有用)。对于每个选项,请使用“current-text”和其他相关属性。
部分说明“这对于关闭字幕特别有用”这可能是 Totem 更新版本的目标。
正如 Chriki 所指出的,GStreamer 选择默认字幕语言并提供 Totem 用于填充其设置菜单的所有字幕列表。Totem 提供了另一个“无”选项,选择该选项后会指示 GStreamer 关闭字幕。
我认为设计变更应该是从字幕选择菜单中删除“无”选项。然后创建一个全局菜单选项“字幕打开/关闭”,该选项在 Totem 会话期间保持不变。也许当每个新视频开始时,5 秒的气泡可以显示“可用字幕已关闭”,以提醒用户可以根据需要为当前视频打开字幕。
也就是说,我是一个初级 Bash 脚本编写者和 C 编程来修改图腾到流处理器界面超出了我的工资等级。
答案2
Totem 无法设置默认值
我已经经历了图腾源代码到目前为止,似乎无法设置任何默认字幕语言或“无”。Totem 似乎总是使用默认字幕流底层 GStreamer 播放器选择当前播放的视频 – 并描述默认视频这里:“默认情况下播放第一个带有数据的字幕流。”
换句话说,回答WinEunuuchs2Unix 报告的可能是您目前的最佳选择。这里再次引用了我的回答,并添加了一点原创内容:
gsettings set org.gnome.totem subtitle-font \
"$(gsettings get org.gnome.totem subtitle-font | sed -r -e 's/ [0-9]+([^0-9])?$/ 0\1/')"
您可以直接在(bash)终端窗口中运行它,即您不必手动考虑要设置的字体;它使用之前设置的字体(可见gsettings get org.gnome.totem subtitle-font
)。
有关我的索赔的更多详细信息
虽然很难证明某件事不是可用,我仍然想指出一些我遇到的似乎支持我的说法的相关代码。
功能totem_subtitles_update
负责更新字幕菜单。它的作用归结为以下几点:
action = g_action_map_lookup_action (G_ACTION_MAP (totem), "set-subtitle");
// …
current = bacon_video_widget_get_subtitle (totem->bvw);
g_action_change_state (action, g_variant_new_int32 (current));
换句话说,它从视频小部件中获取当前字幕设置,并在菜单中使用它。
以下是bacon_video_widget_get_subtitle
为了完整性:
g_object_get (G_OBJECT (bvw->priv->play), "current-text", &subtitle, NULL);
这current-text
属性被查询,其值通过变量返回subtitle
(如上所示,通过变量使用current
)。如上所述,此属性默认为“第一个带有数据的字幕流”。
答案3
似乎不可能使用 ATM。
但是有一种简单的方法可以禁用它们
gsettings set org.gnome.totem subtitle-font '[whatever your font is here], 0'