avconv で mkv を mp4 に再帰的に変換する

avconv で mkv を mp4 に再帰的に変換する

開始ディレクトリとその下のすべてのサブディレクトリ内のすべての .mkv ファイルを .mp4 に変換できるスクリプトを作成する必要があります。

以下の方法を使用して、ファイルを 1 つずつ変換できました。

avconv -i input.mkv -codec copy output.mp4

現在のディレクトリ内のすべてのファイルを変換するのはそれほど難しくありません。しかし、何時間も検索しても、これを再帰的に実行する方法を見つけることができません。

find コマンドを使用する必要があることはわかりましたが、私は Linux を使い始めたばかりで、find と avconv を組み合わせて必要な操作を実行する方法がまったくわかりません。

答え1

Bash で再帰的なグロビングを有効にする必要があります。

shopt -s globstar

次に、出力ファイル名を置き換える単純なループを実行します。

for f in **/*.mkv; do avconv -i "$f" -c copy "${f%.mkv}.mp4"; done

MP4 コンテナが処理できないコーデックを含むビデオでは、これが失敗する可能性があることに注意してください。MP4 は、基本的にすべてのコーデックを含めることができる MKV よりも制限が厳しくなっています。

関連情報