Debian-facile

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

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

#1 27-05-2019 16:06:09

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

[Terminé] Ripper et Encoder ses DVD pour archivage (SUBFR,..)

EDIT:

Ce que fait le script :

Détection d'un DVD-Vidéo dans le ou les lecteurs. Si il y a deux lecteurs avec un DVD-vidéo dans chaque, il le signalera.
Il fera un Dump complet du titre en un fichier vob.

Il y a dans ce script une fonction qui permettra manuellement de changer la durée des titres qui sera pris en considération pour le Dump. Pratique pour les DVD saisons avec plusieurs épisodes.

Il prendra les infos des streams audio par leur AID. ffmpeg et mplayer nommant différement les AID, il a fallu trouver une combine, ça fonctionne maintenant. Ça permet de garder l'ordre exact des streams car ils seront taggués aussi. (pour que les tags correspondent au bon stream)

Il inclura les chapitres.

Il inclura aussi tous les vobsubs français

Il sortira aussi le mkv avec que les audios en français et les vosubs en français.
Option supprimée à cause des erreurs sur les infos de certains DVD

Par un système d'info, le fichier se nommera avec son numéro + titre + langage(s) + soustitre(s)


Il y a aussi une autre partie qui détectera un titre avec une bande audio lpcm et des sous-titres, et une autre sans.
Généralement c'est un dvd de concert, il ne gardera que celle-ci.
Il dumpera aussi cette bande audio lpcm et la sauvegardera dans un dossier a coté du film.


Et la dernière partie détectera un titre qui sera différent par son contenu par rapport au contenu des options précédentes

Ce script en fait y va par élimination. Ce sont les points principaux.

Merci à enicar pour son aide

wink






Bonjour,

je met cette commande de côté :


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
 




Avec une carte graphique MSI Geforce GTX 1050 Ti.
Un film ripper en VOB  d'une durée de 1H37mn.
Un fichier final de 1.6 Go.
Temps d'encodage environ 3 minutes. [Hors rippage 2 minutes environ].
mpeg2_cuvid pour le décodage du VOB.
h264_nvenc  pour l'encodage.
Environ 1000 fps.

C'est pour plus tard dans un script.



Proceed...
MPlayer SVN-r38139 (C) 2000-2019 MPlayer Team
225 audio & 465 video codecs

Playing dvd://1.
ID_DVD_TITLES=1
ID_DVD_TITLE_1_CHAPTERS=28
ID_DVD_TITLE_1_ANGLES=1
ID_DVD_TITLE_1_LENGTH=5856.000
ID_DVD_DISC_ID=4E901F000025D8FED04A498F88D3701F
ID_DVD_VOLUME_ID=DVD_VIDEO
There are 1 titles on this DVD.

ID_DVD_CURRENT_TITLE=1
There are 1 angles in this DVD title.

libdvdread: Attempting to retrieve all CSS keys
libdvdread: This can take a _long_ time, please be patient

libdvdread: Get key for /VIDEO_TS/VIDEO_TS.VOB at 0x00000160
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_01_0.VOB at 0x00013b80
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_01_1.VOB at 0x00015e20
libdvdread: Elapsed time 0
libdvdread: Found 1 VTS's
libdvdread: Elapsed time 0
audio stream: 0 format: ac3 (stereo) language: en aid: 128.

ID_AUDIO_ID=128
ID_AID_128_LANG=en
audio stream: 1 format: ac3 (stereo) language: fr aid: 129.

ID_AUDIO_ID=129
ID_AID_129_LANG=fr
number of audio channels on disk: 2.
subtitle ( sid ): 0 language: en

ID_SUBTITLE_ID=0
ID_SID_0_LANG=en
subtitle ( sid ): 1 language: fr

ID_SUBTITLE_ID=1
ID_SID_1_LANG=fr
subtitle ( sid ): 2 language: nl

ID_SUBTITLE_ID=2
ID_SID_2_LANG=nl
subtitle ( sid ): 3 language: ar

ID_SUBTITLE_ID=3
ID_SID_3_LANG=ar
number of subtitles on disk: 4

CHAPTERS: 00:00:00.000,00:03:18.480,00:05:48.840,00:12:30.280,00:15:28.160,00:18:06.400,00:19:09.400,00:22:01.680,00:24:07.800,00:27:52.120,00:29:53.960,00:31:31.840,00:36:19.760,00:42:00.560,00:43:23.640,00:44:25.400,00:51:40.120,00:54:32.520,00:57:58.280,01:05:25.480,01:07:31.200,01:09:51.720,01:13:57.920,01:15:23.080,01:17:40.160,01:27:29.440,01:30:05.040,01:33:01.320,
dump: 3988115456 bytes written (~99.6%)
dump: 4005652480 bytes written to '1-DVD_VIDEO.vob'.
Core dumped ;)

Exiting... (End of file)
ID_EXIT=EOF
ffmpeg version n4.1.3 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 8.2.1 (GCC) 20181127
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvdec --enable-nvenc --enable-omx --enable-shared --enable-version3
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
[mpeg @ 0x55c84c7dd0c0] max_analyze_duration 5000000 reached at 5000000 microseconds st:0
Input #0, mpeg, from '1-DVD_VIDEO.vob':
  Duration: 01:37:35.94, start: 0.049756, bitrate: 5472 kb/s
    Stream #0:0[0x1e0]: Video: mpeg2video (Main), 1 reference frame, yuv420p(tv, top first, left), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x81]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
    Stream #0:2[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
    Stream #0:3[0x23]: Subtitle: dvd_subtitle
[mpeg2_cuvid @ 0x55c84c835680] Initializing cuvid hwaccel
[mpeg2_cuvid @ 0x55c84c835680] CUVID capabilities for mpeg2_cuvid:
[mpeg2_cuvid @ 0x55c84c835680] 8 bit: supported: 1, min_width: 48, max_width: 4080, min_height: 16, max_height: 4080
[mpeg2_cuvid @ 0x55c84c835680] 10 bit: supported: 0, min_width: 0, max_width: 0, min_height: 0, max_height: 0
[mpeg2_cuvid @ 0x55c84c835680] 12 bit: supported: 0, min_width: 0, max_width: 0, min_height: 0, max_height: 0
Stream mapping:
  Stream #0:0 -> #0:0 (mpeg2video (mpeg2_cuvid) -> h264 (h264_nvenc))
  Stream #0:2 -> #0:1 (copy)
  Stream #0:1 -> #0:2 (copy)
Press [q] to stop, [?] for help
[mpeg2_cuvid @ 0x55c84c835680] Initializing cuvid hwaccel
[mpeg2_cuvid @ 0x55c84c835680] Formats: Original: cuda | HW: cuda | SW: nv12
[graph 0 input from stream 0:0 @ 0x55c84ce42c80] w:720 h:576 pixfmt:cuda tb:1/90000 fr:25/1 sar:64/45 sws_param:flags=2
[h264_nvenc @ 0x55c84c7f50c0] Loaded Nvenc version 9.0
[h264_nvenc @ 0x55c84c7f50c0] Nvenc initialized successfully
Output #0, matroska, to '1-DVD_VIDEO.mkv':
  Metadata:
    title           : DVD_VIDEO
    encoder         : Lavf58.20.100
    Stream #0:0: Video: h264 (h264_nvenc) (High), 1 reference frame (H264 / 0x34363248), cuda(left), 720x576 [SAR 64:45 DAR 16:9], q=18-23, 2000 kb/s, 25 fps, 1k tbn, 25 tbc
    Metadata:
      encoder         : Lavc58.35.100 h264_nvenc
    Side data:
      cpb: bitrate max/min/avg: 0/0/2000000 buffer size: 4000000 vbv_delay: -1
    Stream #0:1(en): Audio: ac3 ([0] [0][0] / 0x2000), 48000 Hz, stereo, fltp, 192 kb/s
    Metadata:
      title           : ac3(stereo)
    Stream #0:2(fra): Audio: ac3 ([0] [0][0] / 0x2000), 48000 Hz, stereo, fltp, 192 kb/s
    Metadata:
      title           : ac3(stereo)
[mpeg @ 0x55c84c7dd0c0] New subtitle stream 0:4 at pos:25485326 and DTS:45.3298ss speed=50.1x    
[mpeg @ 0x55c84c7dd0c0] New subtitle stream 0:5 at pos:65744910 and DTS:108.13ss/s speed=53.2x    
[mpeg @ 0x55c84c7dd0c0] New subtitle stream 0:6 at pos:65753102 and DTS:108.13s
No more output streams to write to, finishing.me=01:37:16.44 bitrate=2334.3kbits/s speed=38.2x    
frame=146400 fps=957 q=17.0 Lsize= 1669915kB time=01:37:36.12 bitrate=2336.0kbits/s speed=38.3x    
video:1391860kB audio:274498kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.213457%
Input file #0 (1-DVD_VIDEO.vob):
  Input stream #0:0 (video): 146400 packets read (3657369025 bytes); 146400 frames decoded;
  Input stream #0:1 (audio): 182999 packets read (140543232 bytes);
  Input stream #0:2 (audio): 182999 packets read (140543232 bytes);
  Input stream #0:3 (subtitle): 0 packets read (0 bytes);
  Total: 512398 packets (3938455489 bytes) demuxed
Output file #0 (1-DVD_VIDEO.mkv):
  Output stream #0:0 (video): 146400 frames encoded; 146400 packets muxed (1425264598 bytes);
  Output stream #0:1 (audio): 182999 packets muxed (140543232 bytes);
  Output stream #0:2 (audio): 182999 packets muxed (140543232 bytes);
  Total: 512398 packets (1706351062 bytes) muxed
[AVIOContext @ 0x55c84c80fd00] Statistics: 2354 seeks, 8256 writeouts
[h264_nvenc @ 0x55c84c7f50c0] Nvenc unloaded
[AVIOContext @ 0x55c84c7e5fc0] Statistics: 4006361232 bytes read, 2 seeks
mkvmerge v34.0.0 ('Sight and Seen') 64-bit
« 1-DVD_VIDEO.mkv » : Utilisation du démultiplexeur pour le format « Matroska ».
« 1-DVD_VIDEO.mkv » piste 0 : Utilisation du module de sortie pour le format « AVC/H.264 ».
« 1-DVD_VIDEO.mkv » piste 1 : Utilisation du module de sortie pour le format « AC-3 ».
« 1-DVD_VIDEO.mkv » piste 2 : Utilisation du module de sortie pour le format « AC-3 ».
Le fichier « 1-DVD_VIDEO-CHAPTERS.mkv » est ouvert en écriture.
Progression : 100%
Les entrées CUE (l'index) sont en cours d'écriture…
Le multiplexage a pris 20 secondes.
Travail réalisé en 0h:5m:56s
mkvmerge v34.0.0 ('Sight and Seen') 64-bit
« 1-DVD_VIDEO-CHAPTERS.mkv » : Utilisation du démultiplexeur pour le format « Matroska ».
« 1-DVD_VIDEO-CHAPTERS.mkv » piste 0 : Utilisation du module de sortie pour le format « AVC/H.264 ».
« 1-DVD_VIDEO-CHAPTERS.mkv » piste 2 : Utilisation du module de sortie pour le format « AC-3 ».
Le fichier « 1-DVD_VIDEO-CHAPTERS-FRE.mkv » est ouvert en écriture.
Progression : 100%
Les entrées CUE (l'index) sont en cours d'écriture…
Le multiplexage a pris 22 secondes.
Travail réalisé en 0h:6m:37s

 



Script post 562
(En attente de tests ...)
18-02-2020

Dernière modification par golgot200 (23-02-2020 19:03:09)

Hors ligne

#2 27-05-2019 18:26:22

Herve5
Membre
Lieu : région de Cannes, France
Distrib. : Debian 10
Noyau : Linux 4.19.0-8-amd64
(G)UI : Mate 1.20.4
Inscription : 02-03-2019

Re : [Terminé] Ripper et Encoder ses DVD pour archivage (SUBFR,..)

Wow!
Il y a les sous-titres? (je sais, question de newbie...)

--
Hervé S.
deux machines Tuxedo de 2017 (préconfigurées Linux), l'une sous Debian 10, l'autre Ubuntu 16LTS

Hors ligne

#3 27-05-2019 20:46:43

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

Re : [Terminé] Ripper et Encoder ses DVD pour archivage (SUBFR,..)

Herve5 a écrit :

Wow!
Il y a les sous-titres? (je sais, question de newbie...)



Bonsoir,
Oui, si une bande son et non française.


EDIT: Tous les sous-titres français seront intégrés et seulement ceux-ci.

Dernière modification par golgot200 (30-05-2019 20:31:30)

Hors ligne

#4 28-05-2019 06:34:33

smolski
quasi...modo
Lieu : AIN
Distrib. : 9 (stretch) 64 bits + backports (buster) 10
Noyau : 4.9.65-3+deb9u2 4.19.0-6-amd64
(G)UI : gnome
Inscription : 21-10-2008

Re : [Terminé] Ripper et Encoder ses DVD pour archivage (SUBFR,..)

Mis le post en lien dans le tuto ffmpeg :
https://debian-facile.org/doc:media:ffm … vob-en-mkv cool

"Théo et Adama te rappellent pourquoi Zyed et Bouna couraient…"
"L'utopie ne signifie pas l'irréalisable, mais l'irréalisée." - T Monod (source :  La zone de Siné)
"Je peux rire de tout mais pas avec n'importe qui." - P Desproges
"saque eud dun" (patois chtimi : fonce dedans)

En ligne

#5 30-05-2019 20:26:17

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

Re : [Terminé] Ripper et Encoder ses DVD pour archivage (SUBFR,..)

Bonsoir,

Fonction dans le script

Détection du DVD-vidéo dans le lecteur.
Création du dossier Title dans son Bureau.
Les Metadata pour le genre d'audio AC3 2.0 5.1, DTS, mpeg1 etc sont OK.
Les MAP audio se font par les AID, que ce soit pour l'AC3 DTS ainsi que pour le mpeg1 et le LPCM.
Il comptabilisera toutes les bandes audio.
Un réglage de temps, ce qui permettra si on veux, de ripper plusieurs titres (DVD seasons).
Un option Crop, pas implantée mais pas encore placée.
Intégration des chapitres dans le mkv.
Si des sous-titres français sont présents, ils seront tous intégrés dans le MKV.
Le MKV sera nommé avec le nom du 1-titre-[fr,eng,deutch ...+SUBVF].mkv  ou sans etc ...
Suppression des fichiers temporaires à chaque travaux effectués ( ça c'est moins propre ) Mon TMP sur ma Arch est limité à 4 Go.

Il faudra obligatoirement passer par l'accélération graphique .( pour l'instant )

et les programmes :

# MPlayer
# ffmpeg
# lsdvd
# ogmtools  (dvdxchap)
# mkvtoolnix-cli (mkvmerge)
# mencoder

Voilà, c'est à peu près tout.

EDIT: modification de mon post 3.

Dernière modification par golgot200 (30-05-2019 20:33:20)

Hors ligne

#6 31-05-2019 08:27:45

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

Re : [Terminé] Ripper et Encoder ses DVD pour archivage (SUBFR,..)

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

Dernière modification par golgot200 (31-05-2019 08:30:40)

Hors ligne

#7 31-05-2019 08:34:21

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

Re : [Terminé] Ripper et Encoder ses DVD pour archivage (SUBFR,..)

## FILTERS

Je place ces filtres qui fonctionneront avec cette commande modifié en sauvegarde :


-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
 




qui me donnera donc:


ffmpeg -hwaccel auto -c:v mpeg2_cuvid -i $FOLDER/"$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 -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 -y $FOLDER/$i-$TITLE.mkv
 

Dernière modification par golgot200 (31-05-2019 08:38:31)

Hors ligne

#8 31-05-2019 08:40:05

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

Re : [Terminé] Ripper et Encoder ses DVD pour archivage (SUBFR,..)

## UN SEUL DVD-VIDÉO



COUNT_DEVICE=$(blkid /dev/sr* | awk '{print $1}' | sed -e 's/://g' | awk '{x=x+NF}END{print x}')

if [[ "$COUNT_DEVICE" -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
 

Hors ligne

#9 31-05-2019 09:00:19

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

Re : [Terminé] Ripper et Encoder ses DVD pour archivage (SUBFR,..)

#######################################################################################################################################
## DEVICE

DEVICE=$(blkid /dev/sr* | awk '{print $1}' | sed -e 's/://g')




/dev/sr0
 




#########################################################################################################################################
## TITLE

TITLE=$(lsdvd "$DEVICE" | head -1 | awk '{print $3}')




SLEEPLESS_IN_SEATTLE
 



###########################################################################################################################################
## NOMBRE DE TITRES SUR LE DVD

TITLE_COUNT=$(lsdvd "$DEVICE" | grep ^'Title: ' | wc -l)




3
 




###########################################################################################################################################
## METADATA POUR LES BANDES AUDIO
## Lien :
https://fr.wikipedia.org/wiki/Liste_des_codes_ISO_639-1


FR=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | awk '/language: fr/ && /format:/  {printf "-metadata:s:a:"$3" language=fra -metadata:s:a:"$3" title="$5$6" "}')
FR_LPCM=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | awk '/language: fr/ && /format: lpcm/  {printf "-metadata:s:a:0 language=fra -metadata:s:a:0 title="$5$6" "}')
....
....
 




-metadata:s:a:1 language=fra -metadata:s:a:1 title=ac3(stereo)
....
....
 




TAGS_ID_STREAMS=$FR.....
TAGS_ID_STREAMS_LPCM=$FR_LPCM....
 




##############################################################################################################################################
## TITRES D'UNE DURÉE DE PLUS DE .... SECONDES [ ICI, 1200 SECONDES = 20 minutes]


LIMIT_TIME=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | grep ID_LENGTH | sed 's/.*=\([0-9]*\)/\1/' | sed "s/\..*//")
B=1200
 




6051
 



##############################################################################################################################################
LE DUMP :


mplayer -identify -dvd-device "$DEVICE" dvd://"$i" -nocache -dumpstream -dumpfile $FOLDER/"$i-$TITLE.vob"
 



## DISNEY A-R-C-C-O-S


mplayer dvdnav://"$i" -dvd-device "$DEVICE" -dumpstream -dumpfile "$i-$TITLE.vob"
 



##############################################################################################################################################
Le MAP


MAP_ID_STREAMS=$(lsdvd -x "$DEVICE" -t "$i" 2> /dev/null | grep "Audio:" | sed -n -e "s/.*\(0x\)/\1/p" | sed -e 's/c/1c/g' | awk '/0x/{gsub (/^/,"-map i:")}1')
MAP_ID_STREAMS_LPCM=$(lsdvd -x "$DEVICE" -t "$i" 2> /dev/null | grep 'lpcm' | sed -n -e "s/.*\(0x\)/\1/p" | sed -e 's/c/1c/g' | awk '/0x/{gsub (/^/,"-map i:")}1')
 




-map i:0x80 -map i:0x81 -map i:0x82 -map i:0x83 -map i:0x84 -map i:0x85 -map i:0x86
 




##############################################################################################################################################
## POUR LES SOUS-TITRES


SIDFR=$(lsdvd -x "$DEVICE" -t "$i" 2> /dev/null | 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}')
COUNT_SID_FR=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE" 2>/dev/null | grep "subtitle ( sid ):" | grep "language: fr" | awk '{print$7}' | awk '{x=x+NF}END{print x}')
RATIO=$(lsdvd -x $DEVICE -t "$i" 2> /dev/null | head -3 | grep "Aspect ratio:" | awk '{print$11}' | sed '$ s/.$//' | sed 's/\//:/')
 




1 20
2
16:9
 




###############################################################################################################################################
## LE CROP


CROP=$(ffmpeg -i "$i-$TITLE.vob" -ss 60 -t 15 -t 1 -vf cropdetect -f null - 2>&1 | awk '/crop/ { print $NF }' | tail -1)
 




crop=704:544:10:14
 




###############################################################################################################################################
## INFO CHAPITRES ET MUTIPLEXAGE AU MKV


dvdxchap -t  "$i" "$DEVICE" > $FOLDER/"$i-$TITLE-CHAPTERS.txt"
mkvmerge $FOLDER/$i-$TITLE.mkv --chapters $FOLDER/"$i-$TITLE-CHAPTERS.txt" -o $FOLDER/"$i-$TITLE+CHAPTERS.mkv"
 




CHAPTER01=00:00:00.000
CHAPTER01NAME=Chapter 01
CHAPTER02=00:05:17.560
CHAPTER02NAME=Chapter 02
CHAPTER03=00:12:17.080
...
...
 




################################################################################################################################################
LA PARTIE SOUS-TITRAGE :


for n in $SIDFR; do mencoder -dvd-device $DEVICE dvd://"$i" -nosound -ovc copy -force-avi-aspect $RATIO  -o /dev/null -ifo /run/media/$USER/$TITLE/VIDEO_TS/VTS_01_0.IFO  -sid $n -vobsubout $FOLDER/$i-vobsubs-fr -vobsuboutindex $n ; done
mkvmerge $FOLDER/"$i-$TITLE+CHAPTERS.mkv" -a fre --default-language fr $FOLDER/*.idx  -o $FOLDER/"$i-$TITLE-[Language:$INFO_AC3_DTS_MPEG1]+SUBVF.mkv"




# VobSub index file, v7 (do not modify this line!)
#
# Generated by MPlayer SVN-r38139
# See <URL:http://www.mplayerhq.hu/> for more information about MPlayer
# See <URL:http://wiki.multimedia.cx/index.php?title=VOBsub> for more information about Vobsub
#
size: 720x576
palette: 101010, 6e6e6e, cbcbcb, 202020, b4b4b4, 1e1e1e, 626262, d7d7d7, 808080, 808080, 808080, 808080, 808080, 808080, 808080, 808080
# ON: displays only forced subtitles, OFF: shows everything
forced subs: OFF

# Language index in use
langidx: 1

id: fr, index: 1
timestamp: 00:00:41:400, filepos: 000000000
timestamp: 00:00:46:999, filepos: 000001000
timestamp: 00:00:50:359, filepos: 000001800
timestamp: 00:00:54:160, filepos: 000002800
timestamp: 00:01:21:079, filepos: 000003800
...
...


id: fr, index: 20
timestamp: 00:00:35:680, filepos: 000014800
timestamp: 00:00:38:639, filepos: 000016000
timestamp: 00:00:41:840, filepos: 000017000
timestamp: 00:00:43:400, filepos: 000017800
...
...
 

Dernière modification par golgot200 (02-06-2019 15:05:33)

Hors ligne

#10 31-05-2019 09:03:09

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

Re : [Terminé] Ripper et Encoder ses DVD pour archivage (SUBFR,..)

Plus que les conditions à mettre en place et ça, c'est pas bien mon truc hmm

Hors ligne

#11 31-05-2019 09:21:59

Debian Alain
Adhérent(e)
Distrib. : stable / ubuntu / testing
Noyau : Linux 5.4.0-4 amd 64
(G)UI : Gnome wayland / Gdm3
Inscription : 11-03-2017

Re : [Terminé] Ripper et Encoder ses DVD pour archivage (SUBFR,..)

j'ai pas tout suivi mais y a pas plus simple avec handbrake et winff ????

en graphique , donc  ?

golgot200 a écrit :

C'est pour plus tard dans un script.


arf ! , j'avais pas vu ...

pardon

Dernière modification par Debian Alain (31-05-2019 09:31:54)


Le voyage à Ouessant - Georges Quilliou


RYZEN7 1700X - PRIME X370 PRO - 2 x 8 GB DDR4 - RADEON RX 550 4GB - CORSAIR RM750X - SSD crucial MX500 500GB M.2

En ligne

#12 09-06-2019 13:16:44

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

Re : [Terminé] Ripper et Encoder ses DVD pour archivage (SUBFR,..)

Bonjour,

Bon apparement mencoder est maintenant dans stretch, ça facilitera les choses. Par contre ffmpeg est en version 3.2. Mes tests se font sur la version 4
Je ne sais pas cette 3.2 est compilé pour l'encodage par le GPU.
Si quelqu'un pouvait me vérifier ça ?

Qui ferait une installation des paquets :


apt-get install mplayer ffmpeg lsdvd ogmtools mkvtoolnix mencoder util-linux
 



ogmtools  ===>| (dvdxchap)
mkvtoolnix ====> (mkvmerge)

Dernière modification par golgot200 (10-06-2019 20:11:29)

Hors ligne

#13 09-06-2019 13:23:43

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

Re : [Terminé] Ripper et Encoder ses DVD pour archivage (SUBFR,..)

Ha oui aussi, si des pros du script voient des trucs pas correct dans les quelques lignes à mes posts 7, 8 et 9, ça serait cool de me le signaler pour la suite. ( des remarques, des questions aussi )  smile

Hors ligne

#14 09-06-2019 13:34:14

enicar
Membre
Lieu : ailleurs
Inscription : 26-08-2010

Re : [Terminé] Ripper et Encoder ses DVD pour archivage (SUBFR,..)

Si tu pouvais tout cela dans un seul cadre de balise code, oui j'y regarderai
depuis mon éditeur favori. Parce que ce n'est pas facile sur le forum
quand c'est en plusieurs morceaux.

Hors ligne

#15 09-06-2019 17:01:10

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

Re : [Terminé] Ripper et Encoder ses DVD pour archivage (SUBFR,..)

Ok, je post ça smile

Hors ligne

#16 09-06-2019 17:07:05

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

Re : [Terminé] Ripper et Encoder ses DVD pour archivage (SUBFR,..)

GPU_LIGHT.sh



#!/bin/bash

#### Golgot200 ###############################################################################
# 22-03-2019
# Archlinux
# MPlayer SVN-r38101
# ffmpeg version n4.1.1
# lsdvd 0.17
# ogmtools v1.5 (dvdxchap)
# mkvtoolnix-cli 32.0.0-1 (mkvmerge)
# mencoder-38125-5
##############################################################################################

## CONDITION : UN SEUL DVD-VIDÉO
COUNT_DEVICE=$(blkid /dev/sr* | awk '{print $1}' | sed -e 's/://g' | awk '{x=x+NF}END{print x}')

if [[ "$COUNT_DEVICE" -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 /dev/sr* | awk '{print $1}' | sed -e 's/://g')

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


DIR=$(xdg-user-dir DESKTOP)
FOLDER=$DIR/$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

## METADATAS DIVERS [À COMPLETER AU CAS OÙ IL MANQUERAIT QUELQUES LANGUES]
## https://fr.wikipedia.org/wiki/Liste_des_codes_ISO_639-1
FR=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | awk '/language: fr/ && /format:/  {printf "-metadata:s:a:"$3" language=fra -metadata:s:a:"$3" title="$5$6" "}')
FR_LPCM=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | awk '/language: fr/ && /format: lpcm/  {printf "-metadata:s:a:0 language=fra -metadata:s:a:0 title="$5$6" "}')
EN=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | awk '/language: en/ && /format:/  {printf "-metadata:s:a:"$3" language=en -metadata:s:a:"$3" title="$5$6" "}')
EN_LPCM=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | awk '/language: en/ && /format: lpcm/  {printf "-metadata:s:a:0 language=en -metadata:s:a:0 title="$5$6" "}')
DE=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | awk '/language: de/ && /format:/  {printf "-metadata:s:a:"$3" language=ger -metadata:s:a:"$3" title="$5$6" "}')
DE_LPCM=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | awk '/language: de/ && /format: lpcm/  {printf "-metadata:s:a:0 language=ger -metadata:s:a:0 title="$5$6" "}')
IT=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | awk '/language: it/ && /format:/  {printf "-metadata:s:a:"$3" language=ita -metadata:s:a:"$3" title="$5$6" "}')
IT_LPCM=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | awk '/language: it/ && /format: lpcm/  {printf "-metadata:s:a:0 language=ita -metadata:s:a:0 title="$5$6" "}')
ES=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | awk '/language: es/ && /format:/  {printf "-metadata:s:a:"$3" language=spa -metadata:s:a:"$3" title="$5$6" "}')
ES_LPCM=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | awk '/language: es/ && /format: lpcm/  {printf "-metadata:s:a:0 language=spa -metadata:s:a:0 title="$5$6" "}')
NL=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | awk '/language: nl/ && /format:/  {printf "-metadata:s:a:"$3" language=nld -metadata:s:a:"$3" title="$5$6" "}')
NL_LPCM=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | awk '/language: nl/ && /format: lpcm/  {printf "-metadata:s:a:0 language=nld -metadata:s:a:0 title="$5$6" "}')
HE=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | awk '/language: he/ && /format:/  {printf "-metadata:s:a:"$3" language=heb -metadata:s:a:"$3" title="$5$6" "}')
HE_LPCM=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | awk '/language: he/ && /format: lpcm/  {printf "-metadata:s:a:0 language=heb -metadata:s:a:0 title="$5$6" "}')
HU=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | awk '/language: hu/ && /format:/  {printf "-metadata:s:a:"$3" language=hun -metadata:s:a:"$3" title="$5$6" "}')
HU_LPCM=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | awk '/language: hu/ && /format: lpcm/  {printf "-metadata:s:a:0 language=hun -metadata:s:a:0 title="$5$6" "}')
PL=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | awk '/language: pl/ && /format:/  {printf "-metadata:s:a:"$3" language=pol -metadata:s:a:"$3" title="$5$6" "}')
PL_LPCM=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | awk '/language: pl/ && /format: lpcm/  {printf "-metadata:s:a:0 language=pol -metadata:s:a:0 title="$5$6" "}')
CS=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | awk '/language: cs/ && /format:/  {printf "-metadata:s:a:"$3" language=cze -metadata:s:a:"$3" title="$5$6" "}')
CS_LPCM=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | awk '/language: cs/ && /format: lpcm/  {printf "-metadata:s:a:0 language=cze -metadata:s:a:0 title="$5$6" "}')
JA=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | awk '/language: ja/ && /format:/  {printf "-metadata:s:a:"$3" language=jpn -metadata:s:a:"$3" title="$5$6" "}')
JA_LPCM=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | awk '/language: ja/ && /format: lpcm/  {printf "-metadata:s:a:0 language=jpn -metadata:s:a:0 title="$5$6" "}')
SV=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | awk '/language: sv/ && /format:/  {printf "-metadata:s:a:"$3" language=swe -metadata:s:a:"$3" title="$5$6" "}')
SV_LPCM=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | awk '/language: sv/ && /format: lpcm/  {printf "-metadata:s:a:0 language=swe -metadata:s:a:0 title="$5$6" "}')
UNKNOWN=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | awk '/language: unknown/ && /format:/  {printf "-metadata:s:a:"$3" language=und -metadata:s:a:"$3" title="$5$6" "}')
UNKNOWN_LPCM=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | awk '/language: unknown/ && /format: lpcm/  {printf "-metadata:s:a:0 language=und -metadata:s:a:0 title="$5$6" "}')
EMPTY_LANG=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | awk '(/language:  aid:/) && /format:/ {printf "-metadata:s:a:"$3" language=und -metadata:s:a:"$3" title="$5$6" "}')
EMPTY_LANG_LPCM=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | awk '(/language:  aid:/) && /format: lpcm/ {printf "-metadata:s:a:0 language=und -metadata:s:a:0 title="$5$6" "}')


TAGS_ID_STREAMS=$FR$EN$DE$IT$ES$NL$HE$HU$PL$CS$JA$SV$UNKNOWN$EMPTY_LANG
TAGS_ID_STREAMS_LPCM=$FR_LPCM$EN_LPCM$DE_LPCM$IT_LPCM$ES_LPCM$NL_LPCM$HE_LPCM$HU_LPCM$PL_LPCM$CS_LPCM$JA_LPCM$SV_LPCM$UNKNOWN_LPCM$EMPTY_LANG_LPCM

## TITRES D'UNE DURÉE DE PLUS DE .... SECONDES [ ICI, 1200 SECONDES = 20 MINUTES]
LIMIT_TIME=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE"  2>/dev/null | grep ID_LENGTH | sed 's/.*=\([0-9]*\)/\1/' | sed "s/\..*//")
B=1200




if [[ "$LIMIT_TIME" -gt "$B" ]]; then

mplayer -identify -dvd-device "$DEVICE" dvd://"$i" -nocache -dumpstream -dumpfile $FOLDER/"$i-$TITLE.vob"


## DISNEY A-R-C-C-O-S
#mplayer dvdnav://"$i" -dvd-device "$DEVICE" -dumpstream -dumpfile "$i-$TITLE.vob"



COUNT_LPCM=$(lsdvd -x "$DEVICE" -t "$i" 2> /dev/null | grep 'lpcm' | awk '{print$8}' | awk '{x=x+NF}END{print x}')
COUNT_AC3_DTS_MPEG1=$(lsdvd -x "$DEVICE" -t "$i" 2> /dev/null | grep 'ac3,\|dts,\|mpeg1,' | awk '{print$8}' | awk '{x=x+NF}END{print x}')

MAP_ID_STREAMS=$(lsdvd -x "$DEVICE" -t "$i" 2> /dev/null | grep "Audio:" | sed -n -e "s/.*\(0x\)/\1/p" | sed -e 's/c/1c/g' | awk '/0x/{gsub (/^/,"-map i:")}1')
MAP_ID_STREAMS_LPCM=$(lsdvd -x "$DEVICE" -t "$i" 2> /dev/null | grep 'lpcm' | sed -n -e "s/.*\(0x\)/\1/p" | sed -e 's/c/1c/g' | awk '/0x/{gsub (/^/,"-map i:")}1')

SIDFR=$(lsdvd -x "$DEVICE" -t "$i" 2> /dev/null | 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}')
COUNT_SID_FR=$(mplayer -vo null -ao null -frames 0 -identify dvd://"$i" -dvd-device "$DEVICE" 2>/dev/null | grep "subtitle ( sid ):" | grep "language: fr" | awk '{print$7}' | awk '{x=x+NF}END{print x}')

RATIO=$(lsdvd -x $DEVICE -t "$i" 2> /dev/null | head -3 | grep "Aspect ratio:" | awk '{print$11}' | sed '$ s/.$//' | sed 's/\//:/')


CROP=$(ffmpeg -i $FOLDER/"$i-$TITLE.vob" -ss 60 -t 15 -t 1 -vf cropdetect -f null - 2>&1 | awk '/crop/ { print $NF }' | tail -1)


INFO_AC3_DTS_MPEG1=$(lsdvd -x $DEVICE -t "$i" 2> /dev/null | awk '/ac3,/  {printf ""$4","}'  | sed -e 's/,*$//g')
INFO_LPCM=$(lsdvd -x $DEVICE -t "$i" 2> /dev/null | awk '/ac3,/  {printf ""$4","}' | sed -e 's/,*$//g')



## ENCODAGE
## GPU
## FILMS
## AC3 & DTS & MPEG1
## SOUS-TITRAGE(S) VF
if [[ "$COUNT_LPCM" -eq "0" ]] && [[ "$COUNT_AC3_DTS_MPEG1" -ge "1" ]] && [[ "$COUNT_SID_FR" -ge "1" ]]; then

ffmpeg -hwaccel auto -c:v mpeg2_cuvid -i $FOLDER/"$i-$TITLE.vob" -map 0:v -metadata title="$TITLE" -c:v h264_nvenc -preset slow -profile:v high -level 4.2 -loglevel repeat+verbose  $MAP_ID_STREAMS -c:a copy $TAGS_ID_STREAMS -movflags +faststart -qmin 18 -qmax 23 -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 -y $FOLDER/$i-$TITLE.mkv


rm -f $FOLDER/"$i-$TITLE.vob"

dvdxchap -t  "$i" "$DEVICE" > $FOLDER/"$i-$TITLE-CHAPTERS.txt"
mkvmerge $FOLDER/$i-$TITLE.mkv --chapters $FOLDER/"$i-$TITLE-CHAPTERS.txt" -o $FOLDER/"$i-$TITLE+CHAPTERS.mkv"

rm -f $FOLDER/"$i-$TITLE-CHAPTERS.txt"
rm -f $FOLDER/"$i-$TITLE.mkv"

for n in $SIDFR; do mencoder -dvd-device $DEVICE dvd://"$i" -nosound -ovc copy -force-avi-aspect $RATIO  -o /dev/null -ifo /run/media/$USER/$TITLE/VIDEO_TS/VTS_01_0.IFO  -sid $n -vobsubout $FOLDER/$i-vobsubs-fr -vobsuboutindex $n ; done
mkvmerge $FOLDER/"$i-$TITLE+CHAPTERS.mkv" -a fre --default-language fr $FOLDER/*.idx  -o $FOLDER/"$i-$TITLE-[Language:$INFO_AC3_DTS_MPEG1]+SUBVF.mkv"


rm -f $FOLDER/*.idx
rm -f $FOLDER/*.sub
rm -f $FOLDER/"$i-$TITLE+CHAPTERS.mkv"




## ENCODAGE
## GPU
## CONCERTS LIVE
## LPCM (ON GARDE QUE LA PISTE LPCM)
## PAS DE SOUS-TITRAGE

elif [[ "$COUNT_LPCM" -ge "1" ]] && [[ "$COUNT_AC3_DTS_MPEG1" -ge "0" ]] && [[ "$COUNT_SID_FR" -eq "0" ]]; then

ffmpeg -hwaccel auto -c:v mpeg2_cuvid -i $FOLDER/"$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_LPCM -acodec pcm_s16be $TAGS_ID_STREAMS_LPCM -movflags +faststart -qmin 18 -qmax 23 -y $FOLDER/$i-$TITLE.mkv

rm -f $FOLDER/"$i-$TITLE.vob"

dvdxchap -t  "$i" "$DEVICE" > $FOLDER/"$i-$TITLE-CHAPTERS.txt"
mkvmerge $FOLDER/$i-$TITLE.mkv --chapters $FOLDER/"$i-$TITLE-CHAPTERS.txt" -o $FOLDER/"$i-$TITLE-[Language:$INFO_LPCM].mkv"

rm -f $FOLDER/"$i-$TITLE.mkv"
rm -f $FOLDER/"$i-$TITLE-CHAPTERS.txt"



## ENCODAGE
## GPU
## CONCERTS LIVE
## LPCM (ON GARDE QUE LA PISTE LPCM)
## SOUS-TITRAGE(S) VF

elif [[ "$COUNT_LPCM" -ge "1" ]] && [[ "$COUNT_AC3_DTS_MPEG1" -ge "0" ]] && [[ "$COUNT_SID_FR" -ge "1" ]]; then

ffmpeg -hwaccel cuvid -c:v mpeg2_cuvid -i $FOLDER/"$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_LPCM -acodec pcm_s16be $TAGS_ID_STREAMS_LPCM -movflags +faststart -qmin 18 -qmax 23 -y $FOLDER/$i-$TITLE.mkv

rm -f $FOLDER/"$i-$TITLE.vob"

dvdxchap -t  $FOLDER/"$i" "$DEVICE" > $FOLDER/"$i-$TITLE-CHAPTERS.txt"
mkvmerge $FOLDER/$i-$TITLE.mkv --chapters $FOLDER/"$i-$TITLE-CHAPTERS.txt" -o $FOLDER/"$i-$TITLE+CHAPTERS.mkv"

rm -f $FOLDER/"$i-$TITLE-CHAPTERS.txt"
rm -f $FOLDER/"$i-$TITLE.mkv"

for n in $SIDFR; do mencoder -dvd-device $DEVICE dvd://"$i" -nosound -ovc copy -force-avi-aspect $RATIO  -o /dev/null -ifo /run/media/$USER/$TITLE/VIDEO_TS/VTS_01_0.IFO  -sid $n -vobsubout $FOLDER/$i-vobsubs-fr -vobsuboutindex $n ; done
mkvmerge $FOLDER/"$i-$TITLE+CHAPTERS.mkv" -a fre --default-language fr $FOLDER/*.idx  -o $FOLDER/"$i-$TITLE-[Language:$INFO_LPCM]+SUBVF.mkv"


rm -f $FOLDER/*.idx
rm -f $FOLDER/*.sub
rm -f $FOLDER/"$i-$TITLE+CHAPTERS.mkv"





 
## LA PETITE MAISON DANS LA PRAIRIE
elif [[ "$COUNT_LPCM" -eq "0" ]] && [[ "$COUNT_AC3_DTS_MPEG1" -ge "1" ]] && [[ "$COUNT_SID_FR" -eq "0" ]]; then
ffmpeg -hwaccel auto -c:v mpeg2_cuvid -i $FOLDER/"$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 $FOLDER/$i-$TITLE.mkv
 
rm -f $FOLDER/"$i-$TITLE.vob"

dvdxchap -t  "$i" "$DEVICE" > $FOLDER/"$i-$TITLE-CHAPTERS.txt"
mkvmerge $FOLDER/$i-$TITLE.mkv --chapters $FOLDER/"$i-$TITLE-CHAPTERS.txt" -o $FOLDER/"$i-$TITLE-[Language:$INFO_AC3_DTS_MPEG1].mkv"

rm -f $FOLDER/"$i-$TITLE-CHAPTERS.txt"
rm -f $FOLDER/"$i-$TITLE.mkv"
 
 
      fi
     
     fi

done
 



Ce script dans l'état à été testé sur environ 50 dvd sans problème ...  (pour l'instant) smile

Dernière modification par golgot200 (09-06-2019 17:23:40)

Hors ligne

#17 09-06-2019 17:21:29

enicar
Membre
Lieu : ailleurs
Inscription : 26-08-2010

Re : [Terminé] Ripper et Encoder ses DVD pour archivage (SUBFR,..)

Je commence par une chose que je t'ai déjà dite. Si dans ton script
tu as « #! /bin/bash » ne l'appelle pas GPU_LIGHT.sh mais GPU_LIGHT.bash
car sh ≠ bash.
Maintenant dans debian c'est dash qui est utilisé pour sh et de nombreuse syntaxes de
bash ne sont pas comprises par dash). Je ne sais pas comment ça marche dans archlinux
ceci dit, mais c'est une bonne habitude à prendre. Ça évite des mauvaises surprises.

Hors ligne

#18 09-06-2019 17:30:06

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

Re : [Terminé] Ripper et Encoder ses DVD pour archivage (SUBFR,..)

enicar a écrit :

Je commence par une chose que je t'ai déjà dite. Si dans ton script
tu as « #! /bin/bash » ne l'appelle pas GPU_LIGHT.sh mais GPU_LIGHT.bash
car sh ≠ bash.
Maintenant dans debian c'est dash qui est utilisé pour sh et de nombreuse syntaxes de
bash ne sont pas comprises par dash). Je ne sais pas comment ça marche dans archlinux
ceci dit, mais c'est une bonne habitude à prendre. Ça évite des mauvaises surprises.



OK smile

GPU_LIGHT sans extension serait mieux ?

Sous Debian, je ne pourrais pas le tester par contre. neutral

Hors ligne

#19 09-06-2019 17:38:21

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

Re : [Terminé] Ripper et Encoder ses DVD pour archivage (SUBFR,..)

J'ai mis

#!/bin/sh



Pas de problème, ça fait son job smile

Hors ligne

#20 09-06-2019 17:39:31

enicar
Membre
Lieu : ailleurs
Inscription : 26-08-2010

Re : [Terminé] Ripper et Encoder ses DVD pour archivage (SUBFR,..)

J'ouvre une petite parenthèse.
Je ne sais pas ce que tu utilises comme éditeur pour écrire tes scripts, mais
il y a un excellent programme qui permet d'améliorer substantiellement les shell script :


shellcheck
 


Dans debian c'est dans le paquet éponyme.

Je l'utilise via syntastic quand j'utilise vim et via flycheck quand j'utilise emacs.
Je ne sais pas comment il est possible de l'utiliser avec d'autres environnements
mais ça doit être possible.

Note, on peut aussi l'utiliser avec ALE sous vim ou neovim.
ALE est le successeur de syntastic, en mieux (car il fait les choses
en arrière plan de façon asynchrone).
Bon je ferme cette parenthèse.

Hors ligne

#21 09-06-2019 17:41:59

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

Re : [Terminé] Ripper et Encoder ses DVD pour archivage (SUBFR,..)

enicar a écrit :

J'ouvre une petite parenthèse.
Je ne sais pas ce que tu utilises comme éditeur pour écrire tes scripts, mais
il y a un excellent programme qui permet d'améliorer substantiellement les shell script :


shellcheck
 


Dans debian c'est dans le paquet éponyme.

Je l'utilise via syntastic quand j'utilise vim et via flycheck quand j'utilise emacs.
Je ne sais pas comment il est possible de l'utiliser avec d'autres environnements
mais ça doit être possible.

Note, on peut aussi l'utiliser avec ALE sous vim ou neovim.
ALE est le successeur de syntastic, en mieux (car il fait les choses
en arrière plan de façon asynchrone).
Bon je ferme cette parenthèse.



Je regarde pour Arch ...

EDIT :

https://www.archlinux.org/packages/comm … hellcheck/

Dernière modification par golgot200 (09-06-2019 17:43:10)

Hors ligne

#22 09-06-2019 17:42:56

enicar
Membre
Lieu : ailleurs
Inscription : 26-08-2010

Re : [Terminé] Ripper et Encoder ses DVD pour archivage (SUBFR,..)

golgot200 a écrit :

J'ai mis

#!/bin/sh



Pas de problème, ça fait son job smile



Euh, justement non, dans ton script tu utilises au moins une syntaxe qui ne fait partie
du sh posix, par exemple :


for (( i=1; i<=TITLE_COUNT; i++ ))
do
#… le code ici
done
 


J'ai viré le $ à TITLE_COUNT, ça marche sans les $ dans les évaluations arithmétiques.

Hors ligne

#23 09-06-2019 17:47:19

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

Re : [Terminé] Ripper et Encoder ses DVD pour archivage (SUBFR,..)

enicar a écrit :

golgot200 a écrit :

J'ai mis

#!/bin/sh



Pas de problème, ça fait son job smile



Euh, justement non, dans ton script tu utilises au moins une syntaxe qui ne fait partie
du sh posix, par exemple :


for (( i=1; i<=TITLE_COUNT; i++ ))
do
#… le code ici
done
 


J'ai viré le $ à TITLE_COUNT, ça marche sans les $ dans les évaluations arithmétiques.



Ok, je vire le $ et je passe à b=30 pour prendre en compte plusieurs titres et je teste dans la foulée smile

Hors ligne

#24 09-06-2019 17:48:21

enicar
Membre
Lieu : ailleurs
Inscription : 26-08-2010

Re : [Terminé] Ripper et Encoder ses DVD pour archivage (SUBFR,..)

Te sers tu de la variable CROP définie par :


 CROP=$(ffmpeg -i $FOLDER/"$i-$TITLE.vob" -ss 60 -t 15 -t 1 -vf cropdetect -f null - 2>&1 | awk '/crop/ { print $NF }' | tail -1)
 


Il semblerait que non car shellcheck produit un avertissement à ce sujet.

Hors ligne

#25 09-06-2019 17:53:10

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

Re : [Terminé] Ripper et Encoder ses DVD pour archivage (SUBFR,..)

enicar a écrit :

Te sers tu de la variable CROP définie par :


 CROP=$(ffmpeg -i $FOLDER/"$i-$TITLE.vob" -ss 60 -t 15 -t 1 -vf cropdetect -f null - 2>&1 | awk '/crop/ { print $NF }' | tail -1)
 


Il semblerait que non car shellcheck produit un avertissement à ce sujet.




OK, là de toutes façon, je ne l'ai pas encore implanté. Tu peux la commenter.

Dernière modification par golgot200 (09-06-2019 17:57:48)

Hors ligne

Pied de page des forums