Créer un fichier MKV contenant une vidéo et des sous-titres.
a check
#!/bin/sh
#
# Créer un fichier MKV contenant une vidéo et des sous-titres.
# S'il y a seulement un .srt, on le prend, sinon on prend en.srt, fr.srt., ...
# Tiger-222, le 29 janvier 2013 (MàJ : 23 août 2013).
#
# Réencodage des sous-titres si nécessaire
reencoder() {
[ "$(file "$1" | grep -o ISO-8859)-prout" = "ISO-8859-prout" ] && recode l1..u8 "$1"
[ "$(file "$1" | grep -o Non-ISO)-prout" = "Non-ISO-prout" ] && recode l1..u8 "$1"
[ "$(file "$1" | grep -o 'with BOM')-prout" = "with BOM-prout" ] && tail --bytes=+4 "$1" >"$1.ok" && rm "$1" && mv "$1.ok" "$1"
}
# Créer le fichier MKV
mkv() {
nom=$(echo "$1" | sed "s/.$2$//")
soustitres=""
if test -f "$nom.srt"; then
reencoder "$nom.srt"
soustitres="--language 0:fre -s 0 -D -A \"$nom.srt\""
else
if test -f "$nom.fr.srt"; then
reencoder "$nom.fr.srt"
soustitres="$soustitres --language 0:fre --default-track 0:yes -s 0 -D -A \"$nom.fr.srt\""
fi
if test -f "$nom.en.srt"; then
reencoder "$nom.en.srt"
soustitres="$soustitres --language 0:eng -s 0 -D -A \"$nom.en.srt\""
fi
if test -f "$nom.es.srt"; then
reencoder "$nom.es.srt"
soustitres="$soustitres --language 0:spa -s 0 -D -A \"$nom.es.srt\""
fi
fi
echo mkvmerge -q -o \"$nom.mkv\" \"$nom.$2\" $soustitres >>a-faire.sh
}
echo "#!/bin/sh" >a-faire.sh
for fichier in *.avi; do
[ -f "$fichier" ] && mkv "$fichier" avi
done
for fichier in *.mp4; do
[ -f "$fichier" ] && mkv "$fichier" mp4
done
sh a-faire.sh
rm a-faire.sh
exit 0
Sun Oct 27 18:39:27 2013 - permalink -
-
https://tiger-222.fr/paste/?4f39f07b3b39f01a#99SrI916p1nlleubSmFB9OoJet40BJoY7NJj2qGWu08=