mkvmerge を再帰的に使用して字幕をハードコーディングする

mkvmerge を再帰的に使用して字幕をハードコーディングする

私は24シーズン9を持っていて、フォルダにはエピソードとアラビア語の字幕があります。スクリプトを使用して字幕のハードコーディングを自動化したいです。次のようになります

24.903.hdtv-lol.mp4そして24.903.hdtv-lol_ar.srt

これまでは、mkvmerge-gui を使用して手動で実行していました。文字セット: ara (アラビア語)、エンコード: WINDOWS-1256 宛先を選択します。newfolder/S9E3.mkv

これらすべてを自動化するにはどうすればよいでしょうか。エピソードに対応する字幕を探し、上記のオプションを使用してハードコードしますか。

答え1

利用可能な .mp4 ファイルにチェックマークを付け、それらに対して mkvmerge を呼び出すことができます。

for f in *.mp4; do
    mkvmerge "$f" "${f%.*}_ar.srt" -o "${f%.*}.mkv"
done

文字セットが必要かどうかはわかりませんが、引数があります--sub-charset TID:character-set。TID はトラック番号で、0 または 1 であると想定しています。最初は文字セットなしで試してみて、うまくいかない場合は--sub-charset 0:WINDOWS-1256コマンドに追加してみてください。

関連情報