Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#276 16-06-2019 18:35:59

enicar
Membre
Lieu : ailleurs
Distrib. : sid
Noyau : 5.8.7
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

golgot200 a écrit :

Tu pourras mettre la variable COUNT_SID_FR après. Si c'est celle du post 269, elle fonctionne.


Non dans le post #269, c'est la variable SIDFR que je triturais wink
Mais je me suis trompé, je parlais de trucs que tu m'as demandé hier, mais qui ne sont pas
le script que j'ai collé post #274, car ce n'était pas dans le script originel et je ne sais pas
comment tu comptes intégrer tout ça.

Dernière modification par enicar (16-06-2019 18:37:56)

Hors ligne

#277 16-06-2019 18:42:53

enicar
Membre
Lieu : ailleurs
Distrib. : sid
Noyau : 5.8.7
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

golgot200 a écrit :

Je vérifie mais c'est sùr que 0x est général.


D'après ce que j'ai vu, il s'agit de rajouter « -map i: » devant chaque occurrence
de « 0x… ». Et d'après les exemples de ton post #261, il semblerait que ce soit
toujours le cas. D'ailleurs je ne vois pas quel sens cela pourrait avoir si ce n'était pas
le cas pour ffmpeg…

Hors ligne

#278 16-06-2019 18:54:35

enicar
Membre
Lieu : ailleurs
Distrib. : sid
Noyau : 5.8.7
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Je viens de me rendre compte que je peux encore optimisé ce que j'ai fait pour
certaines variables. Par exemple pour la variable RATIO, j'ai fait :


RATIO=$(lsdvd_x "$i" | \
        awk 'NR <= 3 && /Aspect ratio:/ {sub(/\//, ":", $11); arr[++max]=$11}
                    END { sub(/.$/, "", arr[max]);
                         for(i=1; i <= max; i++)
                            print arr[i]}'
)
 


Or une fois que bash va lire le résultat, il va remplacer les
nouvelles par des espaces. En plus ça serait plus simple (et plus
rapide) de faire la substitution sur la chaîne finale pour tout
afficher d'un seul coup, sans utiliser de boucle for.

Et donc voilà ce que ça pourrait donner :


RATIO=$(lsdvd_x "$i" | \
        awk 'NR <= 3 && /Aspect ratio:/ {sub(/\//, ":", $11); resultat = resultat " " $11 }
             END { sub(/.$/, "", resultat);
                   print resultat
              }'

 


L'espace que je mets en plus au début n'est pas gênant puisqu'il sera
mangé par bash au moment de l'interpolation de la variable.

EDIT :
D'ailleurs c'est quoi ce caractère qu'on supprime à la fin du dernier élément ?

Dernière modification par enicar (16-06-2019 18:59:00)

Hors ligne

#279 16-06-2019 18:56:21

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : Linux 5.7.11-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Il y a quelque chose qui va pas au niveau de SIDFR. Touche plus à ce niveau. Mis à part ça, tout fonctionne.

ton dernier SIDFR me sort

1 20 0 0

alors que moi il me faudrait

1 20

pour le fr


  Subtitle: 01, Language: en - English, Content: Undefined, Stream id: 0x20,
  Subtitle: 02, Language: fr - Francais, Content: Undefined, Stream id: 0x21,
  Subtitle: 03, Language: de - Deutsch, Content: Undefined, Stream id: 0x22,
  Subtitle: 04, Language: it - Italiano, Content: Undefined, Stream id: 0x23,
  Subtitle: 05, Language: es - Espanol, Content: Undefined, Stream id: 0x24,
  Subtitle: 06, Language: nl - Nederlands, Content: Undefined, Stream id: 0x25,
  Subtitle: 07, Language: ar - Arabic, Content: Undefined, Stream id: 0x26,
  Subtitle: 08, Language: cs - Czech, Content: Undefined, Stream id: 0x27,
  Subtitle: 09, Language: da - Dansk, Content: Undefined, Stream id: 0x28,
  Subtitle: 10, Language: fi - Suomi, Content: Undefined, Stream id: 0x29,
  Subtitle: 11, Language: el - Greek, Content: Undefined, Stream id: 0x2a,
  Subtitle: 12, Language: iw - Hebrew, Content: Undefined, Stream id: 0x2b,
  Subtitle: 13, Language: hi - Hindi, Content: Undefined, Stream id: 0x2c,
  Subtitle: 14, Language: hu - Magyar, Content: Undefined, Stream id: 0x2d,
  Subtitle: 15, Language: is - Islenska, Content: Undefined, Stream id: 0x2e,
  Subtitle: 16, Language: no - Norsk, Content: Undefined, Stream id: 0x2f,
  Subtitle: 17, Language: pl - Polish, Content: Undefined, Stream id: 0x30,
  Subtitle: 18, Language: pt - Portugues, Content: Undefined, Stream id: 0x31,
  Subtitle: 19, Language: sv - Svenska, Content: Undefined, Stream id: 0x32,
  Subtitle: 20, Language: tr - Turkish, Content: Undefined, Stream id: 0x33,
  Subtitle: 21, Language: fr - Francais, Content: Undefined, Stream id: 0x34,
  Subtitle: 22, Language: de - Deutsch, Content: Undefined, Stream id: 0x35,
  Subtitle: 23, Language: it - Italiano, Content: Undefined, Stream id: 0x36,
  Subtitle: 24, Language: es - Espanol, Content: Undefined, Stream id: 0x37,
  Subtitle: 25, Language: nl - Nederlands, Content: Undefined, Stream id: 0x38,
 



0 pour 1
1 pour 2

20 pour 21

Dernière modification par golgot200 (16-06-2019 18:57:09)

Hors ligne

#280 16-06-2019 19:02:36

enicar
Membre
Lieu : ailleurs
Distrib. : sid
Noyau : 5.8.7
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Bon je vais regarder sur un dvd perso ce que donne le lsdvd_x, pour comprendre
ce qui se passe.

Hors ligne

#281 16-06-2019 19:20:59

enicar
Membre
Lieu : ailleurs
Distrib. : sid
Noyau : 5.8.7
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Bon il me faudrait un dvd avec plusieurs piste en français. Je vais chercher dans ma collection…

Hors ligne

#282 16-06-2019 19:25:06

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : Linux 5.7.11-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

J'ai trouvé je crois !!! tu as mis langage au lieu de language smile

EDIT: c'est bien ça. wink

SIDFR=$(lsdvd_x "$i" |awk '/Subtitle/ && /Language: fr/ { sub(/.$/ ,"", $2); print $2 }' | \
                awk 'BEGIN { RS="[^0-9]"; OFS=""; ORS=""; } {if(length($0)) {print ($0-1);}print RT}')




et non

   

SIDFR=$(lsdvd_x "$i" |awk '/Subtitle/ && /Langage: fr/ { sub(/.$/ ,"", $2); print $2 }' | \
                awk 'BEGIN { RS="[^0-9]"; OFS=""; ORS=""; } {if(length($0)) {print ($0-1);}print RT}')





Correction du

awk nl nld

pour 

awk_lpcm nl nld

Dernière modification par golgot200 (16-06-2019 19:32:11)

Hors ligne

#283 16-06-2019 19:37:48

enicar
Membre
Lieu : ailleurs
Distrib. : sid
Noyau : 5.8.7
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

humm… pour un dvd avec deux pistes de sous titres en français qui sont les deux premières
ça donne le même résultat (ta méthode et la mienne),  et aussi  puisqu'il s'agit
de soustraire un à chaque nombre. On peut faire cela plus simplement tout dans
la même commande awk tout en vérifiant si c'est un nombre ou pas. Si ce n'est pas
un nombre on ne l'affiche pas. Sinon, on soustrait 1, puis on print…

Pour me rendre compte de ce qui se passe sur ton dvd, tu pourrais me renvoyer la sortie de ce
script :


#! /bin/bash

declare -a MPLAYER_IDENTIFY
declare -a LSDVD_X

menage () {
    rm -f "$FOLDER"/*.idx
    rm -f "$FOLDER"/*.sub
    rm -f "$FOLDER/$i-$TITLE+CHAPTERS.mkv"
}

mplayer_identify () {
    if [[  "${#MPLAYER_IDENTIFY[@]}" -eq 0 ]]; then
        mapfile MPLAYER_IDENTIFY < \
                <(mplayer -noconfig all -nocache -vo null -ao null -frames 0 \
                          -identify -dvd-device "$DEVICE" dvd://"$1" 2>/dev/null)
    fi
    echo -n "${MPLAYER_IDENTIFY[@]}"
}


lsdvd_x () {
    if [[ "${#LSDVD_X[@]}" -eq 0  ]]; then
        mapfile LSDVD_X < <(lsdvd -x "$DEVICE" -t "$1" 2> /dev/null)
    fi
    echo -n "${LSDVD_X[@]}"
}

## CONDITION : UN SEUL DVD-VIDÉO
mapfile -t  BLKID < <(blkid /dev/sr* |sed -E 's/^([^:]+).*/\1/')

if [[ "${#BLKID[@]}" -eq "1" ]] ; then
    echo "Proceed..."
else
    echo "Aucun DVD-Vidéo ou 2 DVD-Vidéos/DVD-ROM ... dans différents lecteurs ?"
    exit 0
fi

DEVICE=${BLKID[0]}
unset BLKID

## LABEL DU DVD-VIDÉO & NOMBRE TOTAL DE TITRES SUR CELUI-CI
TITLE=$(lsdvd "$DEVICE" | awk 'NR == 1 {print $3; exit}')
TITLE_COUNT=$(lsdvd "$DEVICE" | grep -c ^'Title: ')


DIR=$(xdg-user-dir DESKTOP)
FOLDER="$DIR/tmp/$TITLE"


if [ ! -d "$FOLDER" ]; then
    echo "$FOLDER n'existe pas !"
    echo "Création Du Dossier $FOLDER"
    mkdir -p "$FOLDER"
fi

for (( i=1; i<=TITLE_COUNT; i++ ))
do
    MPLAYER_IDENTIFY=()
    LSDVD_X=()
    ## TITRES D'UNE DURÉE DE PLUS DE .... SECONDES [ ICI, 1200 SECONDES = 20 MINUTES]
    LENGTH=$(mplayer_identify "$i" | grep ID_LENGTH | sed -E 's/.*=([0-9]*)/\1/' | sed 's/\..*//')
    LIMIT=1200
    [[ "$LENGTH" -le "$LIMIT" ]] && continue



    SIDFR1=$(lsdvd_x "$i" | grep "Subtitle:" | grep  "Language: fr" | \
            awk '{print $2}' | sed s'/.$//' | \
            awk 'BEGIN { RS="[^0-9]"; OFS=""; ORS=""; } {if(length($0)) {print ($0-1);}print RT}')

    SIDFR2=$(lsdvd_x "$i" |awk '/Subtitle:/ && /Langage: fr/ { sub(/,$/ ,"", $2); print $2 }' | \
            awk 'BEGIN { RS="[^0-9]"; OFS=""; ORS=""; } {if(length($0)) {print ($0-1);}print RT}')

    echo "piste dvd://$i"
    echo "SIDFR1: $SIDFR1"
    echo
    echo "SIDFR2: $SIDFR2"
    echo
    echo
done
 


C'est juste un extrait avec juste ce qui m'intéresse pour SIDFR.

Je dois dire que je trouvais la ligne de code :


awk 'BEGIN { RS="[^0-9]"; OFS=""; ORS=""; } {if(length($0)) {print ($0-1);}print RT}'
 


assez suspecte. Après je ne connais pas tous les cas qui peuvent se
produire.

Hors ligne

#284 16-06-2019 19:46:04

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : Linux 5.7.11-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

enicar a écrit :

...

Pour me rendre compte de ce qui se passe sur ton dvd, tu pourrais me renvoyer la sortie de ce
script :


#! /bin/bash

declare -a MPLAYER_IDENTIFY
declare -a LSDVD_X

menage () {
    rm -f "$FOLDER"/*.idx
    rm -f "$FOLDER"/*.sub
    rm -f "$FOLDER/$i-$TITLE+CHAPTERS.mkv"
}

mplayer_identify () {
    if [[  "${#MPLAYER_IDENTIFY[@]}" -eq 0 ]]; then
        mapfile MPLAYER_IDENTIFY < \
                <(mplayer -noconfig all -nocache -vo null -ao null -frames 0 \
                          -identify -dvd-device "$DEVICE" dvd://"$1" 2>/dev/null)
    fi
    echo -n "${MPLAYER_IDENTIFY[@]}"
}


lsdvd_x () {
    if [[ "${#LSDVD_X[@]}" -eq 0  ]]; then
        mapfile LSDVD_X < <(lsdvd -x "$DEVICE" -t "$1" 2> /dev/null)
    fi
    echo -n "${LSDVD_X[@]}"
}

## CONDITION : UN SEUL DVD-VIDÉO
mapfile -t  BLKID < <(blkid /dev/sr* |sed -E 's/^([^:]+).*/\1/')

if [[ "${#BLKID[@]}" -eq "1" ]] ; then
    echo "Proceed..."
else
    echo "Aucun DVD-Vidéo ou 2 DVD-Vidéos/DVD-ROM ... dans différents lecteurs ?"
    exit 0
fi

DEVICE=${BLKID[0]}
unset BLKID

## LABEL DU DVD-VIDÉO & NOMBRE TOTAL DE TITRES SUR CELUI-CI
TITLE=$(lsdvd "$DEVICE" | awk 'NR == 1 {print $3; exit}')
TITLE_COUNT=$(lsdvd "$DEVICE" | grep -c ^'Title: ')


DIR=$(xdg-user-dir DESKTOP)
FOLDER="$DIR/tmp/$TITLE"


if [ ! -d "$FOLDER" ]; then
    echo "$FOLDER n'existe pas !"
    echo "Création Du Dossier $FOLDER"
    mkdir -p "$FOLDER"
fi

for (( i=1; i<=TITLE_COUNT; i++ ))
do
    MPLAYER_IDENTIFY=()
    LSDVD_X=()
    ## TITRES D'UNE DURÉE DE PLUS DE .... SECONDES [ ICI, 1200 SECONDES = 20 MINUTES]
    LENGTH=$(mplayer_identify "$i" | grep ID_LENGTH | sed -E 's/.*=([0-9]*)/\1/' | sed 's/\..*//')
    LIMIT=1200
    [[ "$LENGTH" -le "$LIMIT" ]] && continue



    SIDFR1=$(lsdvd_x "$i" | grep "Subtitle:" | grep  "Language: fr" | \
            awk '{print $2}' | sed s'/.$//' | \
            awk 'BEGIN { RS="[^0-9]"; OFS=""; ORS=""; } {if(length($0)) {print ($0-1);}print RT}')

    SIDFR2=$(lsdvd_x "$i" |awk '/Subtitle:/ && /Langage: fr/ { sub(/,$/ ,"", $2); print $2 }' | \
            awk 'BEGIN { RS="[^0-9]"; OFS=""; ORS=""; } {if(length($0)) {print ($0-1);}print RT}')

    echo "piste dvd://$i"
    echo "SIDFR1: $SIDFR1"
    echo
    echo "SIDFR2: $SIDFR2"
    echo
    echo
done
 


C'est juste un extrait avec juste ce qui m'intéresse pour SIDFR.

Je dois dire que je trouvais la ligne de code :


awk 'BEGIN { RS="[^0-9]"; OFS=""; ORS=""; } {if(length($0)) {print ($0-1);}print RT}'
 


assez suspecte. Après je ne connais pas tous les cas qui peuvent se
produire.






[patrick@PC1 Desktop]$ ./1
Proceed...
/home/patrick/Desktop/tmp/SLEEPLESS_IN_SEATTLE n'existe pas !
Création Du Dossier /home/patrick/Desktop/tmp/SLEEPLESS_IN_SEATTLE
piste dvd://1
SIDFR1: 1
20

SIDFR2:


[patrick@PC1 Desktop]$
 

Hors ligne

#285 16-06-2019 19:47:00

enicar
Membre
Lieu : ailleurs
Distrib. : sid
Noyau : 5.8.7
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Bon, c'était juste une erreur de frappe : «  Langage » au lieu de « Language » hmm
Je corrige dans le post #274.

Hors ligne

#286 16-06-2019 20:00:16

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : Linux 5.7.11-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Premier test.

Un DVD avec que des audio ac3 ou dts et quelques sub en français : c'est impeccable smile

je teste maintenant un dvd avec  un audio ac3 eng et deux audio mpeg1 en et fr  et un sub fr ...

PS: j'ai passé LIMIT à 30 secondes

Dernière modification par golgot200 (16-06-2019 20:01:52)

Hors ligne

#287 16-06-2019 20:02:25

enicar
Membre
Lieu : ailleurs
Distrib. : sid
Noyau : 5.8.7
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Et donc je te propose une modification pour la variable SIDFR non
encore intégré dans le post #274. Il s'agit de tout mettre
dans la même commande awk, au lieu de


SIDFR=$(lsdvd_x "$i" |awk '/Subtitle:/ && /Language: fr/ { sub(/.$/, "", $2); print $2 }' | \
    awk 'BEGIN { RS="[^0-9]"; OFS=""; ORS=""; } {if(length($0)) {print ($0-1);}print RT}')
 


Je propose :


SIDFR=$(lsdvd_x "$i" |awk '/Subtitle:/ && /Language: fr/ { sub(/,$/ ,"", $2);
                           if ($2 ~ /^[0-9]+$/) print (--$2) }'
)
 


Chez moi, ça marche, et c'est quand même bien plus simple.

Ce que je ne comprends pas dans ton code c'est le « print RT »
c'est censé affiché quoi ? Normalement RT contient la partie
correspondante à RS, dans ce cas c'est un morceau de chaîne sans
chiffre… (car RS="[^0-9]"). Je ne vois pas à quoi ça sert si tu veux
juste récupérer les numéros des pistes de sous titres…
Il faut que tu m'expliques.

Dernière modification par enicar (16-06-2019 20:24:19)

Hors ligne

#288 16-06-2019 20:07:47

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : Linux 5.7.11-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

golgot200 a écrit :

Premier test.

Un DVD avec que des audio ac3 ou dts et quelques sub en français : c'est impeccable smile

je teste maintenant un dvd avec  un audio ac3 eng et deux audio mpeg1 en et fr  et un sub fr ...

PS: j'ai passé LIMIT à 30 secondes



Par contre en passant à LIMIT 30 secondes, je viens de m'appercevoir que je n'ai plus le sous-titrages français sur les "one audio eng" hmm

Hors ligne

#289 16-06-2019 20:10:06

enicar
Membre
Lieu : ailleurs
Distrib. : sid
Noyau : 5.8.7
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

golgot200 a écrit :

Par contre en passant à LIMIT 30 secondes, je viens de m'appercevoir que je n'ai plus le sous-titrages français sur les "one audio eng" neutral


Pas normal… Mais je ne vois pas d'où ça peut venir…

Hors ligne

#290 16-06-2019 20:11:24

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : Linux 5.7.11-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

enicar a écrit :

golgot200 a écrit :

Par contre en passant à LIMIT 30 secondes, je viens de m'appercevoir que je n'ai plus le sous-titrages français sur les "one audio eng" neutral


Pas normal… Mais je ne vois pas d'où ça peut venir…



je cherche. je suis revenu sur mon dernier script et ça passe. Je compare le tien et le mien wink

Hors ligne

#291 16-06-2019 20:17:35

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : Linux 5.7.11-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

C'est bon, ça fonctionne bizarrement maintenant hmm
je ne vois pas pourquoi maintenant. Un oublie d'enregistrement du fichier peut-être.
Enfin ça fonctionne c'est l'essentiel smile

Dernière modification par golgot200 (16-06-2019 20:18:05)

Hors ligne

#292 16-06-2019 20:21:37

enicar
Membre
Lieu : ailleurs
Distrib. : sid
Noyau : 5.8.7
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

golgot200 a écrit :

Enfin ça fonctionne c'est l'essentiel smile


Je n'aime pas ce genre de comportement, ça doit tout le temps fonctionner.

Hors ligne

#293 16-06-2019 20:26:26

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : Linux 5.7.11-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

enicar a écrit :

golgot200 a écrit :

Enfin ça fonctionne c'est l'essentiel smile


Je n'aime pas ce genre de comportement, ça doit tout le temps fonctionner.



Et oui mais je viens de refaire encore le test et tout est bon. un ctrl + c trop rapide je pense. Ce serait plus plausible avec un idx qui n'a pu se créer à temps. Je n'ai pas du voir l'erreur dans mon terminal.

Hors ligne

#294 16-06-2019 20:33:12

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : Linux 5.7.11-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

enicar a écrit :

Et donc je te propose une modification pour la variable SIDFR non
encore intégré dans le post #274. Il s'agit de tout mettre
dans la même commande awk, au lieu de


SIDFR=$(lsdvd_x "$i" |awk '/Subtitle:/ && /Language: fr/ { sub(/.$/, "", $2); print $2 }' | \
    awk 'BEGIN { RS="[^0-9]"; OFS=""; ORS=""; } {if(length($0)) {print ($0-1);}print RT}')
 


Je propose :


SIDFR=$(lsdvd_x "$i" |awk '/Subtitle:/ && /Language: fr/ { sub(/,$/ ,"", $2);
                           if ($2 ~ /^[0-9]+$/) print (--$2) }'
)
 


Chez moi, ça marche, et c'est quand même bien plus simple.

Ce que je ne comprends pas dans ton code c'est le « print RT »
c'est censé affiché quoi ? Normalement RT contient la partie
correspondante à RS, dans ce cas c'est un morceau de chaîne sans
chiffre… (car RS="[^0-9]"). Je ne vois pas à quoi ça sert si tu veux
juste récupérer les numéros des pistes de sous titres…
Il faut que tu m'expliques.




Ta modification fonctionne.


Pour ce qui est du « print RT » c'est quand on c'est cassé les dents avec un collègue pour arriver à sortir les sub fr alors qu'on pointait toujours sur de l'étranger. La commande fonctionnant sur plusieurs DVD, on a pas cherché plus loin. Le but étant de continuer pour les autres DVDs et les éventuelles rajouts d'options.

Dernière modification par golgot200 (16-06-2019 20:35:19)

Hors ligne

#295 16-06-2019 20:39:22

enicar
Membre
Lieu : ailleurs
Distrib. : sid
Noyau : 5.8.7
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Je pense que je n'aurais aucune explication de ta part sur :


awk 'BEGIN { RS="[^0-9]"; OFS=""; ORS=""; } {if(length($0)) {print ($0-1);}print RT}


Je ne sais pas où tu as chopé ça…
Ceci dit dans certains cas, ça pourrait être utile. Mais vu le format qui est sortie
à la suite du premier traitement (on récupère un nombre), je ne vois pas l'intérêt.
À moins qu'on ne récupère pas toujours un nombre et qu'il faille utiliser ce résultat
par la suite. Surtout que je viens de voir dans le man de mencoder que l'option
« -sid  » prend un nombre de 0 à 31…

EDIT : Nos messages se sont croisés, désolé.

Dernière modification par enicar (16-06-2019 20:52:57)

Hors ligne

#296 16-06-2019 20:44:01

enicar
Membre
Lieu : ailleurs
Distrib. : sid
Noyau : 5.8.7
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

golgot200 a écrit :

Ta modification fonctionne.


Bien, c'est une bonne nouvelle. Et ça me paraît logique.  Finalement
j'ai remplacé deux grep, un sed et deux awk par une seule commande
awk… c'est pas mal du tout.

Hors ligne

#297 16-06-2019 20:53:33

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : Linux 5.7.11-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

enicar a écrit :

Je pense que je n'aurais aucune explication de ta part sur :


awk 'BEGIN { RS="[^0-9]"; OFS=""; ORS=""; } {if(length($0)) {print ($0-1);}print RT}


Je ne sais pas où tu as chopé ça…
Ceci dit dans certains cas, ça pourrait être utile. Mais vu le format qui est sortie
à suite du premier traitement (on récupère un nombre), je ne vois pas l'intérêt.
À moins qu'on ne récupère pas toujours un nombre et qu'il faille utiliser ce résultat
par la suite. Surtout que je viens de voir dans le man de mencoder que l'option
« -sid  » prend un nombre de 0 à 31…

EDIT : Nos messages se sont croisés, désolé.



On cherchait un moyen de toujours commencer par 1 .... 20  au lieu de 2 .... 21 pour ce qui est de print ($0-1) et le collègue  à mis ce print RT mais je ne peux pas t'en dire plus. Ou peut-être décaler le 1 du 20 mais je ne suis pas sûr.

Dernière modification par golgot200 (16-06-2019 20:55:50)

Hors ligne

#298 16-06-2019 20:58:56

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : Linux 5.7.11-arch1-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

golgot200 a écrit :

Premier test.

Un DVD avec que des audio ac3 ou dts et quelques sub en français : c'est impeccable smile

je teste maintenant un dvd avec  un audio ac3 eng et deux audio mpeg1 en et fr  et un sub fr ...

PS: j'ai passé LIMIT à 30 secondes



Le "un audio ac3 eng et deux audio mpeg1 en et fr  et un sub fr" c'est impeccable wink

Hors ligne

#299 16-06-2019 20:59:37

enicar
Membre
Lieu : ailleurs
Distrib. : sid
Noyau : 5.8.7
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

golgot200 a écrit :

On chercher un moyen de toujours commencer par 1 .... 20  au lieu de 2 .... 21 pour ce qui est de print ($0-1) et le collègue  à mis ce print RT mais je ne peux pas t'en dire plus. Ou peut-être décaler le 1 du 20 mais je ne suis pas sûr.


Le « print RT  » peut servir à remettre le séparateur (RS, qui peut
être une regexp et donc la chaîne correspondante n'est pas constante)
dans le flux de sortie. Mais dans ce cas, il me semble que ça ne sert
à rien.

EDIT : Remarque, voilà encore une chose que je ne
connaissais pas et que je viens de découvrir, et ce n'est pas le seul truc
que j'ai apprise en modifiant ton script wink

Dernière modification par enicar (16-06-2019 21:01:46)

Hors ligne

#300 16-06-2019 21:12:09

enicar
Membre
Lieu : ailleurs
Distrib. : sid
Noyau : 5.8.7
(G)UI : openbox
Inscription : 26-08-2010

Re : Script: FFMPEG : Ripper et Encoder ses DVD pour archivage (SUBFR,etc)

Tiens une autre question, pourquoi il n'y a qu'une seul commande ffmpeg
pour laquelle tu utilises un filtre ?


-filter:v hue=b=0.1:s=0.7,hqdn3d=1.5:1.5:4:4,unsharp=luma_msize_x=5:luma_msize_y=5:luma_amount=0.5,noise=c0s=2:c1s=2:c2s=2:c0f=a+t
 


Celle qui correspond à (AC3 & DTS & MPEG1 SOUS-TITRAGE(S) VF).
Dans les autres cas, il n'y a pas besoin de ce filtre ?

Hors ligne

Pied de page des forums