使用 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
...

我試著去理解我該如何分開全部1gb 大小的 .mkv 文件,因為我想得到

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")將僅返回不含路徑的檔案名稱 -ie nightmare-i.mkv,因此輸出選項的值將如下所示./split/nightmare-i.mkv

相關內容