1
0
Files
Schnipsel/remove_english_audio.sh
2025-11-04 19:22:04 +01:00

68 lines
1.7 KiB
Bash

#!/bin/bash
# Script zum Entfernen der englischen Audiospur aus MKV-Dateien
# Benötigt: mkvmerge (Teil von mkvtoolnix)
set -euo pipefail
# Prüfen ob mkvmerge installiert ist
if ! command -v mkvmerge &> /dev/null; then
echo "Fehler: mkvmerge ist nicht installiert."
echo "Installiere es mit: sudo apt install mkvtoolnix"
exit 1
fi
# Zähler für verarbeitete Dateien
count=0
skipped=0
echo "Starte Verarbeitung aller MKV-Dateien..."
echo ""
# Alle MKV-Dateien im aktuellen Verzeichnis verarbeiten
shopt -s nullglob
files=(*.mkv)
if [ ${#files[@]} -eq 0 ]; then
echo "Keine MKV-Dateien gefunden."
exit 0
fi
# Deaktiviere 'exit on error' für die Schleife
set +e
for file in "${files[@]}"; do
echo "Verarbeite: $file"
# Temporäre Ausgabedatei
temp_file="${file%.mkv}_temp.mkv"
# Entferne Track ID 1 (die englische Audiospur)
# --audio-tracks !1 bedeutet: behalte alle Audio-Tracks außer Track 1
mkvmerge -o "$temp_file" --audio-tracks '!1' "$file" 2>&1
exit_code=$?
# Prüfe ob die Ausgabedatei erfolgreich erstellt wurde
if [ -f "$temp_file" ] && [ $exit_code -eq 0 -o $exit_code -eq 1 ]; then
# Ersetze Original mit neuer Datei
mv "$temp_file" "$file"
echo "✓ Erfolgreich: $file"
((count++))
else
echo "✗ Fehler bei: $file (Exit-Code: $exit_code)"
[ -f "$temp_file" ] && rm -f "$temp_file"
((skipped++))
fi
echo ""
done
# Aktiviere 'exit on error' wieder
set -e
echo "=========================================="
echo "Fertig!"
echo "Erfolgreich verarbeitet: $count Datei(en)"
[ $skipped -gt 0 ] && echo "Übersprungen (Fehler): $skipped Datei(en)"
echo "=========================================="