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"

最初の悪夢は出力、2番目は入力

このファイルを入手しました

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

forこのタスクを解決するには、Bash ループを使用できます。

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

関連情報