使用 mkvmerge 从 ubuntu 终端分割多个 mkv 文件

使用 mkvmerge 从 ubuntu 终端分割多个 mkv 文件

我有很多 .mkv 文件

nightmare1.mkv
nightmare2.mkv
nightmare3.mkv
...

我使用 Ubuntu 终端的 mkvmerge 来分割单身的使用此命令的文件

mkvmerge --split 1G --compression 0:none --compression 1:none --clusters-in-meta-seek -o "nightmare1.mkv" "nightmare1.mkv"

第一个噩梦是输出,第二个是输入

我得到了这个文件

nightmare1-001.mkv
nightmare1-002.mkv
...

我试图理解如何才能分裂全部.mkv 文件分成 1gb 大小的块,因为我想

nightmare1-001.mkv
nightmare1-002.mkv
 ...

nightmare2-001.mkv
nightmare2-002.mkv
 ...

nightmare3-001.mkv
nightmare3-002.mkv
 ...

所有噩梦电影都在同一个文件夹中。
我应该如何重写命令?问题是,我有单个 mkv 文件作为输入,并且我将其作为输出写入文件,但我想将文件夹路径设置为 mkv 文件所在的输入,并将所有新分割的 mkv 文件写入文件夹中。

答案1

您可以使用 Bashfor循环来解决此任务:

for file in ./source/*mkv; \
do \
    echo mkvmerge --split 1G --compression 0:none --compression 1:none \
    --clusters-in-meta-seek -o "./split/$(basename "$file")" "$file"; \
done
  • 复制并粘贴终端中的所有行并将它们作为单个命令执行。
  • 一旦你对循环的空运行输出感到满意,删除echo命令进行实际操作。

上面的例子中./source/是原始文件存储目录的相对路径。 分别./split/是目标路径,必须预先创建。

对于每次迭代,变量的值$file将如下所示./source/nightmare-i.mkv。命令替换$(basename "$file")将仅返回文件名而不返回路径,即nightmare-i.mkv,因此输出选项的值将如下所示./split/nightmare-i.mkv

相关内容