Debian-facile

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

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

#1 20-06-2015 20:10:24

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

Encodage de DVD pour gagner de la place.

Bonjour,

J'ai copié sur mon disque dur des DVDs musicaux qui me prennent pas
mal de place.  J'aimerai les encoder dans un autre format qui soit
plus léger. Je voudrais surtout gagner de la place sur la vidéo, c'est
surtout la musique qui est importante (ce sont des concerts).  Mais je
veux quand même gardé cela regardable sur mon pc sans m'abîmer les
yeux wink

Donc, j'ai décidé d'utiliser le format mkv comme container. Et de
copier les pistes sonores telles quelles (elles sont codées en ac3).
Par contre, je ne sais pas ce qu'il y a de judicieux pour la vidéo.
J'ai commencé à encoder en vp8 avec un bitrate variable moyen de
800Ko. Voilà, j'aimerai avoir des conseils à ce sujet (quel type
d'encodage, bitrate ou qualité fixe, etc…)

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

Hors ligne

#2 21-06-2015 08:53:10

Slyfox
Membre
Lieu : Pays du chocolat
Distrib. : GNU/Linux Debian Sid
Noyau : Linux 4.7.0-1-amd64
(G)UI : MATE
Inscription : 15-12-2013

Re : Encodage de DVD pour gagner de la place.

Salut,

Peut-être avec avconv (fork de ffmpeg), pour l'installer :

sudo apt-get install libav-tools



Essaye cette commande (je convertis la vidéo en mp4 avec quelques filtres et copie l'audio le tout encapsulé en mkv):

avconv -i "video.avi" -threads 0 -preset medium -crf 20 -c:v libx264 -mbd rd -flags +mv4+aic -trellis 2 -cmp 2 -subcmp 2 -g 300 -c:a copy "new_video.mkv"



Pour gagner encore plus de place, on peut enlever les bandes noirs (crop), fais moi signe si ça t'intéresse. wink

Pour plus d'info sur avconv regarde ce lien : https://debian-facile.org/doc:media:avconv

Dernière modification par Slyfox (21-06-2015 09:09:07)

Hors ligne

#3 21-06-2015 09:10:10

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

Re : Encodage de DVD pour gagner de la place.

Merci bien. ffmpeg/avconv, c'est le même combat. J'utilise ffmpeg plutôt que avconv, mais bon…
Mon problème ce n'est pas l'utilitaire à utiliser mais plutôt le codec et les paramètres associés pour avoir un résultat « potable ».
J'essaierai ta commande avec ffmpeg (ça doit être la même chose). Ceci dit, j'ai tendance à éviter le x264
en ce moment…
Aussi, j'ai découvert handbrake-gtk qui permet d'avoir une interface graphique très claire pour
exécuter ce genre de tâche de transcodage.

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

Hors ligne

#4 21-06-2015 09:23:08

Slyfox
Membre
Lieu : Pays du chocolat
Distrib. : GNU/Linux Debian Sid
Noyau : Linux 4.7.0-1-amd64
(G)UI : MATE
Inscription : 15-12-2013

Re : Encodage de DVD pour gagner de la place.

Voilà un script "maison" (il enlève les bande noir).

Il faut installer libav-tools, mplayer et yad...

Pour installer yad

Pour la version 64 bits :

wget http://ftp.br.debian.org/debian/pool/main/y/yad/yad_0.27.0-1_amd64.deb


sudo apt-get update
sudo dpkg -i yad_0.27.0-1_amd64.deb



lien yad : http://pkgs.org/debian-sid/debian-main- … 4.deb.html

Installation de avconv et mplayer:

sudo apt-get update
sudo apt-get install libav-tools mplayer



Script

#! /bin/bash

inFichier=$(yad --file --multiple --width="700" --height="500" --separator="\n" --center --filename="/home/$USER" )

crf=$(yad --separator="\n"  \
   --height=185 --list --radiolist --no-headers --height=350 --center \
   --column 1 --column 2 --print-column=2 \
       false "0" \
       false "5" \
       false "10" \
       false "15" \
       false "18" \
       true "20" \
       false "25" \
       false "30" \
       false "50")

preset=$(yad --separator="\n" \
   --height=185 --list --radiolist --no-headers --height=350 --center \
   --column 1 --column 2 --print-column=2 \
       false "ultrafast" \
       false "superfast" \
       false "veryfast" \
       false "faster" \
       false "medium" \
       true "slow" \
       false "slower" \
       false "veryslow")


echo "$preset"

# modification de l'IFS pour qu'il passe en saut de ligne
old_IFS=${IFS} IFS=$'\n'

for i in ${inFichier}
do
outFichier=$(echo "${i}" | awk -F "/" '{print $NF}' | awk -F "." '{print $1}' | tr " " "_")
echo "$outFichier"

# Caclul bande noir (crop)
mplayer "${i}" -vo null -nosound -vf cropdetect > "/home/$USER/crop.txt" &
pid=$!
sleep 10
kill $pid
crop=$(cat "/home/$USER/crop.txt" | awk -F [\(\)] '/Crop/ {print $2}' | awk 'END {print}' | awk '{print $2}')

avconv -i "${i}" -threads 0 -preset $preset -crf $crf -c:v libx264 -mbd rd -flags +mv4+aic -trellis 2 -cmp 2 -subcmp 2 -g 300 -c:a copy "/home/$USER/Bureau/new_$outFichier.mkv" 2>&1

done

# remise en place de l'IFS
IFS=${old_IFS}



- Clic droit sur le bureau
- Créer un document --> Fichier vierge --> Nommer le fichier, par exemple: avconv_mp4_copy_mkv
- Faire un copier/coller du script ci-dessus
- Enregistrer
- Clic droit sur le fichier du script --> Propriétés --> Permission --> Cocher "Autoriser l’exécution du fichier comme programme"
- Double clic sur le nouveau script --> Lancer dans un Terminal

Dernière modification par Slyfox (21-06-2015 09:55:43)

Hors ligne

#5 21-06-2015 09:35:18

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

Re : Encodage de DVD pour gagner de la place.

Très bien, ton script smile Remarque, c'est inutile de restaurer la valeur de IFS à la fin du script… mais
c'est sans importance wink

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

Hors ligne

#6 21-06-2015 10:44:14

Slyfox
Membre
Lieu : Pays du chocolat
Distrib. : GNU/Linux Debian Sid
Noyau : Linux 4.7.0-1-amd64
(G)UI : MATE
Inscription : 15-12-2013

Re : Encodage de DVD pour gagner de la place.

enicar a écrit :

Mon problème ce n'est pas l'utilitaire à utiliser mais plutôt le codec et les paramètres associés pour avoir un résultat « potable ».
J'essaierai ta commande avec ffmpeg (ça doit être la même chose). Ceci dit, j'ai tendance à éviter le x264



Je te rejoins à 100%. Mais le x264 est très portable surtout sur les smartphone Android et Iphone... au même titre que le mp3 ou l'acc et mp4 (conteneur).

Sinon je ne suis par sûr que l'ac3 soit un bon choix pour l'audio, il semble ne pas être très supporté.

Malheureusement les formats libres et/ou ouvert comme le VP8, Vorbis, ac3, MKV... sont pas forcément utilisable sur certains appareils, au revoir la portabilité. sad

Dernière modification par Slyfox (21-06-2015 10:49:32)

Hors ligne

#7 21-06-2015 10:49:54

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

Re : Encodage de DVD pour gagner de la place.

J'utilise la commande suivante avec ffmpeg pour convertir mes
vidéos provenant de DVD (ce n'est qu'un essai) :


ffmpeg -i input.vob -threads 0 -codec:v libvpx -crf 20 -b:v 1M -codec:a copy output.mkv
 


Je fais cela pour chaque vob. L'automatisation de tout cela ne
m'intéresse pas pour l'instant, je verrai cela plus tard.

Ensuite pour concaténer, tous les mkv :


ffmpeg -f concat -i list-mkv.txt -c copy FichierFinal.mkv
 


Le fichier list-mkv.txt :


file 'fichier1.mkv'
file 'fichier2.mkv'

 



Je me demande toujours quel crf et quel bitrate utilisé… Et comme
l'encodage prend beaucoup de temps sur mon pauvre dual core de base,
je n'ai pas fini de faire des essais big_smile
J'ai lu sur :
Encoder en VP8 avec ffmpeg
que les crf plus petits donnaient une meilleure qualité. Et il est
conseillé de commencé avec des valeurs inférieures ou égale à 10…
Dans ce cas 20 serait trop élevé…

Autre soucis, après la concaténation, j'ai un saut d'image à l'endroit
de la jointure. Y a-t-il un moyen d'éviter cela ?

Dernière modification par enicar (21-06-2015 11:34:41)


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

Hors ligne

#8 21-06-2015 10:56:10

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

Re : Encodage de DVD pour gagner de la place.

Slyfox a écrit :

Je te rejoins à 100%. Mais le x264 est très portable surtout sur les smartphone Android et Iphone... au même titre que le mp3 ou l'acc et mp4 (conteneur).

Sinon je ne suis par sûr que l'ac3 soit un bon choix pour l'audio, il semble ne pas être très supporté.

Malheureusement les formats libres et/ou ouvert comme le VP8, Vorbis, ac3, MKV... sont pas forcément utilisable sur certains appareils, au revoir la portabilité. sad


Oui, bien sûr. Mais la portabilité n'est pas mon soucis. Effectivement quand je veux partager des vidéos, j'utilise du mp4/x264/aac. Quant à l'ac3, c'est juste parce que je copie la piste de son telle quelle, pour éviter une perte qualité sonore. C'est le format utilisé dans beaucoup de DVD commerciaux…


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

Hors ligne

#9 21-06-2015 11:34:13

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

Re : Encodage de DVD pour gagner de la place.

En fait, je me suis dit qu'il vaudrait peut être mieux concaténer avant le changement d'encodage
pour éviter les sauts d'images, non ? C'est à dire concaténer les .vob

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

Hors ligne

#10 21-06-2015 12:02:48

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

Re : Encodage de DVD pour gagner de la place.

C'est bien ça. il faut concaténer avant de transcoder. par contre pour concaténer des .vob,
il faut opérer au niveau fichier (et non au niveau des streams) :


ffmpeg -i "concat:fichier1.vob|fichier2.vob" -c copy output.vob
 


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

Hors ligne

#11 21-06-2015 18:10:17

Slyfox
Membre
Lieu : Pays du chocolat
Distrib. : GNU/Linux Debian Sid
Noyau : Linux 4.7.0-1-amd64
(G)UI : MATE
Inscription : 15-12-2013

Re : Encodage de DVD pour gagner de la place.

enicar a écrit :


Je me demande toujours quel crf et quel bitrate utilisé… Et comme
l'encodage prend beaucoup de temps sur mon pauvre dual core de base,
je n'ai pas fini de faire des essais big_smile
J'ai lu sur :
Encoder en VP8 avec ffmpeg
que les crf plus petits donnaient une meilleure qualité. Et il est
conseillé de commencé avec des valeurs inférieures ou égale à 10…
Dans ce cas 20 serait trop élevé…



Je me posais la même question que toi voir ce topic : https://debian-facile.org/viewtopic.php?id=11528
Regarde le poste #8 où j'ai fait un test et j'en ai conclu qu'en dessous d'un crf 10 le fichier devenais plus lourd que l’orignal.
Avec un crf en dessous de 10 on obtient dans le cas d'un fichier vob (DVD) un débit supérieur que les DVD eux même qui se situent vers 9000 KB/s.

Perso selon les vidéos j'ai choisi un crf entre 15 et 20 et un preset inférieur à medium (slow ou slower) qui donne un bon compromis qualité/poids, après il faut aussi utiliser les bons filtres. wink

Sinon pour faire les tests de qualité ou autres, j’utilise les paramétres -ss et -t qui me donne une vidéo de 15 secondes, ce qui me permets de gagner du temps pour mes tests.
Par exemple pour encoder à partir de la 40ème secondes et pendant 15 secondes en mp4/x264/acc cela donne :

avconv -y -i "video.vob" -threads 0 -preset slow -crf 18 -c:v libx264 -mbd rd -flags +mv4+aic -trellis 2 -cmp 2 -subcmp 2 -g 300 -c:a libfdk_aac -vbr 5 -ss 40 -t 15  "video.mp4" 2>&1

Dernière modification par Slyfox (21-06-2015 18:23:14)

Hors ligne

#12 21-06-2015 18:23:28

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

Re : Encodage de DVD pour gagner de la place.

Ok, merci pour le retour. Pour l'instant je n'ai pas utilisé de filtre. D'ailleurs, je me disais qu'il faudrait peut être
que j'en utilise un simple en postprocessing. Mais le problème, c'est que ça va encore prendre plus de temps à
calculer, déjà comme ça avec mes réglages, j'en ai pour 10 heures de traitements tongue

Avec un crf de 10, on a pas forcément un fichier hyper gros, à condition de demander un bitrate moyen,
ce que je fais wink Après, dans l'interface de handbrake, ils proposent un bitrate de 2500Ko, moi j'utilise plutôt
1000Ko ce qui réduit pas mal le poids du fichier résultant. Là J'ai lancé un traitement avec un crf de 15
et un bitrate de 1000Ko. J'en suis à la moitié du traitement. Le fichier devrait faire 1.2 Gio, l'original
fait 3.9 Gio wink

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

Hors ligne

#13 21-06-2015 18:54:38

Slyfox
Membre
Lieu : Pays du chocolat
Distrib. : GNU/Linux Debian Sid
Noyau : Linux 4.7.0-1-amd64
(G)UI : MATE
Inscription : 15-12-2013

Re : Encodage de DVD pour gagner de la place.

Sauf erreur de ma part si tu utilises le paramètre crf, tu n'as pas besoin de spécifier un birate, crf gère le birate de lui-même, a moins qu'on exiges un birate minimum ou maximum.

Lien: http://translate.google.ch/translate?hl … rev=search

Dernière modification par Slyfox (21-06-2015 19:01:55)

Hors ligne

#14 21-06-2015 19:04:07

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

Re : Encodage de DVD pour gagner de la place.

Et bien, je ne sais pas. Car d'après ce qu'ils disent ici, ça a un sens.

Je sais que c'est un peu étonnant. D'ailleurs dans handbrake-gtk soit on précise un bitrate moyen (ou fixe, mais bon) soit on impose une qualité constante (un crf quoi). Mais là je suis reparti sur l'utilisation de ffmpeg/avconv, car c'est plus souple.

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

Hors ligne

#15 21-06-2015 19:38:47

Slyfox
Membre
Lieu : Pays du chocolat
Distrib. : GNU/Linux Debian Sid
Noyau : Linux 4.7.0-1-amd64
(G)UI : MATE
Inscription : 15-12-2013

Re : Encodage de DVD pour gagner de la place.

enicar a écrit :

Mais là je suis reparti sur l'utilisation de ffmpeg/avconv, car c'est plus souple.



+1 smile

Perso la ligne de commande c'est plus parlant et après tout on est sur GNU/Linux cool
Handbrake est très bien mais trop usine à gaz pour moi.

Hors ligne

#16 21-06-2015 19:43:41

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

Re : Encodage de DVD pour gagner de la place.

Slyfox a écrit :

Handbrake est très bien mais trop usine à gaz pour moi.


Ah ? Pour une fois, j'ai trouvé que l'interface est claire… mais bon les goûts et les couleurs…


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

Hors ligne

#17 21-06-2015 19:46:35

nIQnutn
Modérateur
Lieu : Lyon
Distrib. : Jessie
Noyau : Linux 3.16-amd64
(G)UI : XFCE
Inscription : 16-03-2012
Site Web

Re : Encodage de DVD pour gagner de la place.

mais pour l'utilisation de crop, hanbrake est bien meilleur.

En ligne

#18 21-06-2015 19:50:29

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

Re : Encodage de DVD pour gagner de la place.

nIQnutn a écrit :

mais pour l'utilisation de crop, hanbrake est bien meilleur.


En effet, j'ai trouvé que c'était facile à régler dans l'onglet image. Ça m'a fait progresser dans
le domaine du traitement de l'image (pas difficile vu que je n'y connais pas grand chose tongue).


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

Hors ligne

Pied de page des forums