我一直在使用mkvmerge
合并视频文件和字幕,我正在使用以下命令
mkvmerge -o output.mkv video.mp4 subtitles.srt
哪个工作正常,但您可能会猜到这是非常缓慢的操作
- 我必须在每个存储电影的目录中打开终端。
- 然后我必须在命令中复制并粘贴文件的名称
- 然后我必须重命名输出文件
- 然后删除我使用的原始文件
这是一个漫长的过程。
我想要的理想情况。
- 我将进入包含同名电影文件和字幕文件的文件夹。
- 我选择一个电影文件和一个字幕文件,右键单击并在它们上运行一个 nautilus 脚本。
- 他们合并了
- 原始文件被删除。
- 将合并的文件重命名为带有
mkv
扩展名的原始文件的名称
这不需要递归,我不希望我的 HDD 创建和删除 100 个文件。电影文件和字幕文件通常具有相同的名称,但有时会将“_en”后缀固定到字幕文件。如果您有另一种方法,我也同意。
我决定获得一些使用 Bash 的经验并编写了以下脚本,该脚本具有以下功能:
mkvmerge
将视频与字幕文件合并,也用于notify-send
在 GUI 中显示一些消息。它还用于gvfs-trash
移动用户垃圾文件夹中的文件。notify-send
或常规 shell 脚本,但当命令存在于脚本主体中时,需要 GIU 环境。剧本:
设置:
创建可执行文件并将上面的内容粘贴到里面。我们称这个文件为
merge-video-sub
:将此文件复制(或
ln -s
)到文件夹~/.local/share/nautilus/scripts
中,使其可用作当前用户的 Nautilus 脚本。目前我找不到一种方法如何使它在系统范围内作为 Nautilus 脚本可用。
将文件复制到
~/bin
(并添加export PATH=$PATH:~/bin
到~/.bashrc
if is needed 的底部)以使其可用作当前用户的 shell 命令。将文件复制到其中
/usr/local/bin
以使其在 shell 命令系统范围内可用。简短的方法是将我的 PasteBin
curl
中的脚本直接放入文件夹:nautilus/scripts
演示:
附加参考:
我制作了另一个具有 GUI 的脚本。它可以在文件夹和子文件夹中找到所有带有相关视频的字幕文件(搜索相同的名称)并将它们合并到一个文件夹中。
这是脚本的 GitHub 链接:https ://github.com/bhaktanishant/Total-Subtitle-Merger
这是代码:
如何将其用作 nautilus 脚本:
将此代码粘贴到文件中并命名
merge
。现在,在您保存文件的目录中打开一个终端,
marge
然后mv merge ~/.local/share/nautilus/scripts/merge
输入并按回车键。现在放
cd ~/.local/share/nautilus/scripts/
并按回车。现在放
chmod +x merge
并按回车。现在转到电影和字幕所在的根文件夹,然后右键单击任何文件或文件夹,然后选择
scripts > merge
完毕。
在这里,我为此制作了一个脚本。只需确保您的电影文件夹中只有两个文件,一个是您的电影,另一个是字幕(它们不需要具有相同的名称)。
创建一个名为
merge
Desktop 的文件并粘贴以下代码:现在,在您保存的目录
marge
(在本例中为桌面)打开一个终端,mv merge ~/.local/share/nautilus/scripts/merge
然后输入并按 Enter。现在放
cd ~/.local/share/nautilus/scripts/
并按回车。现在放
chmod +x merge
并按回车。现在转到电影和字幕所在的文件夹,然后右键单击任何文件,然后选择
scripts > merge
完毕。
如果您有任何问题,请告诉我。