[ Présentation | transcodage  ( transcode , avidemux ) | Rippage de DVD avec dvd::rip ( Présentationinstallationutilisation , le mode cluster ) ) ]

Transcodage et rippage de DVD

Dernière modification 24 décembre 2009

( ce document est disponible au format pdf dans la rubrique téléchargement)

Présentation

Les outils présentés dans cette page permettent de transcoder des fichiers vidéo, c'est à dire changer le format (vidéo/audio) d'une vidéo, et de ripper des DVD pour en faire des fichiers vidéo de moindre taille. Un cas pratique est de prendre un fichier au format MPEG2 (DVD par exemple) et de le convertir au format DivX ou vice-versa.
Pour ces outils on veillera à installer les bibliothèques de base présentées dans la page les outils de base pour la vidéo.

[Retour haut de la page ]


Transcodage

Transcode

Installation

Transcode est un outil très puissant pour l'encodage vidéo. On le récupère à l'URL  http://inferno.slug.org/cgi-bin/transcode. On décompresse l'archive en tapant

tar  xvfz transcode-1.1.0.tar.gz

Cela donne le répertoire transcode-1.1.0 dans lequel on tape

./configure --enable-libavcodec --enable-libmpeg2 --enable-v4l --enable-avifile --enable-lame --enable-ogg --enable-vorbis --enable-theora --enable-libdv --enable-libquicktime --enable-a52 --enable-libfame --enable-mjpegtools --enable-libxml2 --enable-gtk
--enable-sdl --enable-xvid

pensez à installer par ailleurs les packages liblzo-devel,  libxml2 et libxml2-devel (libxml2-dev sous ubuntu).

Voilà le résultat

----------------------------------------
Summary for transcode 1.1.0:           
----------------------------------------

core options
----------------------------------------
enable experimental code       no      
enable deprecated code         no      
static AV-frame buffering      yes     
A52 default decoder            yes     

ffmpeg libraries
----------------------------------------
libavcodec  build              3416064 
libavcodec  version            52.32.0 
libavformat build              3417088 
libavformat version            52.36.0 

hardware support
----------------------------------------
v4l/v4l2                       yes     
ALSA                           no      
OSS                            no      
bktr                           no      
sunau                          no      

optional module support
----------------------------------------
PV3                            no      
NuppelVideo                    no      

optional package support
----------------------------------------
IBP (libxio)                   no      
X11                            yes     
    Xv      extension          yes     
    Xshm    extension          yes     
    Xaw     library            yes     
    Xpm     library            yes     

libmpeg2                       yes
libpostproc                    no
freetype2                      no
lame                           yes
xvid                           yes
x264                           no
ogg                            yes
vorbis                         yes
theora                         yes
libdvdread                     yes
pvm3                           no
libdv                          yes
libquicktime                   yes
lzo                            no
a52                            yes
faac                           no
libxml2                        yes
mjpegtools                     yes
sdl                            yes
imagemagick                    no
libjpeg                        yes
bsdav                          no
iconv                          yes

dans un premier tems il ne voulait pas prendre en compte xvid, j'ai du modifier le fichier configure et à chaque occurence de -lxvidcore rajouter juste après -pthread, et relancez configure.

on tape ensuite make puis en tant que root on tape

make install

On édite le fichier /etc/ld.so.conf et on rajoute la ligne

/usr/local/lib/transcode


On tape alors

ldconfig
[Retour haut de la page ]

Utilisation

Commande simple pour convertir un fichier MPEG2 en xvid.

transcode -i fichier.mpeg -o toto.avi -y xvid

La syntaxe est la suivante
-i fichier en entrée
-o fichier en sortie
-y codec à utiliser

Autre exemple, en imposant une dimension d'image et un certain bitrate.

transcode -i fichier.mpeg -o toto.avi -y xvid -Z 512x288 -w 910

-Z L*H dimension de l'image, attention L et H doivent être multiples de 32
-w bitrate

Dernier exemple, on réduit la taille initiale de l'image par 2 en conservant les proportions

transcode -i fichier.mpeg -o toto.avi -y xvid  -r 2,2 -w 800


-r facteur de réduction (hauteur et largeur)

Si votre vidéo se retrouve la tête en bas, rajoutez l'option -z
Si les couleurs sont pas terribles, en rajoutant les options -C 1 -k, ça peut améliorer grandement les choses.

Autre exemple, pour créer un xvid à partir d'un fichier MPEG2 (DVD), vous pouvez écrire ce petit script

#!/bin/bash
if [ $# -eq 2 ]
then
        echo "Premiere passe"
        transcode -i $1 -o /dev/null -x mpeg2,null -y xvid -V -Z 480x384 -w 1700 -R 1
        echo "deuxieme passe"
        transcode -i $1 -o $2 -x mpeg2 -y xvid -V -Z 480x384 -w 1700 -R 2
else
        echo "usage de $0 fichierentree(format MPEG2) fichiersortie(XVID)"
fi

Il procède en deux passes, à noter que la taille et le baud rate ont été fixés de manière à ce que le fichier soit lisible sur ma platine DVD Yamada ! A vous de décliner ce script suivant vos besoins, vous n'avez en pratique qu'à toucher au codec utilisé (-y), au format de l'image (-Z) et au baudrate (-w).

N'hésitez pas à consulter le man qui est bien détaillé et l'aide fournie avec le logiciel.



[ Retour haut de la page ]

avidemux

Présentation

avidemux est un logiciel permettant de convertir des fichiers vidéo, mais il est bien plus que cela, il permet de réaliser certains traitements vidéo et audio ainsi que de récupérer des fichiers avi "cassés".

[ Retour haut de la page ]

Installation

Le site officiel est http://www.avidemux.org, on y récupère l'archive qu'on décompresse en tapant

tar xvfz avidemux_2.5.2.tar.gz

Cela donne le répertoire avidemux_2.5.2. On veillera à installer le package libgtk+2.0_0-devel avec ses dépendances (un urpmi devrait suffire) ainsi que gettext-devel. On revient sous avidemux_2.5.2 dans lequel on tape

cmake .

j'ai buté sur l'erreur suivante

CMake Error at CMakeLists.txt:28 (MESSAGE):
  in-tree-build detected


-- Configuring incomplete, errors occurred!

j'ai du taper ensuite

rm CMakeCache.txt; mkdir build; cd build; cmake ..

voilà le résultat

patching file config.mak


*********************
***    SUMMARY    ***
*********************
   GTK+        Yes
   Qt 4        Yes
*** Miscellaneous ***
   gettext     Yes
   SDL         Yes
   XVideo      Yes
*********************
*** Release Build ***
*********************

on tape ensuite 

make


Puis en tant que root

cd build
make install
ldconfig

[ Retour haut de la page ]

Utilisation

Il suffit de taper avidemux2_gtk



L'étendue de toutes ses fonctionnalités est large en voici un très bref aperçu.

Fusionner deux vidéos
- Ouvrez la première vidéo
- Ouvrez la deuxième vidéo, Fichier->Ajouter une video...
- Sauvegardez la vidéo obtenue, Fichier->Enregistrer->Enregistrer une video

Couper des scènes
- Avec le curseur qui défile horizontalement, placez vous au début de la scène à couper
- Cliquez sur le bouton >A
- placez vous à la fin de la scène à couper
- Cliquez sur le bouton B>
- vous voyez le numéro des frames de début et de fin s'affichaient en bas à droite au niveau du champ Selection
- Editer-> Couper
- Sauvegardez la vidéo obtenue, Fichier->Enregistrer->Enregistrer une video

Sauvegarder la bande son
- Audio->Enregistrer
- saisissez le nom d'un fichier terminé par .mp3

Rajoutez une bande son
- Audio->Piste principal>MP2/MP3 externe
- choisissez votre fichier MP3, la bande son va commencer en début de vidéo, si la musique se termine alors que la vidéo n'est pas encore terminée, il n'y a plus de son..., vous avez donc intérêt à prendre un fichier MP3 qui a une durée supérieure à la vidéo. (il y a peut être un moyen de faire autrement mais je ne l'ai pas vu).

La documentation se trouve par ici http://www.avidemux.org/admWiki/index.php?title=Main_Page

[Retour haut de la page ]


Rippage de DVD avec dvd::rip

Présentation

dvd::rip est une interface graphique à transcode qui vous permet très simplement de copier un DVD en DivX par exemple...

Installation

L'URL officiel est  http://exit1.org/dvdrip/ on y récupère l'archive qu'on décompresse en tapant

tar xvfz dvdrip-0.98.10.tar.gz

Cela donne le répertoire dvdrip-0.98.10
Pour une Mandriva on veillera à ce que les packages fping (pour le mode cluster), perl-GTK-GdkPixbuf et libnetpbm-devel (urpmi) soient installés. Pour fping dvd::rip s'attend à le trouver à un endroit différent de là où il est réellement, on crée un lien en conséquence

ln -s /bin/fping /usr/sbin/fping

Pour une (k)ubuntu on installera les packages

libgtk-perl
libgtk2-perl
libgdk-pixbuf-perl
libpng3
fping
libevent-perl
anyevent-perl
gtk2-ex-formfactory-perl
libevent-execflow-perl
imagemagick
xvid4conf
lsdvd

pour une Mandriva cela donne

perl-AnyEvent
perl-Event
perl-Event-RPC
perl-Event-ExecFlow
perl-Gtk2-Ex-FormFactory

Par ailleurs on doit installer le soft permettant de gérer les sous titres, on le trouve sur ce site  http://subtitleripper.sourceforge.net on décompresse l'archive en tapant

tar xvfz subtitleripper-0.3-4.tgz

Cela donne le répertoire subtitleripper sur une ubuntu il faudra éventuellement installer le package libnetpbm10-dev (libnetpbm-devel pour une mandriva) puis on tape

make

si vous avez une erreur du style

/usr/bin/ld: cannot find -lppm

je me suis contenté de créer le lien suivant

ln -s /usr/lib/libnetpbm.so.10.35 /usr/lib/libppm.so

puis en tant que root

cp pgm2txt /usr/local/bin
cp srttool /usr/local/bin
cp subtitle2pgm /usr/local/bin
cp subtitle2vobsub /usr/local/bin
cp vobsub2pgm /usr/local/bin

on installera par ailleur rar sous qu'on trouvera ici http://www.exit1.org/dvdrip/contrib/rarlnx271.sfx.bin on le place sous /usr/local/bin et on le renomme rar (en tant que root)

mv rarlnx271.sfx.bin rar

vous devez le rendre exécutable

chmod 755 rar


On revient sous dvdrip-0.98.10 et on tape

perl Makefile.PL

on doit simplemente obtenir ceci

Writing Makefile for Video::DVDRip

Tapez maintenant make puis en tant que root

make install

Bon si vous obtenez un segmentation fault au lancement de dvdrip, rajoutez dans votre fichier .bashrc

LC_ALL=C

export LC_ALL

Ouvrez un nouveau shell et relancez dvdrip

[Retour haut de la page ]

Utilisation

Il suffit de taper dvdrip pour le lancer, voici quelques screenshots pour copier un DVD en DivX.

 
On doit passer d'abord par la configuration La fenêtre de préférence Editions->Préférences vous devez indiquer au niveau de l'onglet Basic settings, comment accéder à votre lecteur DVD et où seront vos répertoires de travail.
Dans l'onglet Commandes vous avez les commandes pour lire les vidéos (par défaut mplayer et xine) ainsi que pour la compression. 
Onglet Options du cluster, si vous voulez faire marcher dvd::rip sur plusieurs machines.
Onglet Options diverses, options diverses dont le codec par défaut.
En bas de la fenêtre vous avez un bouton Vérifier tout  pour vérifier que les paramètres sont OK.
Quand tout est bon on clique sur OK.
Tout cela est sauvegardé dans un fichier .dvdriprc et un répertoire .dvdrip placés dans la homedirectory.


A présent créer un nouveau projet .
 
Dans la barre de menu, choissisez Fichier->Nouveau projet. Nommez votre projet et suivant les chemins définis par défaut les répertoires de travail vont se remplir automatiquement. Cliquez maintenant sur Créer le projet, indiquer l'endroit où vous allez positionner le fichier projet .rip.

Vous pouvez faire une conversion à la volée à partir de votre DVD dans le lecteur. Personnellement je préfère faire une copie complète en local du DVD, c'est plus rapide.
Attention pour monter un DVD vous pouvez avoir une erreur de file system non reconnu (wrong fs)  la commande à taper manuellement

mount -t iso9660 /dev/dvd /mnt/cdrom2

A partir de /mnt/cdrom2 vous pouvez maintenant copier le contenu du disque dans un (gros) coin du disque (/roger/dvd chez moi).
Pour que dvd::rip travaille ensuite sur la copie locale, démonter le disque (umount) et enlever le DVD.
 
On passe à l'onglet Extraction. Cliquez sur le bouton Lire la table des matières du DVD, on obtient la liste des chapitres du DVD. Sélectionnez celui (ou ceux) que vous voulez récupérer. N'oubliez pas de choisir la bonne langue (Choisissez une piste audio...) et éventuellement le bon angle de prise de vue.

Cliquez maintenant sur Extraire les titres ou chapitres sélectionnés
 
Onglet Découpage & Zoom. A présent choisissez une taille pour votre vidéo, plus elle sera petite et moins elle prendra de taille bien évidemment. Vous avez des valeurs préféfinis au niveau de Réglages prédéfinies cela me parait un bon choix pour commencer. Choisissez ce que vous voulez et tapez Appliquer ce réglage prédéfini.

L'onglet Sous-titres permet de choisir un sous titre. Choisissez le avec la liste déroulante Sélectionner le sous-titre, puis le bouton Capture vous donne une idée du sous titre.
Vous avez deux possibilités incorporer un sous titre (unique) dans la vidéo, ou créer un fichier sous titre qui pourra être appelé par mplayer par exemple.
Dans le premier cas cochez la case Activer ce sous-titre dans le film, vous pouvez laisser les autres options par défaut. Le sous titre se retrouvera automatiquement dans la vidéo généré.
Dans le second cas, cliquez sur le bouton Créer Dans le répertoire où vous allez retrouver votre vidéo, vous trouverez un fichier sous titre (.sub), avec mplayer la syntaxe sera la suivante

mplayer monfichier.ogm --vobsub monfichier.sub
 
Onglet Encoder pour définir les paramètres de compression et le codec à utiliser. J'ai choisi xvid4 mais vous pouvez prendre VCD ou SVCD par exemple.
Au niveau de Par taille cible, vous pouvez imposer que le fichier à obtenir tienne sur un ou deux CD. Vous pouvez également définir la taille du fichier à partir du bitrate (onglet Manuel).
N'oubliez pas de bien choisir le bon canal son au niveau de Choisissez une piste.
Cliquer maintenant sur Encoder pour lancer l'encodage.
 
Dans la fenêtre précédente, en cliquant sur Configurer les filtres & aperçu... vous pouvez activer un filtre. Exemple avec la copie d'écran à gauche.

Si vous voulez utiliser un conteneur de type ogm, au niveau du champ Format du conteneur, choisissez OGG. Vous pouvez ensuite le codec audio vorbis au lieu de mp3.
Attention il faudra que les ogmtools aient été installés auparavant (page conteneur). Une recompilation de dvd::rip n'est pas nécessaire.

L'onglet Journal contient les informations de log.
[Retour haut de la page ]

Le mode cluster

Dans la configuration cluster, vous avez une machine maître (serveur) sur laquelle se trouve le répertoire de travail, et sur laquelle tournera le daemon cluster pour dvdrip. Les machines clientes devront avoir également dvdrip fonctionnel mais être également installé avec un daemon SSH (voir une configuration type dans la page connexion sécurisée). L'utilisateur de la machine maître devra pouvoir se connecter par SSH sur les machines clientes. Par ailleurs le répertoire de travail de la machine maître doit être monté par NFS sur les machines clientes.
Lors de l'utilisation de dvdrip en mode cluster, les machines clientes doivent être évidemment allumées, mais il ne sera pas nécessaire de se loguer, tout se fera de la machine maître.
Sur la machine maître vous devez d'abord lancer dvdrip-master (éventuellement dvdrip-master 2 pour avoir des traces supplémentaires). Toutes les autres manips décrites ci-après se font sur la machine maître.


Lancer dvdrip, puis Edition->Préférences. Vous pouvez éventuellement lui indiquer de lancer le daemon cluster dvdrip sur une autre machine, dans ce cas spécifiez le. Laissez le port TCP par défaut.
Dans la configuration à gauche, le daemon tourne sur la machine maître.

Maintenant Cluster->Panneau de contrôle... on va rajouter les machines clientes en cliquant sur Add node

On commence en rajoutant la machine maître, on doit saisir:
- le nom de la machine
- le chemin du répertoire de travail
- on lui indique le daemon cluster tourne sur cette machine
- le répertoire de travail est accessible de la machine
- on laisse vide les champs SSH, car on est sur la machine maître

Vous pouvez tester la configuration en cliquant sur Tester les réglages, vous ne devriez pas obtenir de Not OK.

On rajoute maintenant une machine cliente, on précise
- le nom de la machine
- le chemin du répertoire de travail monté sur la machine cliente
- on lui indique que le daemon cluster ne tourne pas sur la machine cliente
- on lui indique que le répertoire de travail est bien accessible de la machine cliente
- pour les options SSH, il suffit de mettre le nom de l'utilisateur de la machine cliente que la machine maître devra utiliser pour se connecter

Vous pouvez tester la configuration en cliquant sur OK, une connexion de la machine maître vers la machine cliente va être tentée, pour la première fois cela donne cela

The authenticity of host 'tosh (192.168.1.10)' can't be established.
DSA key fingerprint is be:d9:ee:a3:12:12:a5:89:f9:cb:4f:8e:c2:58:17:ac.
Are you sure you want to continue connecting (yes/no)?
Enter passphrase for key '/export/home/olivier/.ssh/id_dsa'

Au final vous ne devriez pas obtenir de Not OK.

Pour le reste c'est assez classique, vous ouvrez ou créez un projet, et quand vous arrivez à la fenêtre d'encodage, il suffit de cliquer sur Ajouter au cluster (en bas à droite).

La fenêtre suivante s'affiche, je lui ai indiqué de supprimer les fichiers temporaires. Vous retrouvez cette fenêtre au niveau de la fenêtre Panneau de contrôle du cluster en cliquant sur Editer le projet.

Dans le Panneau de contrôle du cluster  sélectionnez votre projet et pour lancer le calcul cliquez sur Démarrer le projet. Si les noeuds enregistrés ne sont pas en idle, sélectionnez les et cliquez sur Démarrer le noeud.
Maintenant le problème est qu'à chaque échange de fichiers entre le maître et les clients, SSH va vous demander le passphrase, c'est assez lourd. Pour automatiser tout cela, il faut configurer SSH en utilisant l'agent.

Voilà c'est fini !


[Retour page d'accueil ]
[ Retour haut de la page ]