Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
doc:programmation:bash:ffmpeg [28/04/2020 07:59] golgot200 [script - choix du titre et du bitrate] |
doc:programmation:bash:ffmpeg [29/04/2020 20:26] (Version actuelle) golgot200 [script - choix du titre et du bitrate] |
||
---|---|---|---|
Ligne 22: | Ligne 22: | ||
En root, créer un fichier : | En root, créer un fichier : | ||
- | <code root>gedit copie-dvd_1</code> | + | <code root>gedit cdvd</code> |
copier le script suivant : | copier le script suivant : | ||
<file bash ripdvd> | <file bash ripdvd> | ||
Ligne 29: | Ligne 29: | ||
## golgot200 | ## golgot200 | ||
## Testeur smolski | ## Testeur smolski | ||
- | ## 28/04/2020 | + | ## 29/04/2020 |
START_TIME=$(date +%s) | START_TIME=$(date +%s) | ||
Ligne 45: | Ligne 45: | ||
if [[ "$COUNT_VIDEO_TS" -eq 0 ]]; then | if [[ "$COUNT_VIDEO_TS" -eq 0 ]]; then | ||
- | echo "Aucun dvd vidéo monté : Abandon" | + | echo -e "\e[3;4;32m Aucun DVD-VIDEO monté : Abandon\e\n[0m" |
exit 0 | exit 0 | ||
elif [[ "$COUNT_VIDEO_TS" -gt 1 ]]; then | elif [[ "$COUNT_VIDEO_TS" -gt 1 ]]; then | ||
- | echo "Il y a plus d'un dvd video détecté : Abandon" | + | echo -e "\e[3;4;32m Il y a plus d'un DVD-VIDEO détecté : Abandon\e\n[0m" |
exit 0 | exit 0 | ||
Ligne 57: | Ligne 57: | ||
if [[ "$COUNT_VIDEO_TS" -eq 1 ]] && [[ "$COUNT_DEVICE" -eq 1 ]]; then | if [[ "$COUNT_VIDEO_TS" -eq 1 ]] && [[ "$COUNT_DEVICE" -eq 1 ]]; then | ||
- | echo -e "\e[32mLes conditions sont réunies : On continue\e[0m" | + | echo -e "\e[3;4;32m Les conditions sont réunies : On continue\e\n[0m" |
TITLE=$(lsdvd /dev/sr0 | head -1 | awk '{print $3}') | TITLE=$(lsdvd /dev/sr0 | head -1 | awk '{print $3}') | ||
Ligne 75: | Ligne 75: | ||
[yY][eE][sS]|[yY]) | [yY][eE][sS]|[yY]) | ||
- | echo -e "\e[3;4;33mRéponse:\n\e[0m \e[32mOui\e[0m" | + | echo -e "\e[3;4;32m Réponse:\n\e[0m \e[32mOui\e[0m" |
echo "" | echo "" | ||
mkdir -p "$TITLE/IFOS" | mkdir -p "$TITLE/IFOS" | ||
Ligne 81: | Ligne 81: | ||
;; | ;; | ||
[nN][oO]|[nN]) | [nN][oO]|[nN]) | ||
- | echo -e "\e[3;4;33mRéponse:\n\e[0m \e[33mNon\e[0m" | + | echo -e "\e[3;4;32m Réponse:\n\e[0m \e[33mNon\e[0m" |
read -r -p "Entrer un nouveau nom: " TITLE | read -r -p "Entrer un nouveau nom: " TITLE | ||
if [[ -z "$TITLE" ]]; then | if [[ -z "$TITLE" ]]; then | ||
Ligne 106: | Ligne 106: | ||
- | echo -e "La limite est fixée pour encoder tous les titres." | + | echo -e "\e[3;4;32m La limite est fixée pour encoder tous les titres.\e[0m" |
read -r -p "Encoder tous les titres ? [Y/n] " input | read -r -p "Encoder tous les titres ? [Y/n] " input | ||
case $input in | case $input in | ||
[yY][eE][sS]|[yY]) | [yY][eE][sS]|[yY]) | ||
- | echo -e "\e[3;4;33mRéponse:\n\e[0m \e[32mOui, on encode tous les titres.\e[0m" | + | echo -e "\e[3;4;32m Réponse:\n\e[0m \e[32mOui, on encode tous les titres.\e[0m" |
- | echo -e "$default_limit" >> "$TITLE/time_limit.txt" | + | echo "$default_limit" >> "$TITLE/time_limit.txt" |
echo "" | echo "" | ||
;; | ;; | ||
[nN][oO]|[nN]) | [nN][oO]|[nN]) | ||
- | echo -e "\e[3;4;33mRéponse:\n\e[0m \e[33mNon,\e[0m \e[32mje veux encoder que les titres d'une certaine durée.\e[0m" | + | echo -e "\e[3;4;32m Réponse:\n\e[0m \e[33mNon, je ne veux encoder que les titres d'une certaine durée.\e[0m" |
read -r -p "Entrer une limite (ex:1800) en secondes: " time_limit | read -r -p "Entrer une limite (ex:1800) en secondes: " time_limit | ||
if [[ -z "$time_limit" ]]; then | if [[ -z "$time_limit" ]]; then | ||
Ligne 127: | Ligne 127: | ||
times=$((time_limit / 60)) | times=$((time_limit / 60)) | ||
echo -e "Seul les titres de \e[94m$times minutes\e[0m et plus seront pris en compte." | echo -e "Seul les titres de \e[94m$times minutes\e[0m et plus seront pris en compte." | ||
- | echo -e "$time_limit" >> "$TITLE/time_limit.txt" | + | echo "$time_limit" >> "$TITLE/time_limit.txt" |
echo "" | echo "" | ||
fi | fi | ||
Ligne 141: | Ligne 141: | ||
+ | |||
+ | echo -e "\e[3;4;32m la langue française est privilégiée par défaut.\e[0m" | ||
+ | read -r -p "Privilégier cette option ? [Y/n] " input | ||
+ | case $input in | ||
+ | [yY][eE][sS]|[yY]) | ||
+ | |||
+ | echo -e "\e[3;4;32m Réponse:\n\e[0m \e[32mOui, on garde cette option.\e\n[0m" | ||
+ | echo "1" > "$TITLE/choix_langues.txt" | ||
+ | ;; | ||
+ | [nN][oO]|[nN]) | ||
+ | echo -e "\e[3;4;32m Réponse:\n\e[0m \e[33mNon, on garde toutes les langues.\e[0m" | ||
+ | echo "0" > "$TITLE/choix_langues.txt" | ||
+ | |||
+ | ;; | ||
+ | *) | ||
+ | echo "Invalid input..." | ||
+ | echo "Quit" | ||
+ | rm -r "$TITLE" | ||
+ | echo -e "Supression du dossier \e[32m$TITLE\e[0m" | ||
+ | exit 1 | ||
+ | ;; | ||
+ | esac | ||
Ligne 148: | Ligne 170: | ||
[yY][eE][sS]|[yY]) | [yY][eE][sS]|[yY]) | ||
- | echo -e "\e[3;4;33mRéponse:\n\e[0m \e[32mOui\e[0m" | + | echo -e "\e[3;4;32m Réponse:\n\e[0m \e[32mOui\e[0m" |
for (( i=1; i<=TITLE_COUNT; i++ )) | for (( i=1; i<=TITLE_COUNT; i++ )) | ||
Ligne 155: | Ligne 177: | ||
BITRATE=$(mplayer -noconfig all -nocache -vo null -ao null -frames 0 -identify -dvd-device "$DEVICE" dvdnav://"$i" 2>/dev/null | \ | BITRATE=$(mplayer -noconfig all -nocache -vo null -ao null -frames 0 -identify -dvd-device "$DEVICE" dvdnav://"$i" 2>/dev/null | \ | ||
grep "VIDEO:" | awk '{print$8}' | sed 's/\.[^ ]*/ /g') | grep "VIDEO:" | awk '{print$8}' | sed 's/\.[^ ]*/ /g') | ||
- | echo -e "$BITRATE" >> "$TITLE/bitrate.txt" | + | echo "$BITRATE" >> "$TITLE/bitrate.txt" |
done | done | ||
;; | ;; | ||
[nN][oO]|[nN]) | [nN][oO]|[nN]) | ||
- | echo -e "\e[3;4;33mRéponse:\n\e[0m \e[33mNon\e[0m" | + | echo -e "\e[3;4;32m Réponse:\n\e[0m \e[33mNon, on applique un bitrate de son choix\e[0m" |
read -r -p "Appliquer un nouveau Bitrate (ex 1500): " newbitrate | read -r -p "Appliquer un nouveau Bitrate (ex 1500): " newbitrate | ||
+ | echo -e "\e[3;4;33mChoix du bitrate:\n\e[0m \e[3;6;94m$newbitrate kbits/s\e[0m (pour tous les titres)" | ||
+ | |||
if [[ -z "$newbitrate" ]]; then | if [[ -z "$newbitrate" ]]; then | ||
- | echo "Invalid input..." | + | echo -e " \e[3;6;94m Bitrate erroné\e[0m" |
echo "Quit" | echo "Quit" | ||
rm -r "$TITLE" | rm -r "$TITLE" | ||
Ligne 172: | Ligne 196: | ||
for (( i=1; i<=TITLE_COUNT; i++ )) | for (( i=1; i<=TITLE_COUNT; i++ )) | ||
do | do | ||
- | echo -e "$newbitrate" >> "$TITLE/bitrate.txt" | + | echo "$newbitrate" >> "$TITLE/bitrate.txt" |
done | done | ||
fi ;; | fi ;; | ||
Ligne 190: | Ligne 214: | ||
for (( i=1; i<=TITLE_COUNT; i++ )) | for (( i=1; i<=TITLE_COUNT; i++ )) | ||
do | do | ||
- | |||
Ligne 388: | Ligne 411: | ||
+ | choix_langues=$(sed q "$TITLE/choix_langues.txt") | ||
COUNT_AUDIO_FR=$(mplayer -noconfig all -nocache -vo null -ao null -frames 0 -identify "$TITLE/$i-$TITLE.mkv" 2>/dev/null |awk '/-alang fr,/ { print $9 }' | wc -w) | COUNT_AUDIO_FR=$(mplayer -noconfig all -nocache -vo null -ao null -frames 0 -identify "$TITLE/$i-$TITLE.mkv" 2>/dev/null |awk '/-alang fr,/ { print $9 }' | wc -w) | ||
## AU MOINS UN AUDIO FRANÇAIS OU PLUS. | ## AU MOINS UN AUDIO FRANÇAIS OU PLUS. | ||
- | if [[ -e "$TITLE/$i-$TITLE.mkv" ]] && [[ "$COUNT_AUDIO_FR" -ge "1" ]]; then | + | if [[ -e "$TITLE/$i-$TITLE.mkv" ]] && [[ "$COUNT_AUDIO_FR" -ge "1" ]] && [[ "$choix_langues" -eq "1" ]] ; then |
mkvmerge -o "$TITLE/$i-$TITLE-[Language: Français].mkv" -a fre "$TITLE/$i-$TITLE.mkv" | mkvmerge -o "$TITLE/$i-$TITLE-[Language: Français].mkv" -a fre "$TITLE/$i-$TITLE.mkv" | ||
Ligne 468: | Ligne 491: | ||
done | done | ||
+ | |||
+ | |||
fi | fi | ||
+ | |||
Ligne 503: | Ligne 529: | ||
fi | fi | ||
+ | |||
Ligne 547: | Ligne 574: | ||
rm -f "$TITLE/bitrate.txt" | rm -f "$TITLE/bitrate.txt" | ||
rm -f "$TITLE/time_limit.txt" | rm -f "$TITLE/time_limit.txt" | ||
+ | rm -f "$TITLE/choix_langues.txt" | ||
echo -e "\e[32mJob terminé.\e[0m" | echo -e "\e[32mJob terminé.\e[0m" | ||
- | echo -e "\e[32mTemps total écoulé: $(date -ud "@$(($(date +%s) - START_TIME))" +%T)\e[0m (HH:MM:SS)" | + | echo -e "\e[32mTemps total écoulé:\e[0m \e[3;6;94m$(date -ud "@$(($(date +%s) - START_TIME))" +%T)\e[0m (HH:MM:SS)" |
</file> | </file> | ||
Puis collez-le dans le fichier créé. | Puis collez-le dans le fichier créé. | ||
Ligne 556: | Ligne 584: | ||
Modifier les droits de ce fichier pour votre user. | Modifier les droits de ce fichier pour votre user. | ||
[[doc:systeme:chown|Le droit d'appartenance]] : | [[doc:systeme:chown|Le droit d'appartenance]] : | ||
- | <code root>chown user:user copie-dvd-1</code> | + | <code root>chown user:user cdvd</code> |
Ajouter [[doc:systeme:chmod|le droit d'exécution]] : | Ajouter [[doc:systeme:chmod|le droit d'exécution]] : | ||
- | <code root>chmod u+x copie-dvd-1</code> | + | <code root>chmod u+x cdvd</code> |
Revenir à son home/user : | Revenir à son home/user : | ||
Ligne 567: | Ligne 595: | ||
Et voilà, plus qu'à insérer un dvd et à lancer la commande en user. | Et voilà, plus qu'à insérer un dvd et à lancer la commande en user. | ||
- | <code user>copie_dvd-1</code> | + | <code user>cdvd</code> |
<code>Les conditions sont réunies : On continue | <code>Les conditions sont réunies : On continue | ||
Proceed... | Proceed... |