Debian-facile

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

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

#201 14-06-2019 18:21:28

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 je vais corriger ça dans la version que j'ai faite pour moi
qui n'utilise aucune accélération matérielle. J'utilise les décodeurs
et encodeurs logiciels.

Hors ligne

#202 14-06-2019 18:21:49

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 pourrais en brancher un second pour
tester, mais j'ai un peu la flemme de d'ouvir le capot du pc pour ça.



J'ai ajouté un lecteur en usb, c'est pas top mais ça ma permis de vérifier.
Je le vire maintenant car il me fout la mer... au montage smile

Hors ligne

#203 14-06-2019 18:24: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 :

 


INFO_LPCM=$(lsdvd_x "$i" | grep 'lpcm' | awk '{print$4}')
 



Tu peux mettre directement :


INFO_LPCM=$(lsdvd_x "$i" | awk '/lpcm/ { print $4 }')
 


pas besoin de grep.

Dernière modification par enicar (14-06-2019 18:27:06)

Hors ligne

#204 14-06-2019 18:25:50

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)

Bon, je quitte un instant, il faut que j'aille chercher ma femme qui c'est endormi dans le train lol

Hors ligne

#205 14-06-2019 18:41:12

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 me demande si on ne peut pas remplacer :


COUNT_LPCM=$(lsdvd_x "$i" |grep 'lpcm' | awk '{print$8}' | \
                    awk '{x=x+NF}END{print x}')
 


Par :


COUNT_LPCM=$(lsdvd_x "$i" |grep -c 'lpcm')
 


Comme tu extrais le 8ème champ avec « awk '{ print $8 }' », on est sûr
qu'il ne comporte pas de séparateurs de champ. Ensuite, tu le repasses
dans awk pour compter le nombre de champs pour chaque ligne avec
« awk '{x=x+NF} END{print x}' ». Comme il n'y en a plus qu'un champ
par ligne ça revient au même que de compter le nombre de lignes qui
contiennent le motif « lpcm » (avec « grep -c 'lpcm' »).

Hors ligne

#206 14-06-2019 19:06: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)

Un autre truc que je voulais te proposer.

Dans ton script il y une grande boucle for, dans cette boucle tu testes
la durée de la piste et si c'est trop court tu passes au reste.
Pour résumer tu as :


for (( i=1; i<=TITLE_COUNT; i++ ))
do
    … # initialisation

    if [[ "$LIMIT_TIME" -gt "$B" ]]; then
   
    … # ce qu'il faut faire ici

    fi
done
 


Ce qui fait qu'on a une énorme branche pour le « if » et qu'il n'y a
rien à faire sinon. Puisqu'on est dans un boucle on peut utiliser
« continue » qui permet de court-circuiter le reste de la boucle et
de commencer une nouvelle itération.

Ce que je propose c'est :


for (( i=1; i<=TITLE_COUNT; i++ ))
do
    … # initialisation

    [[ "$LIMIT_TIME" -le "$B" ]] && continue

    … # ce qu'il faut faire ici

done
 


J'ai juste inversé le sens du test, c'est à dire que j'effectue le
« continue » si le temps est plus court qu'un certain temps.
Dans ce cas, je trouve qu'on gagne en clarté.

EDIT : D'ailleurs on se rend compte qu'on pourrait
mettre le test pour la limite du temps dès le début de la boucle.
C'est à dire avant le traitement des différents langages. Pas besoin
de faire tout ça, si on ne s'en sert pas wink.
Du coup on aurait (schématiquement) :


for (( i=1; i<=TITLE_COUNT; i++ ))
do
    LIMIT_TIME=$(mplayer_identify "$i" | grep ID_LENGTH | sed 's/.*=\([0-9]*\)/\1/' | sed "s/\\..*//")
    [[ "$LIMIT_TIME" -le "$B" ]] && continue

    # le traitement des langages puis
    # … le reste

done
 


Je trouve que ça s'améliore wink

Dernière modification par enicar (14-06-2019 19:14:03)

Hors ligne

#207 14-06-2019 19:48:43

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)

Très important. J'ai introduit un bug dans ton
script en faisant une mise en mémoire pour les fonctions
mplayer_identify et lsdvd_x.

En effet comme le résultat est mis en mémoire, il n'est plus modifié
pour les différentes pistes (dvd://1, dvd://2,…). Les valeurs que
renvoient mes fonctions seront toujours celles pour la piste dvd://1.
Pour réparer le bug, il suffit de remettre à zéro, les tableaux
MPLAYER_IDENTIFY et LSDVD_X au début de chaque boucle.

Donc voilà ce qu'il faut absolument écrire :



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]
    LIMIT_TIME=$(mplayer_identify "$i" | grep ID_LENGTH | sed 's/.*=\([0-9]*\)/\1/' | sed "s/\\..*//")
    B=1200
    [[ "$LIMIT_TIME" -le "$B" ]] && continue

    # le reste suit…

done
 



Et hop !

Hors ligne

#208 14-06-2019 21:20:49

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)

Ce qui valait pour la variable COUNT_LPCM vaut également
pour la variable COUNT_AC3_DTS_MPEG1.
Donc à la place de :


COUNT_AC3_DTS_MPEG1=$(lsdvd_x "$i" | grep 'ac3,\|dts,\|mpeg1,' | \
                        awk '{print $8}' |awk '{x=x+NF}END{print x}')
 


On peut mettre :


COUNT_AC3_DTS_MPEG1=$(lsdvd_x "$i" | grep -E -c 'ac3,|dts,|mpeg1,')
 


J'ai remplacé le grep par grep -E pour bénéficier des expressions
régulières étendues. Ça évite de mettre des « \| ». C'est souvent
préférable d'utilser « grep -E », mais pas tout le temps…
L'option « -c » permet de compter les lignes pour lesquelles le motif
correspond, comme tu l'auras compris.
Bon ça te fait du pain sur la planche wink

D'une manière générale pour compter les lignes de la sortie d'une
commande on peut utiliser « wc -l », ça renvoit juste le nombre de
lignes. Mais dans ce cas, ce n'est pas la peine, grep peut le faire.

Hors ligne

#209 14-06-2019 21:44:56

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)

Pareil pour la variable COUNT_SID_FR. À la place de :


COUNT_SID_FR=$(mplayer_identify "$i" | \
                    grep "subtitle ( sid ):" | grep "language: fr" | \
                    awk '{print $7}' | awk '{x=x+NF}END{print x}')
 


On peut écrire :


COUNT_SID_FR=$(mplayer_identify "$i" |grep "subtitle ( sid ):" | \
                  grep -c "language: fr")
 



On tire une règle générale, dès que tu fais :


# PSEUDO CODE
cmd | grep motif | awk '{print $<n> }' | \
     awk '{x=x+NF} END {print x}'
 


Tu peux écrire :


# PSEUDO CODE
cmd |grep -c motif
 



Il y a un autre « pattern » que tu utilises régulièrement que tu peux
simplifier. Dès que tu fais :


# PSEUDO CODE
cmd | grep motif | awk '{print $<n> }'
 


Tu peux écrire :


# PSEUDO CODE
cmd |awk '/motif/ { print $<n> }'
 


En prenant soin d'apdater le « motif ». Dans awk les expressions
régulières sont des expressions régulières étendues.
Il y a peut-être quelques exceptions… C'est l'enfer les expressions
régulière, chaque programme a sa propre version !

Hors ligne

#210 14-06-2019 21:46:37

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 :

...


COUNT_AC3_DTS_MPEG1=$(lsdvd_x "$i" | grep -E -c 'ac3,|dts,|mpeg1,')
 



big_smile

C'est la dessus que j'étais mais je ne trouvais pas le -E smile


J'ai rajouté dans le script pour ma part, une sortie pour un mkv qu'en français + sub VF

voulez-vous supprimer le fichier multilangue viendra après. Ce sera en choix.

Hors ligne

#211 14-06-2019 21:49:30

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 :

C'est la dessus que j'étais mais je ne trouvais pas le -E smile


C'est dans la page manuelle wink

Hors ligne

#212 14-06-2019 21:52:03

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 :

C'est la dessus que j'étais mais je ne trouvais pas le -E smile


C'est dans la page manuelle wink



j'y pense jamais. smile


Création du MKV Audio Fr...
]mkvmerge v34.0.0 ('Sight and Seen') 64-bit
« /home/patrick/Desktop/SLEEPLESS_IN_SEATTLE/1-SLEEPLESS_IN_SEATTLE-[Language:en,fr,de,it,es,en,en]+SUBVF.mkv » : Utilisation du démultiplexeur pour le format « Matroska ».
« /home/patrick/Desktop/SLEEPLESS_IN_SEATTLE/1-SLEEPLESS_IN_SEATTLE-[Language:en,fr,de,it,es,en,en]+SUBVF.mkv » piste 0 : Utilisation du module de sortie pour le format « HEVC/H.265 ».
« /home/patrick/Desktop/SLEEPLESS_IN_SEATTLE/1-SLEEPLESS_IN_SEATTLE-[Language:en,fr,de,it,es,en,en]+SUBVF.mkv » piste 2 : Utilisation du module de sortie pour le format « AC-3 ».
« /home/patrick/Desktop/SLEEPLESS_IN_SEATTLE/1-SLEEPLESS_IN_SEATTLE-[Language:en,fr,de,it,es,en,en]+SUBVF.mkv » piste 8 : Utilisation du module de sortie pour le format « VobSub ».
« /home/patrick/Desktop/SLEEPLESS_IN_SEATTLE/1-SLEEPLESS_IN_SEATTLE-[Language:en,fr,de,it,es,en,en]+SUBVF.mkv » piste 9 : Utilisation du module de sortie pour le format « VobSub ».
Le fichier « /home/patrick/Desktop/SLEEPLESS_IN_SEATTLE/1-SLEEPLESS_IN_SEATTLE-[VERSION_FR+SUBVF].mkv » est ouvert en écriture.
Progression : 100%
 



Bon ça c'est OK

Hors ligne

#213 14-06-2019 22:00:11

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)

Est-ce correct ?


COUNT_SID_FR=$(mplayer_identify "$i" | grep -E -c 'subtitle ( sid ):|language: fr')
 



En tous cas, ça fonctionne.

Hors ligne

#214 14-06-2019 22:07:52

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)

Ah oui, une chose aussi
Ce

sed -e 's/c/1c/g'

pour le map, je ne sais pas si je l'ai expliqué, c'est parce mplayer et ffmpeg ont une différence de nommage de l'aid pour le mp2. Donc ne pas le toucher si on ne veux pas un croisement entre les audios et les tags .... "audio fr - tag eng"

Dernière modification par golgot200 (14-06-2019 22:08:29)

Hors ligne

#215 14-06-2019 22:30:47

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)

À propos du drapeau g pour l'opérateur de substitution de sed.
Par exemple tu écris :


INFO_AC3_DTS_MPEG1=$(lsdvd_x "$i" |awk '/ac3,|dts,|mpeg1,/  {printf ""$4","}'  | \
                        sed -e 's/,*$//g')
 



Dans le côté motif tu utilises une ancre (le $) qui demande à sed
de trouver un nombre quelconque de « , » (éventuellement aucune) situées
à la fin de la chaîne. Le g est donc inutile. Le g sert par exemple
dans :


echo coucou |sed 's/c/t/g'
 


Retour :


toutou
 



Sans le g :


echo coucou |sed 's/c/t/'
 


retour :


toucou
 



Bref, tu peux supprimer le g.
On peut faire bien mieux. On a pas besoin de sed. Au lieu
d'afficher les chaînes séparés par des virgules, on va accumuler
ces chaînes dans une variables dans awk. Et à la fin, on supprime les
virgules à la fin de cette chaîne, puis on l'affiche.
Voilà comme ça se présente :


INFO_AC3_DTS_MPEG1=$(lsdvd_x "$i" | \
    awk '/ac3,|dts,|mpeg1,/  { x = x $4 ","}
        END { sub(/,*$/, "", x); print x }'
)
 


qui devrait fonctionner, si je ne me suis pas trompé.

Un petit script qui démontre son fonctionnement :


#! /bin/bash

awk '{x = x $1 "," } END{ sub(/,*$/, "", x); print x}' <<EOF
un truc
deux trucs
trois trucs
quatre trucs
EOF

 


Lorsqu'on exécute ce script, ça affiche :


un,deux,trois,quatre
 



EDIT :  J'ai modifié le code de l'acquisition de la variable INFO_AC3_DTS_MPEG1.
Il y a avait un « \ » en trop. En effet, dans bash, les chaînes comprise entre deux « ' » peuvent
tenir sur plusieurs lignes.

Dernière modification par enicar (15-06-2019 15:52:56)

Hors ligne

#216 14-06-2019 22:36: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)

Bien smile
Je regarde demain car là, il faut que je teste plusieurs DVD pour voir si l'un d'entres eux passerait pas au travers. Certains sont récalcitrants wink
je suis obligé de jongler.

C'est combien la durée de vie d'un tiroir ? big_smile

Dernière modification par golgot200 (14-06-2019 22:36:50)

Hors ligne

#217 14-06-2019 22:43:44

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 :

Est-ce correct ?


COUNT_SID_FR=$(mplayer_identify "$i" | grep -E -c 'subtitle ( sid ):|language: fr')
 



En tous cas, ça fonctionne.



Remarque que c'est très différent de :


COUNT_SID_FR=$(mplayer_identify "$i" |grep "subtitle ( sid ):" | \
                    grep -c "language: fr")
 


Dans le premier cas on compte les lignes où l'un des motifs
existent. C'est à dire qu'il pourrait exister des lignes avec
seulement « subtitle ( sid ): » mais qui n'aurait pas
« language: fr » qui serait compté (et inversement).

Par contre dans le second cas on ne compte que les lignes qui comportent
le motif « subtitle ( sid ): » et le motif « language: fr ».
Pour le faire en un seul grep, si le motif « subtitle ( sid ): »
arrive toujours avant le motif « language: fr » :


COUNT_SID_FR=$(mplayer_identify "$i" | \
        grep -c 'subtitle ( sid ):.*language: fr')
 


Comme ça c'est presque complètement équivalent sauf si les motifs
peuvent être trouvés dans l'autre sens…

Hors ligne

#218 14-06-2019 22:46:44

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 :

pour le map, je ne sais pas si je l'ai expliqué,


De fait, tu n'as pas expliqué grand chose au sujet de ton script…
et des explications seraient vraiment les bienvenues smile

Hors ligne

#219 14-06-2019 22:48:44

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 me dit qu'il va falloir mettre cela dans un dépôt git pour pouvoir
travailler à deux sur le script big_smile

Parce que là ça devient difficile de suivre !

Hors ligne

#220 15-06-2019 14:48:51

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 :

Bonjour,

Un dvd récalitrant "ALEXANDRE" avec la commande de mon post 1 :


 ffmpeg -hwaccel cuvid -c:v mpeg2_cuvid -i "$i-$TITLE.vob" -map 0:v -metadata title="$TITLE" -c:v h264_nvenc -preset hq -profile:v high -level 4.2 -loglevel repeat+verbose  $MAP_ID_STREAMS -c:a copy $TAGS_ID_STREAMS  -movflags +faststart -qmin 18 -qmax 23 -y $i-$TITLE.mkv
 




Impossible to convert between the formats supported by the filter 'Parsed_null_0' and the filter 'auto_scaler_0'
 



Passer -hwaccel cuvid en auto semble résoudre le problème.


 ffmpeg -hwaccel auto -c:v mpeg2_cuvid -i "$i-$TITLE.vob" -map 0:v -metadata title="$TITLE" -c:v h264_nvenc -preset hq -profile:v high -level 4.2 -loglevel repeat+verbose  $MAP_ID_STREAMS -c:a copy $TAGS_ID_STREAMS  -movflags +faststart -qmin 18 -qmax 23 -y $i-$TITLE.mkv
 



la vitesse d'encodage en sera juste réduite de moitié smile



Je reviens sur ce message. C'est certainement parce que dans ce cas,
le décodeur mpeg2_cuvid n'est pas utilisé.

Hors ligne

#221 15-06-2019 15:48:50

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)

Bonsoir enicar

C'est plus compliqué que ça. J'ai furté un peu de partout et le truc le plus plausible que j'ai trouvé est qu'à un moment et pendant un temps limite, le format d'image vient à changer.

Dernière modification par golgot200 (15-06-2019 15:50:29)

Hors ligne

#222 15-06-2019 15:49: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)

Encore quelques simplifications.

À la place de :


RATIO=$(lsdvd_x "$i" | head -3 | grep "Aspect ratio:" | \
            awk '{print $11}' | sed '$ s/.$//' | sed 's/\//:/')
 


Je propose :


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



D'abord  on peut remplacer « grep "aspect ratio:" | awk '{print $11} » par
« awk '/Aspect ratio:/ { print $11 }'

Ensuite on intégre le « head -3 » (qui n'affiche que les trois
premières lignes) dans awk grâce à « NR <= 3 ». Ce qui donne


awk 'NR <=3 && /Aspect ratio:/ { print $11 }' |
 



Le dernier sed fait juste une subsitution sur toutes les lignes. On peut
l'intégrer dans awk :


awk 'NR <=3 && /Aspect ratio:/ { sub(/\//, ":", $11); print $11 }' | \
    sed '$ s/.$//'
 



J'ai juste gardé le sed qui supprime le dernier caractère de la
dernière ligne. On peut l'intégrer à awk, mais ça devient un peu plus
complexe. Je vais voir dans le manuel de gawk ce que je peux faire.
Ça serait simple si on savait à l'avance combien de ligne
correspondent au motif « /Aspect ratio:/ ». Sinon on peut utiliser
un tableau (de awk) et faire le traitement à dans le bloc END avec
l'affichage.

Hors ligne

#223 15-06-2019 15:51:55

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 :

Bonjour,

Un dvd récalitrant "ALEXANDRE" avec la commande de mon post 1 :


 ffmpeg -hwaccel cuvid -c:v mpeg2_cuvid -i "$i-$TITLE.vob" -map 0:v -metadata title="$TITLE" -c:v h264_nvenc -preset hq -profile:v high -level 4.2 -loglevel repeat+verbose  $MAP_ID_STREAMS -c:a copy $TAGS_ID_STREAMS  -movflags +faststart -qmin 18 -qmax 23 -y $i-$TITLE.mkv
 




Impossible to convert between the formats supported by the filter 'Parsed_null_0' and the filter 'auto_scaler_0'
 



Passer -hwaccel cuvid en auto semble résoudre le problème.


 ffmpeg -hwaccel auto -c:v mpeg2_cuvid -i "$i-$TITLE.vob" -map 0:v -metadata title="$TITLE" -c:v h264_nvenc -preset hq -profile:v high -level 4.2 -loglevel repeat+verbose  $MAP_ID_STREAMS -c:a copy $TAGS_ID_STREAMS  -movflags +faststart -qmin 18 -qmax 23 -y $i-$TITLE.mkv
 



la vitesse d'encodage en sera juste réduite de moitié smile



Je reviens sur ce message. C'est certainement parce que dans ce cas,
le décodeur mpeg2_cuvid n'est pas utilisé.



Ou plus utilisé, voir mon post précédent.

Hors ligne

#224 15-06-2019 15:57: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)

Note : j'ai modifié la définition de la variable INFO_AC3_DTS_MPEG1 dans le post #215.
L'ancienne définition ne devait pas fonctionner, mais je n'en suis pas sûr.
À vérifier.

EDIT: J'ai vérifié dans ce cas les deux fonctionnent.
L'antislash si il est présent est interprété par awk. C'est certainement
de toujours le mettre, car parfois il est nécessaire. Par exemple quand on fait :


# PSEUDO CODE
awk '/motif/ \
       { actions; }'

 


Pour que les actions ne soient effectuées que lorsque le motif correspond.
Sans l'antislash, la ligne entière est affichée dès que le motif correspond
(c'est comme si on avait « { print $0  } à la suite de « /motif/) et les
actions sont effectuées pour toutes les lignes en entrées (même si le motif
ne correspond pas).

Dernière modification par enicar (15-06-2019 16:14:52)

Hors ligne

#225 15-06-2019 16:07:14

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 :

Note : j'ai modifié la définition de la variable INFO_AC3_DTS_MPEG1 dans le post #215.
L'ancienne définition ne devait pas fonctionner, mais je n'en suis pas sûr.
À vérifier.



Celle-ci ?

INFO_AC3_DTS_MPEG1=$(lsdvd_x "$i" | \
    awk '/ac3,|dts,|mpeg1,/  { x = x $4 ","}
        END { sub(/,*$/, "", x); print x }'
)

Hors ligne

Pied de page des forums