Debian-facile

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

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

#476 07-09-2019 10:08:13

golgot200
Membre
Distrib. : Archlinux
Noyau : Linux 5.2.0-arch2-1-ARCH
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script Encodage VOB en MKV [GPU NVIDIA]

@enicar

il va falloir que tu m'expliques un truc.
Sur une commande qui est sur une seule ligne, tu la coupe en multiple ligne en utilisant un antislash. Et bien moi, je peine avec ça, la commande foire souvent.

Hors ligne

#477 07-09-2019 10:50:45

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 5.2.8
(G)UI : openbox
Inscription : 26-08-2010

Re : Script Encodage VOB en MKV [GPU NVIDIA]

golgot200 a écrit :

il va falloir que tu m'expliques un truc.
Sur une commande qui est sur une seule ligne, tu la coupe en multiple ligne en utilisant un antislash. Et bien moi, je peine avec ça, la commande foire souvent.


C'est parce qu'il ne faut aucun espace ou tabulation derrière l'antislash.
Autrement dit, il faut que le retour à la ligne suive l'antislash directement.
Ou encore qu'il soit le dernier caractère de la ligne.
Bref, le soucis c'est d'avoir un système qui permette de détecter ces caractères
d'espacements en fin de ligne et qui permette de les supprimer.
Dans emacs et vim j'ai écrit des fonctions pour supprimer tous ces caractères
d'un seul coup. Parfois en fonction du type de fichier l'éditeur peut les montrer
(c'est un truc que l'on peut faire avec emacs et vim), ça dépend de ce que les auteurs
des différents modes ont fait ou pas. Avec les autres éditeurs je ne sais pas.

Pour donner des exemples voici mon code pour vim :


" Pour effacer les espaces et tabulations en fin de ligne :Trim

command Trim call TrimBuffer()
fun TrimBuffer()
    let col_save = col(".")
    let line_save = line(".")
    let v:errmsg = ''
    execute ":silent! 1,$s/[[:blank:]]\\+$//"
    if (v:errmsg ==# '')
        echo "buffer modified"
    endif
    call cursor(line_save, col_save)
endfun
 


Et mon code pour emacs :


(defun trim-buffer ()
  (interactive)
  (save-window-excursion
    (save-mark-and-excursion
      (goto-char (point-min))
      (while (re-search-forward "[\t ]+$" nil t)
        (replace-match "" t t)))))

(defun trim-region ()
  (interactive)
  (save-restriction
    (save-window-excursion
      (save-mark-and-excursion
        (narrow-to-region (mark) (point))
        (trim-buffer)
        (widen)))))
 


Dans vim je n'ai pas fait de Trim_region car je ne l'utilisais jamais.
Dans emacs je l'ai faite car, ça ne me coûtait pas cher et ça montre
comment faire une fonction qui opère sur une région en utilisant une
fonction qui opère sur le tampon en entier.
Peut-être que dans l'éditeur que tu utilises il existe déjà une extension pour
faire cela. Quelques fois, c'est fait au moment d'écrire le tampon sur le disque.
Moi, j'ai préféré faire ça manuellement. Ceci dit je peux facilement le rendre
automatique…

EDIT : Geany sait supprimer ces espaces en fin de lignes.
Il faut aller dans Edit/Preferences/Fichiers et cocher l'option :
« Enlever les espaces et tabulations de fin . Voilà wink

Dernière modification par enicar (07-09-2019 11:18:06)


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#478 07-09-2019 10:58:12

golgot200
Membre
Distrib. : Archlinux
Noyau : Linux 5.2.0-arch2-1-ARCH
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script Encodage VOB en MKV [GPU NVIDIA]

Il y a quelque chose qui ne va pas sur le script du premier post. J'ai une vidéo avec une seul bande audio anglaise et plusieurs sous-titres donc un en français "fr"

La vidéo final en anglais a bien le sous-titre en français mais nommée en anglais.

Hors ligne

#479 07-09-2019 11:02:31

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 5.2.8
(G)UI : openbox
Inscription : 26-08-2010

Re : Script Encodage VOB en MKV [GPU NVIDIA]

golgot200 a écrit :

Il y a quelque chose qui ne va pas sur le script du premier post.


Du premier post ? Vraiment ?…


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#480 07-09-2019 11:06:47

golgot200
Membre
Distrib. : Archlinux
Noyau : Linux 5.2.0-arch2-1-ARCH
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script Encodage VOB en MKV [GPU NVIDIA]

Oui, j'ai trouvé mais impossible pour l'instant d'expliquer le truc, mais c'est ici :

    mkvmerge "$FOLDER/$1-$TITLE+CHAPTERS.mkv" -a fre --default-language fr \
             "$FOLDER"/*.idx -o "$output"

Hors ligne

#481 07-09-2019 11:13:22

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 5.2.8
(G)UI : openbox
Inscription : 26-08-2010

Re : Script Encodage VOB en MKV [GPU NVIDIA]

C'est peut-être une erreur dans la nomenclature des sous titres sur le dvd.

La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#482 07-09-2019 11:24:10

golgot200
Membre
Distrib. : Archlinux
Noyau : Linux 5.2.0-arch2-1-ARCH
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script Encodage VOB en MKV [GPU NVIDIA]

enicar a écrit :

C'est peut-être une erreur dans la nomenclature des sous titres sur le dvd.



J'ai vérifié mais non, je pense que c'est moi qui me suis gourré en postant le mauvais script au départ post 16 "GPU_LIGHT.sh" en fait trop light.
Mon script juste avant que je n'ai pas pas posté fonctionne hmm


Voilà sur le script actuel ce qui fonctionnerait :




encode_sidfr_and_merge () {
    local output="$2"
    for n in $SIDFR; do
        mencoder -dvd-device "$DEVICE" "dvd://$1" \
                 -nosound -ovc copy -force-avi-aspect "$RATIO" \
                 -o /dev/null -ifo "$MOUNT_POINT/VIDEO_TS/VTS_01_0.IFO" \
                 -sid "$n" -vobsubout "$FOLDER/$i-vobsubs-fr" -vobsuboutindex "$n"
    done

#    mkvmerge "$FOLDER/$1-$TITLE+CHAPTERS.mkv" -a fre --default-language fr \
#             "$FOLDER"/*.idx -o "$output"

    mkvmerge "$FOLDER/$1-$TITLE+CHAPTERS.mkv" --language "0:fre" \
             "$FOLDER"/*.idx -o "$output"            
             
}
 

Hors ligne

#483 07-09-2019 11:31:58

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 5.2.8
(G)UI : openbox
Inscription : 26-08-2010

Re : Script Encodage VOB en MKV [GPU NVIDIA]

Bon tu as juste supprimé le « --default-language fr ». Je ne connais pas mkvmerge.
Il faudrait que je lise le man pour me rendre compte de ce que ça implique.

EDIT : J'ai lu le man ; je ne comprends pas pourquoi ça changerait
la langue du sous-titre.

Dernière modification par enicar (07-09-2019 11:37:38)


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#484 08-09-2019 19:01:23

golgot200
Membre
Distrib. : Archlinux
Noyau : Linux 5.2.0-arch2-1-ARCH
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script Encodage VOB en MKV [GPU NVIDIA]

enicar a écrit :

golgot200 a écrit :

il va falloir que tu m'expliques un truc.
Sur une commande qui est sur une seule ligne, tu la coupe en multiple ligne en utilisant un antislash. Et bien moi, je peine avec ça, la commande foire souvent.


C'est parce qu'il ne faut aucun espace ou tabulation derrière l'antislash.
Autrement dit, il faut que le retour à la ligne suive l'antislash directement.
Ou encore qu'il soit le dernier caractère de la ligne.
Bref, le soucis c'est d'avoir un système qui permette de détecter ces caractères
d'espacements en fin de ligne et qui permette de les supprimer.
Dans emacs et vim j'ai écrit des fonctions pour supprimer tous ces caractères
d'un seul coup. Parfois en fonction du type de fichier l'éditeur peut les montrer
(c'est un truc que l'on peut faire avec emacs et vim), ça dépend de ce que les auteurs
des différents modes ont fait ou pas. Avec les autres éditeurs je ne sais pas.

Pour donner des exemples voici mon code pour vim :


" Pour effacer les espaces et tabulations en fin de ligne :Trim

command Trim call TrimBuffer()
fun TrimBuffer()
    let col_save = col(".")
    let line_save = line(".")
    let v:errmsg = ''
    execute ":silent! 1,$s/[[:blank:]]\\+$//"
    if (v:errmsg ==# '')
        echo "buffer modified"
    endif
    call cursor(line_save, col_save)
endfun
 


Et mon code pour emacs :


(defun trim-buffer ()
  (interactive)
  (save-window-excursion
    (save-mark-and-excursion
      (goto-char (point-min))
      (while (re-search-forward "[\t ]+$" nil t)
        (replace-match "" t t)))))

(defun trim-region ()
  (interactive)
  (save-restriction
    (save-window-excursion
      (save-mark-and-excursion
        (narrow-to-region (mark) (point))
        (trim-buffer)
        (widen)))))
 


Dans vim je n'ai pas fait de Trim_region car je ne l'utilisais jamais.
Dans emacs je l'ai faite car, ça ne me coûtait pas cher et ça montre
comment faire une fonction qui opère sur une région en utilisant une
fonction qui opère sur le tampon en entier.
Peut-être que dans l'éditeur que tu utilises il existe déjà une extension pour
faire cela. Quelques fois, c'est fait au moment d'écrire le tampon sur le disque.
Moi, j'ai préféré faire ça manuellement. Ceci dit je peux facilement le rendre
automatique…

EDIT : Geany sait supprimer ces espaces en fin de lignes.
Il faut aller dans Edit/Preferences/Fichiers et cocher l'option :
« Enlever les espaces et tabulations de fin . Voilà wink



Merci beaucoup smile

Hors ligne

#485 08-09-2019 19:13:46

golgot200
Membre
Distrib. : Archlinux
Noyau : Linux 5.2.0-arch2-1-ARCH
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script Encodage VOB en MKV [GPU NVIDIA]

enicar a écrit :

Bon tu as juste supprimé le « --default-language fr ». Je ne connais pas mkvmerge.
Il faudrait que je lise le man pour me rendre compte de ce que ça implique.

EDIT : J'ai lu le man ; je ne comprends pas pourquoi ça changerait
la langue du sous-titre.



J'avoue que moi, j'y perd mon latin.
Bon, je laisse cette modification vu que ça fonctionne sans broncher. hmm

Hors ligne

#486 08-09-2019 21:41:18

golgot200
Membre
Distrib. : Archlinux
Noyau : Linux 5.2.0-arch2-1-ARCH
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script Encodage VOB en MKV [GPU NVIDIA]

En fait ça foire au niveau d'un titre avec un seul sous-titre fr et un autre titre avec plusieurs sous-titres fr avec mkvmerge. je laisse cette modification, le titre à une seul sous-titre fr sera bien taggué fr mais celui à plusieurs sous-titres fr sera dans ce style :

fr unknown unknown

Dernière modification par golgot200 (08-09-2019 21:43:36)

Hors ligne

#487 10-09-2019 15:49:39

golgot200
Membre
Distrib. : Archlinux
Noyau : Linux 5.2.0-arch2-1-ARCH
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script Encodage VOB en MKV [GPU NVIDIA]

Bonjour,

sur le dvd, j'ai ces streams audio dans cet ordre précis :


audio stream: 0 format: ac3 (5.1) language: en aid: 128.

audio stream: 1 format: dts (5.1/6.1) language: fr aid: 137.

audio stream: 2 format: ac3 (stereo) language: en aid: 130.

audio stream: 3 format: ac3 (5.1) language: fr aid: 131.
 



128 137 130 131


Par cet commande :


extract_all_audios_ac3 () {
    local output="$2"
    for n in $AIDS_AC3; do
        mplayer -endpos 480 -identify -dvd-device "$DEVICE" dvd://$i \
                 -ni -aid $n \
                 -dumpaudio -dumpfile "$FOLDER/$n-$TITLE.ac3"
    done            
           

}
 



ces fichiers audios vont sortir dans le dossier dans cette ordre :

Ordre.png

Ce qui va ce passer, c'est que mkvmerge va les incorporer dans ce sens. C'est pas bon pour la suite hmm

Il me faudrait mettre un ordre comme ça :

Ordre_Voulu.png

en rajoutant 01-...  02-...  03-...  etc ou dans ce style.

Je n'ai pas trouvé une combine avec mkvmerge pour muliplexer un stream audio a chaque fois qu'il sortait. ( le deuxième écrase le premier )

Voilà, après cela, le script sera quasi bon.

Dernière modification par golgot200 (10-09-2019 15:51:50)

Hors ligne

#488 10-09-2019 19:55:46

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 5.2.8
(G)UI : openbox
Inscription : 26-08-2010

Re : Script Encodage VOB en MKV [GPU NVIDIA]

Il faut que j'y réfléchisse. Ce n'est pas très difficile de mettre un compteur global
qu'on incrémente à chaque extraction.

PS: J'aime beaucoup les Die hard wink

Dernière modification par enicar (10-09-2019 19:57:07)


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#489 11-09-2019 00:02:56

golgot200
Membre
Distrib. : Archlinux
Noyau : Linux 5.2.0-arch2-1-ARCH
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script Encodage VOB en MKV [GPU NVIDIA]

smile

ça vaut ce que ça vaut, mais ça fonctionne :


Bon_Ordre.png


extract_all_audios_ac3 () {
    ORDER=0
    local output="$2"
    for n in $AIDS_AC3; do
        mplayer -endpos 500 -identify -dvd-device "$DEVICE" dvd://$i \
                 -ni -aid $n \
                 -dumpaudio -dumpfile "$FOLDER/$((ORDER++))-$n-$TITLE.ac3"
    done            
           
 

Dernière modification par golgot200 (11-09-2019 00:08:28)

Hors ligne

#490 11-09-2019 10:08:24

golgot200
Membre
Distrib. : Archlinux
Noyau : Linux 5.2.0-arch2-1-ARCH
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script Encodage VOB en MKV [GPU NVIDIA]

Là aussi c'est prise de tête. big_smile

lsdvd pour les infos des sous-titres :


  Subtitle: 01, Language: en - English, Content: Undefined, Stream id: 0x20,
  Subtitle: 02, Language: fr - Francais, Content: Undefined, Stream id: 0x21,
  Subtitle: 03, Language: it - Italiano, Content: Undefined, Stream id: 0x22,
  Subtitle: 04, Language: nl - Nederlands, Content: Undefined, Stream id: 0x23,
  Subtitle: 05, Language: ar - Arabic, Content: Undefined, Stream id: 0x24,
  Subtitle: 06, Language: es - Espanol, Content: Undefined, Stream id: 0x25,
  Subtitle: 07, Language: pt - Portugues, Content: Undefined, Stream id: 0x26,
  Subtitle: 08, Language: de - Deutsch, Content: Undefined, Stream id: 0x27,
  Subtitle: 09, Language: en - English, Content: Normal, Stream id: 0x28,
  Subtitle: 10, Language: it - Italiano, Content: Normal, Stream id: 0x29,
 




mplayer pour les infos des sous-titres :


subtitle ( sid ): 0 language: en

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

ID_SUBTITLE_ID=3
ID_SID_3_LANG=fr
subtitle ( sid ): 4 language: it

ID_SUBTITLE_ID=4
ID_SID_4_LANG=it
subtitle ( sid ): 5 language: nl

ID_SUBTITLE_ID=5
ID_SID_5_LANG=nl
subtitle ( sid ): 5 language: ar

ID_SUBTITLE_ID=5
ID_SID_5_LANG=ar
subtitle ( sid ): 2 language: es

ID_SUBTITLE_ID=2
ID_SID_2_LANG=es
subtitle ( sid ): 5 language: pt

ID_SUBTITLE_ID=5
ID_SID_5_LANG=pt
subtitle ( sid ): 1 language: de

ID_SUBTITLE_ID=1
ID_SID_1_LANG=de
subtitle ( sid ): 0 language: en

ID_SUBTITLE_ID=0
ID_SID_0_LANG=en
subtitle ( sid ): 4 language: it

ID_SUBTITLE_ID=4
ID_SID_4_LANG=it
number of subtitles on disk: 10

 



Jouer avec lsdvd ou mplayer quand les infos nous arrange, je crois, parfois, que ce n'est pas une bonne idée .

Hors ligne

#491 11-09-2019 12:27:02

golgot200
Membre
Distrib. : Archlinux
Noyau : Linux 5.2.0-arch2-1-ARCH
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script Encodage VOB en MKV [GPU NVIDIA]

Tests en cours sur mes DVD-Vidéo les plus récalcitrants ........


sur des vobs ne contenant pas d'audio alors que sur les infos, il y en a.
des channels 0.
des sous-titres qui ne correspondent pas aux infos.
et je dois en oublier ....

C'est là que je vois que Handbrake est costaud. Mais bon, c'est pas le but.

Dernière modification par golgot200 (11-09-2019 12:30:48)

Hors ligne

#492 11-09-2019 20:54:51

golgot200
Membre
Distrib. : Archlinux
Noyau : Linux 5.2.0-arch2-1-ARCH
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script Encodage VOB en MKV [GPU NVIDIA]

Hors sujet:

Je met ce lien pour ne pas le perdre.
Je teste le High Quality pour libx264, c'est du 25 fps (1X) à l'encodage, mais le résultat est magnifique.

https://devblogs.nvidia.com/turing-h264 … d-quality/

-c:v libx264 -preset veryslow -b:v 4000k -minrate 4000k -maxrate 4000k -bufsize 8000k -loglevel repeat+verbose -movflags faststart -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 -profile:v high -tune psnr -vsync 0 -threads 4




Avec ma combinaison de filtres :

-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



C'est encore mieux. On dirait même plus que c'est un film venu d'un DVD-Vidéo.

Les noirs sont clean smile :

Noir_Cest_Noir.png

Dernière modification par golgot200 (11-09-2019 21:05:01)

Hors ligne

#493 13-09-2019 19:09:47

golgot200
Membre
Distrib. : Archlinux
Noyau : Linux 5.2.0-arch2-1-ARCH
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : Script Encodage VOB en MKV [GPU NVIDIA]

Bonjour,

la methode pour yadif en fait ne donne pas de bon résultat. C'est pas la méthode qui ne va pas mais le résultat au visuel. Un exemple que je posterais en image plus tard montre que sur les noirs ( au niveau des sourcils du toutou ) qu'ils sont hachurés. Comme si on avait passé de la gomme.

Dernière modification par golgot200 (13-09-2019 19:10:15)

Hors ligne

Pied de page des forums