Techniques de codage DVD --> Mpeg4 (venez tester tuxrip099rc1 !)

Techniques de codage DVD --> Mpeg4 (venez tester tuxrip099rc1 !) - Multimédia - Linux et OS Alternatifs

Marsh Posté le 11-12-2002 à 21:53:51    

-------------------------------------------------------------------------------------------------------------------
Zeb et Jotenakis ont décidé de s'associer pour créer ce nouveau topic sur l'encodage video sous Linux. L'ancien (dispo ICI) étant devenu trop lourd pour attirer de nouvelles personnes, nous avons décidé de le faire fermer. Notre ambition pour ce nouveau topic est d'en faire un lieu de discussions, de tests, de rapports sur tout ce qui touche à l'encodage sous les systemes unix. Nous nous efforcerons de mettre à jour le 1er post le plus souvent possible pour refleter l'état des connaissances de la communauté OSA sur ce sujet passionnant.
Merci d'avance à tout ceux qui participeront.
-------------------------------------------------------------------------------------------------------------------
 
 
 
A. NEWS / SUR LE GRILL
 
14/05/2005 Sortie de tuxrip 099beta6. http://tuxrip.free.fr pour nouveautés/downloads...
 
27/07/2004 Sortie de tuxrip 098. http://tuxrip.free.fr pour nouveautés/downloads...
 
30/03/2004 Sortie de tuxrip 097. http://tuxrip.free.fr pour nouveautés/downloads...
 
28/03/2004 Sortie de tuxrip 096 :
0.96 :  
    * test supermount lors du demontage du dvd en mode --clone.  
    * desentrelacement pris en compte en mode --xvidtrans.  
    * compatibilité des modes --sous-titre et --source.  
    * petite modif dans le test de présence du DVD dans le lecteur.  
0.95 :  
    * sous-titres mixés dans la container matroska, compressés automatiquement (zlib).  
    * mode --xvid4trans pour interagir avec le plugin transperl écrit par CREX.  
    * test Display Aspect Ratio (lors de conflit de detection mplayer/tcprobe, un choix est demandé).  
    * chapitrage dans le container matroska.  
    * bugfix choix résolution après test compressibilité.  
 
29/10/2003 sortie de tuxrip090. http://tuxrip.free.fr pour nouveautés/downloads...
 
22/10/2003 sortie de tuxrip090rc1 (necessite mplayer 1.0pre2 ou CVS récent)
 
Changelog :  
->encodage video avec "-mc 0 -noskip -skiplimit 0"
->nouveau resize. (-sws 9)
->nouveau preset extreme. ( vcodec=mpeg4 : vqmin=2 : vqmax=20 : mbd=2 : mv0 : trell : cbp : vmax_b_frames=1 : v4mv : vb_strategy=0 : vlelim=0 : vcelim=7 : cmp=2 : subcmp=2 : precmp=2 : predia=1 : dia=1 : vme=4 )  
->nouveau desentrelacement. (fd)
->support container matroska ( www.matroska.org ).
->sous-titres vobsub. (ne supporte pas l'encodage multi-cd pour le moment).
->support espagnol.
->seuil bandes noires.
->bugfixes divers...
 
  !!! RELANCER TUXRIP EN MODE --config (nouvelles options) !!!
 
27/08/2003 sortie de tuxrip085. http://tuxrip.free.fr pour nouveautés/downloads...
 
16/08/2003 site http://tuxrip.free.fr en anglais.
 
24/06/2003 sortie de tuxrip084. http://tuxrip.free.fr pour nouveautés/downloads...
 
26/05/2003 sortie de tuxrip081. http://tuxrip.free.fr pour nouveautés/downloads...
 
10/05/2003 sortie de tuxrip080. http://tuxrip.free.fr pour nouveautés/downloads...
 
22/04/2003 Tuxrip076. http://tuxrip.free.fr pour nouveautés/downloads...
 
16/04/2003 Tuxrip075. http://tuxrip.free.fr pour nouveautés/downloads...
 
11/02/2003 Tuxrip 0.71  :whistle:  
 
Petite MAJ :  
* 1 bug corrigé à la fin du cc,
* test la présence du DVD avant de ripper,
* affiche si on ne rippe qu'un chapitre (mode test).
 
 
10/02/2003 : SORTIE DU SCRIPT tuxrip070.
--->changelog
* Toutes les variables saisies au clavier sont vérifiées afin d'éviter les erreurs de frappe (merci philou_a7 ;-),
* Suppression de l'affichage des messages de libdvdcss et libdvdread (c'est plus propre...),
* Suppression des messages de mencoder lors de l'encodage, il ne subsiste que la progression,
* Test de présence des dépendances de tuxrip (merci philou_a7 ;-),
* Vérification du cropping sur une image fixe (c'est plus simple et ça rend la main au script),
* Amélioration du mode test : "--test n" permet de ne ripper que le chapitre n (si n est manquant alors n=1, si n>nchapmax alors n=nchapmax),
* Changement des options par défaut de xvid pour être conforme à la syntaxe mplayer>=0.9rc3,
* Encodage de la 1ère passe à quantizer fixé (q=2) pour améliorer la qualité,
* Test de la compressibilité du film (permet d'affiner le choix de la résolution) accessible via l'option "--test-comp",
* Suppression des dépendances "title_info" et "dvd::rip",
* Calcul et affichage du critêre de qualité à l'issue de la 1ère passe,
* Sélection du titre le plus long comme choix par défaut,
* Sélection automatique de la piste audio lorsqu'une seule est présente :),
* Affichage du log d'encodage vidéo lors de la reprise, suite à un encodage nocturne (mode "--resume" ),
* Le rip se fait en 1 seul gros fichier vob (ça permet à mencoder d'afficher une progression en %), pas de problème sur les systèmes de fichier linux,
* Simplifications de code.  
 
23/01/2003 : Test des options libavcodec en page 8 de ce topic.
 
18/01/2003 : A lire, l'excellent test fait par "rguyom" : http://rguyom.chez.tiscali.fr/libavcodec_tests.html
 
12/01/2003 : Mise-à-jour du guide sur l'extraction des sous-titres, l'utilisation de la reconnaissance optique et leur mixage dans le fichier ogm.
 
11/01/2003 : Mise-à-jour du guide par rapport à la nouvelle version 0.67. Ajout d'une explication sur le CQ dans la FAQ.
 
10/01/2003 : tuxrip a une nouvelle maison : http://tuxrip.free.fr
             Mais toujours pas de page web (connait pas et n'ai pas le temps de m'y mettre. :( )
 
06/01/2003 : Bonne année à tout le monde.
             SORTIE DU SCRIPT tuxrip067.
             Changement :  
                          * correction dans le calcul du ratio (optimisation de la déformation)
                          * support de l'encodage des génériques (nécéssite la compilation de mplayer avec support de l'OSD)
                          * ajout d'une prévisualisation avant encodage. (il faut relancer tuxrip en mode --config)
                          * support des DVD possédant des bandes son en MPEG (géré automatiquement).
 
17/12/2002 : Nouveaux liens vers d'autres outils d'encodage DVD.
                Une nouvelle option de mencoder va permettre l'encodage du générique à bas débit avec libavcodec, et sera ajoutée à la prochaine version du script.
 
11/12/2002 : SORTIE DU SCRIPT tuxrip060.
 
06/12/2002 : Tutorial avidemux DVD->Xvid par mean. ICI
 
 
B. PROJET DVD -> MPEG4 AUTOMATIQUE : TUXRIP
 
Tuxrip est un script bash, sous Linux, permettant d'extraire et d'encoder un DVD au format mpeg4 de manière automatique et nécessitant le minimum de connaissances techniques.
 

   1) Installation
 
      a) manuelle

Le script nécessite :
 
- libdvdcss
http://www.videolan.org/libdvdcss/
 
- libogg/libvorbis
http://www.xiph.org/ogg/vorbis/
Miroirs sur : http://www.vorbis.com/download.psp
 
- libdvdread
http://www.dtek.chalmers.se/groups/dvd/downloads.shtml
Note : c'est l'utilitaire title_info qui est nécessaire.
Si vous compilez libdvdread vous-même, cet utilitaire sera compilé avec ./configure et make. Cependant, contrairement aux librairies, il ne sera pas installé par "make install". Le binaire compilé doit être copié de son répertoire source dans /usr/local/bin ou /usr/bin. Vous devez le lancer une seule fois en su root pour créer un sous-répertoire caché nécessaire à son fonctionnement.
 
- transcode
http://www.theorie.physik.uni-goet [...] transcode/
 
- ogmtools
http://www.bunkus.org/videotools/ogmtools/
 
- ffmpeg/libavcodec
ffmpeg est un projet multimedia libre développé pour Linux (mais qui peut être compilé sur d'autres sytèmes, comme Windows), http://ffmpeg.sourceforge.net/
Ce qui nous intéresse est le codec libavc qui fait partie de ce projet, probablement l'un des meilleurs codecs (sinon le meilleur) mpeg4.
Taper en console :

cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg login  
cvs -z3 -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg co ffmpeg


Vous récupérerez ainsi le CVS de ffmpeg. Dans le répertoire ffmpeg, c'est le sous-répertoire libavcodec qui sera copié dans le répertoire sources de MPlayer.
 
- xvid (optionnel)
XviD est un autre codec mpeg4 libre.
Vous trouverez les sources sur : http://www.xvid.org/
La compilation manuelle est un peu plus délicate que pour libavcodec. Les sources ne sont pas copiées dans le répertoire de mplayer, mais la librairie xvid doit être compilée et installée dans /usr/lib ou /ur/local/lib. De plus, un des fichiers d'en-tête (headers) à utiliser est celui de DivX4.
La marche à suivre est la suivante :
  1. récupérer xvidcore-0.9.0.tar.bz2 sur http://www.xvid.org
  2. cd xvidcore/build/generic
  3. Editez le Makefile pour votre architecture (sous Linux/ix86  c'est Makefile.linuxx86) pour l'adapter à vos besoins
  4. make -f Makefile.linuxx86
  5. su
  6. make -f Makefile.linuxx86 install
  7. Copiez les fichiers d'entête divx4.h et xvid.h depuis xvidcore/src/ dans /usr/local/include/
  8. Prenez encore2.h et decore.h depuis le paquetage DivX4Linux, et copiez-les dans /usr/local/include/
  9. Recompilez MPlayer avec --with-xvidcore=/usr/local/lib/libxvidcore.a (voir paragraphe suivant)
 
- mplayer
http://www.mplayerhq.hu
 
Instructions de compilation
   - il doit être compilé avec support de libavcodec
   - il doit être compilé en langue anglaise (pas de --language=fr)
 
Choix des sources
Deux solutions pour les sources
   - la plus simple est de prendre une pre-release (la dernière est la RC2), qui est fournie avec les sources de libavcodec.
   - Pour les plus expérimentés, prenez le CVS. Dans ce dernier cas, les sources de libavcodec ne sont pas incluses, vous devez aussi prendre le CVS de libavcodec. Téléchargez le CVS de ffmpeg (http://ffmpeg.sourceforge.net/), et copiez le répertoire libavcodec (situé dans le répertoire ffmpeg) dans le répertoire source de MPlayer.
 
Décompressez MPlayer dans /usr/local/src (pour le CVS, copiez le répertoire libavcodec du CVS de ffmpeg dans le répertoire source, en écrasant le répertoire existant.)
 
Support de l'OSD (on-screen display)
   - depuis la version 0.65 de tuxrip, il doit être compilé avec le support de l'OSD, pour pouvoir lire le chronomètre pour déterminer la position du générique. Il existe deux méthodes, suivant que vous utilisez freetype (la bibliothèque permettant l'affichage de polices TrueType sous X) ou non. La méthode 1, utilisant freetype et les polices TrueType est la plus simple, et conviendra à la plupart des systèmes relativement récents utilisant X.
 
Méthode 1 : avec freetype>=2.0.9 et des polices truetype (ttf) installées.
 
  1) Compiler MPlayer avec
  ./configure --enable-freetype
--->  Vérifier que mplayer indique au minimum: Enabled optional drivers: Codecs: libavcodec libvorbis
  make && make install
 
  2) Créer un lien symbolique appelé subfont.ttf vers une fonte ttf installée
  - soit en global dans /usr/local/share/mplayer (en root)
exemple :
cd /usr/local/share/mplayer
ln -s /usr/X11R6/lib/X11/fonts/drakfont/ttf/times.ttf ./subfont.ttf
 
  - soit en local dans $HOME/.mplayer (en user)
exemple :
cd $HOME/.mplayer
ln -s /usr/X11R6/lib/X11/fonts/drakfont/ttf/times.ttf ./subfont.ttf
 
  3) Utilisation
  - directement
  mplayer -osdlevel 2
 
  - lors de la lecture
  appuyer sur "o" pour changer le mode OSD (rien, symboles, symboles et chronomètre)
 
Méthode 2 : sans freetype et/ou sans fontes ttf
Voir la doc de mplayer points 1.4.2 et 1.4.3
 
  1) Compiler MPlayer avec
  ./configure --enable-menu
--->  Vérifier que mplayer indique au minimum: Enabled optional drivers: Codecs: libavcodec libvorbis
  make && make install
 
  2) Il faut installer des fontes non ttf (celles-ci sont nécessaires pour les sous-titres également)
  Des polices sont disponibles sur le site de mplayer : ftp://ftp.mplayerhq.hu/MPlayer/releases/fonts/
  Les installer dans /usr/local/share/mplayer/font/ (en root)
  Exemple :
  copier le fichier mp-arial-iso-8859-1.zip dans /usr/local/share/mplayer/font
 
  3) Les décompresser (en root) :
  cd /usr/local/share/mplayer/font
  unzip ./mp-arial-iso-8859-1.zip
 
  Note : la décompression n'est PAS nécessaire pour les sous-titres, mais elle l'est pour l'osd.
 
  4) Copier le fichier menu.conf du répertoire /etc/ contenu dans les sources de MPlayer en global (dans /etc) ou en local (dans $HOME/.mplayer)
  Exemple :
  cp /usr/local/src/MPlayer-xxx/etc/menu.conf $HOME/.mplayer/
 
  5) Créer un lien symbolique dans $HOME/.mplayer vers l'un des répertoires contenant des polices.
  Exemple :
  ln -s /usr/local/share/mplayer/font/iso-8859-1/arial-24 font
 
  6) Utilisation
  Identique à la méthode 1
 
Support du codec xvid (optionnel)
     - si vous voulez également le support du codec xvid : vous devez configurer avec l'option
./configure --with-xvidcore=/usr/local/lib/libxvidcore.a (si libxvidcore.a a été installé dans /usr/local/bin)
--->  Vérifier que mplayer indique au minimum: Enabled optional drivers: Codecs: libavcodec libvorbis xvid
 
Par conséquent, suivant que vous utiliserez la méthode 1 ou la méthode 2 pour activer l'OSD, vous taperez :
./configure --with-xvidcore=/usr/local/lib/libxvidcore.a --enable-freetype
ou
./configure --with-xvidcore=/usr/local/lib/libxvidcore.a --enable-menu
 

      b) avec des paquets

Beaucoup de distributions proposent des paquets avec tous ces utilitaires. N'oubliez pas que certains de ces utilitaires ne sont pas inclus dans les distributions commerciales à cause du DMCA aux Etats-Unis (comme libdvdcss). Cependant, ils sont souvent disponibles séparément.
 
Note : pour mplayer, il est conseillé de compiler soi-même, si vous avez des problèmes avec les paquets déjà compilés. De plus, compiler soi-même permet d'avoir un logiciel plus performant.
 
Mandrake : ajoutez les sources des paquets rpm contrib et PLF (http://plf.zarb.org) si nécessaire, et utilisez urpmi pour installer:
libogg0
libogg0-devel
libvorbis0
libvorbis0-devel
transcode
libdvdcss2
libdvdread2
libdvdread-utils
ogmtools
Video-DVDRip
mplayer (mais voir la note ci-dessus).
 
Vous pouvez ajouter, si vous voulez le support du xvid (encore expérimental) :
xvid
xvid-devel
xvid-divx-devel
 
Red Hat : paquets .rpm sur http://freshrpms.net
 
Debian : paquets .deb sur http://marillat.free.fr
 
Note : il ne s'agit pas de faire une guéguerre des distributions. Si ces distributions ont ici une marche à suivre détaillée, en particulier la Mandrake, c'est parce que l'auteur de ce manuel en a l'expérience. N'hésitez pas à nous faire partager la marche à suivre pour d'autres distributions.
 
 
  2) Mode d'emploi de tuxrip
 
Créez un répertoire de travail où vous avez des droits en écriture.
Ex :md $HOME/space
cd $HOME/space
 
Copier le script tuxripxxx à cet endroit. Rendez-le exécutable : chmod +x ./tuxripxxx
 
     a) configuration
 
La première fois, éxécutez-le en mode configuration : ./tuxripxxx --config
 

-->Mode config : Le fichier de préférence va être généré...
-------> Répertoire de travail [défaut : /space] ? >


 
Entrez le chemin absolu du répertoire de travail, par exemple : /home/user/space
N'utilisez pas le . pour indiquer le chemin, ça ne marche pas.
Ce répertoire contiendra un répertoire par projet, créé par le script.
 

-------> Device du DVD [défaut : /dev/dvd] ? >


 
Entrez le device correspondant à votre lecteur de DVD.
 
 

-------> Décalage initial A/V pour la synchro en ms [défaut : 0] ? >


 
Si vous connaissez déjà le décalage entre l'audio et la video, grâce à des expériences précédentes, vous pouvez l'entrer ici. Sinon, entrez 0.
 

-------> Options d'encodage video libavcodec [défaut : vcodec=mpeg4:vqmin=2:vqmax=20:vmax_b_frames=0:vhq:keyint=250:vme=4:v4mv] ? >


 
Ce sont les parametres d'encodage de libavcodec, le codec vidéo utilisé par défaut par le script.
 

-------> Options d'encodage video xvid [défaut : quality=6:min_key_interval=6:max_key_interval=250:keyframe_boost=30] ? >


 
Ce sont les options d'encodage du codec xvid. Ce codec est utilisé a la place de libavcodec si le script est lancé avec l'option --xvid.
 

-------> Gain maximum utilisé pour la normalisation audio [défaut : 3] ? >


 
Lors de l'extraction de la piste audio, tuxrip amplifie et normalise le son. Le taux d'amplification est déterminé automatiquement. Pour éviter une saturation pour un film dont le son est particulièrement bas, il est conseillé de limiter le taux d'amplification. 3 est la valeur par défaut.
 

-------> Drivers video (x11, xv, sdl) [défaut : xv] ? >


 
Indiquez le driver video que vous utilisez pour l'affichage de mplayer.
 

-------> Drivers audio (oss, alsa9, sdl) [défaut : oss] ? >


 
Indiquez le driver audio.
 

-------> Chaine SCSI du graveur [défaut : 0,3,0] ? >
 
-------> Vitesse de gravure [défaut : 12] ? >


 
Ces deux paramètres permettront d'automatiser le lancement de la gravure du fichier encodé. Cette option est encore expérimentale et ne sera pas détaillée.
 

-------> Visualisateur d'images (gqview, eog, kview, imview, display) [défaut : gqview] ? >


 
Indiquez le visualiseur d'image que vous utilisez (par ex. ImageMagick correspond à display). Il permet d'afficher une image  du film reformaté avant encodage. Le visualiseur est facultatif.
 
Vous pouvez relancer le script en mode --config à tout moment, pour modifier vos valeurs par défaut (comme le décalage audio/video) ou les options d'encodage. Ce valeurs sont stockées dans le fichier $HOME/.tuxriprc qui peut également être édité à la main, mais prenez garde à respecter son format.
 
     b) utilisation
 
Exécutez le script : ./tuxripxxx [options]
Les options sont détaillées dans la partie 3.
 

-------> Nom du projet [défaut : DVD] ?


 
A votre guise, mais sans espaces. Le script créera un répertoire du même nom dans le répertoire de travail.
 

Insérez le DVD dans le périphérique /dev/dvd et appuyez sur ENTREE


 
Insérez le DVD, appuyez sur ENTREE, et la liste des titres s'affiche.
 

+++++++++++++++SCAN DU DVD++++++++++++++++++++++++++++++++++++
 
libdvdread: Using libdvdcss version 1.2.3 for DVD access
 
Title 1:
        Title has 24 chapters and 1 angles
Title 2:
 
        Title has 1 chapters and 1 angles
Title 3:
        Title has 1 chapters and 1 angles
Title 4:
        Title has 1 chapters and 1 angles
Title 5:
        Title has 1 chapters and 1 angles
 
 
-------> Quel titre à ripper [défaut : 1] ?


 
Indiquez le numéro du titre à copier et décrypter sur le disque dur.
Dans le cas d'un DVD multi-angles, le script demande quel angle considérer.
 

0 audio format: ac3 (5.1) language: en
 
 
-------> Quel piste audio à ripper [défaut : 1] ?


 
Indiquez le numéro de la piste audio à utiliser.
 

>>>> Notez l'instant où commence le générique de fin puis quittez en pressant ECHAP <<<<


 
tuxrip permet l'encodage du générique final en basse qualité (environ au dixième du débit utilisé pour le film), afin de réserver davantage de bits pour le film en lui-même. MPlayer est lancé automatiquement, en indiquant en haut à gauche de la fenêtre du film la durée en heures:minutes:secondes. Notez l'instant où commence le générique, puis pressez ECHAP pour arrêter MPlayer.
Note : MPlayer doit avoir été compilé avec le support de l'OSD, voir la partie installation de ce manuel.
Note 2 : la compression accrue du générique n'est disponible qu'avec le codec libavc (utilisé par défaut). Cette fonction n'est pour le moment pas disponible avec l'encodage xvid.  
 

-------> Début du générique de fin [hh:mm:ss] ? >


 
Indiquez la valeur déterminée au format hh:mm:ss.
 

+++++++++++++++RIPPING DU DVD+++++++++++++++++++++++++++++++++++
 
libdvdread: Using libdvdcss version 1.2.3 for DVD access
 
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 0x00005970
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_01_0.VOB at 0x00005c0b
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_01_1.VOB at 0x0000b1aa
libdvdread: Elapsed time 1
libdvdread: Get key for /VIDEO_TS/VTS_02_1.VOB at 0x00298069
libdvdread: Elapsed time 0
libdvdread: Found 2 VTS's
libdvdread: Elapsed time 1


 
Le titre sélectionné est décrypté et copié sur le disque dur, en plusieurs fichiers .vob de 1Go.
 

+++++++++++++++ENCODAGE AUDIO+++++++++++++++++++++++++++++++++++
 
 
Normalisation : 1.513
 
-------> Qualité d'encodage audio ogg/vorbis [défaut : 1,0] ? >


 
L'encodage du son est effectué au format vorbis, 1 est une très bonne valeur par défaut. La normalisation du son est également effectuée de façon automatique,la valeur du gain maxi ayant été calculé lors du rip.
Note : vous pouvez entrer une valeur décimale. Cependant, utilisez le séparateur décimal correspondant à votre locale (une virgule pour le français).
 

+++++++++++++++DETECTION DU CROPPING++++++++++++++++++++++++++++
 
 
Paramètres de crop détectés:  698:550:12:12
Haut   : 12 pixels
Bas    : 14 pixels
Droite : 10 pixels
Gauche : 12 pixels
 
 
>>>> Vérifiez le cropping, à l'aide du rectangle blanc <<<<


 
Le cropping consiste à supprimer les bandes noires avant encodage. Tapez ENTREE et vérifiez que le rectangle blanc encadre l'image du film, sans intégrer de bandes noires.
Si le résultat n'est pas satisfaisant, attendez cinq secondes, la fenêtre du film se referme et une nouvelle détection est proposée à un autre endroit du film. Pour les plus pressés qui ne veulent pas attendre les cinq secondes, appuyez sur ECHAP pour fermer la fenêtre vidéo. Vous pouvez alors recommencer la détection, en répondant 'n' à la question suivante :
 

-------> C'est bon (o/n) [défaut : n] ?


 
Si vous êtes satisfait par la détection, répondez 'o'.
 

++++++DETERMINATION DES PARAMETRES D'ENCODAGE VIDEO++++++++++++++++++++
 
Format : 16/9
Ratio détecté :  1.804927
Durée détectée :  6305.92 sec
-------> 1) 1CD 74 min
-------> 2) 1CD 80 min
-------> 3) 2CD 74 min
-------> 4) 2CD 80 min
-------> 5) Autres
 Votre Choix [défaut : 2] ? >


 
Choisissez la taille de votre support. Le choix 5 vous laisse toute liberté quant à la taille du fichier final.
 

Taille de la bande son compressée :  58.884150 Mo
Taille dispo pour la video :  639.065850 Mo
Bitrate video :  850 kbps
 
-------> Critère de qualité visé [défaut : 0.22] ? >


 
Le critère qualité visé correspond au nombres de bits par pixel et par frame utilisés pour encoder l'image. Ce critère qualité permet au script de déterminer la résolution optimale du fichier vidéo final. Typiquement, il doit être compris entre 0.2 et 0.3. Pour 1 CD, choisissez plutôt 0.20-0.22, pour 2 CD, choisissez 0.27.
 

Résolution calculée :  512:288
 
Ratio d'encodage :  1.777 (déformation -1.00%)
Critêre de Qualité effectif :  .230
 
 >>>> Voici le format de votre vidéo telle qu'elle sera encodée <<<<
 
-------> Satisfait (o/n) [défaut : n] ? >


 
Le script indique la résolution déterminée correpondant au critère qualité visé. Note: la déformation est normale. Pour être lu correctement, notamment sous Windows, la longueur et la largeur doivent être multiple de 16 pixels. L'arrondi effectué introduit souvent une déformation légère mais négligeable. La valeur est donnée à titre indicatif, ainsi que le critère qualité réel dans cette resolution.
Si vous avez configuré un afficheur, vous verrez dans une fenêtre une image fixe du film après cropping et sous sa résolution finale.
Si vous êtes satisfait, tapez "o", puis ENTREE et l'encodage est effectué de façon automatique. C'est un encodage en 2 passes : un premier encodage permet au codec de déterminer quelles scènes sont plutôt statiques et lesquelles sont dynamiques. La seconde passe permet d'encoder les scènes statiques avec peu de bits et les scènes dynamiques avec d'avantage de bits, afin d'obtenir une bonne qualité visuelle tout le long du film, tout en préservant la taille finale désirée.
 

+++++++++++++++MIXAGE A/V+++++++++++++++++++++++++++++++++++++++
 
0
Using AVI demultiplexer for /home/zeb/space/entrap3/video/entrap3sans-son.avi. Opening file. This may take some time depending on the file's size.
+-> Using video output module for video stream.
Using OGG/OGM demultiplexer for /home/zeb/space/entrap3/audio/son.ogg.
OGG/OGM demultiplexer (/home/zeb/space/entrap3/audio/son.ogg): using Vorbis audio output module for stream 1.
progress: 3387/3387 frames (100%)
 
 
-------> Appuyez sur ENTREE, le film va être lu. Vérifiez la synchronisation puis quittez en pressant ECHAP


 
La piste son est mixée avec l'image, mais peut-être décalée. Le but de cette opération est de resynchroniser le son si nécessaire.
Tapez "-" ou "+" si le son est en retard ou en avance, jusqu'à obtenir un son synchronisé. Tapez "0" si c'est bon, ou si vous souhaitez arreter et reprendre plus tard (cf option --resume)
 

+++++++++++++++INFORMATIONS+++++++++++++++++++++++++++++++++++++
 
Taille du film encodé :  704.236214 Mo
Taille visée :  705 Mo


 
Voilà ! Le film est dans le sous-répertoire video du répertoire projet, et porte le nom projet.ogm
 
 
     3) Options de tuxrip
 
tuxrip peut être lancé avec les options suivantes :
 
--resume
Cette option permet de reprendre ou continuer l'encodage d'un projet en cours. Indiquez le nom du projet déjà commencé et un menu vous permettra de reprendre à l'étape de votre choix.
 
--config
Cette option permet de générer dans le répertoire $HOME le fichier de configuration de tuxrip, .tuxriprc, qui contient les options globales utilisées par le script : les chemins des répertoires de travail et du lecteur de DVD, les paramètres d'encodage et de synchro du son, ainsi que les drivers vidéos et audios utilisés par mplayer.
 
--verif-prefs
Affiche le contenu du fichier de préférences. Cela permet de vérifier les paramètres par défaut.
 
--xvid
Par défaut, tuxrip effectue l'encodage mpeg4 en utilisant le codec vidéo libavcodec (ffmpeg). Avec l'option --xvid, il utilise le codec xvid à la place, un autre codec mpeg4 libre (voir FAQ). Le fichier .tuxriprc contient les options utilisées par xvid.
 
--desentrelace
Permet de forcer le désentrelacement. Cette option est nécessaire dans le cas d'une source PAL entrelacée. En revanche, elle est inutile pour les DVD NTSC, qui sont automatiquement détectés et désentrelacés.
 
--test
Cette option permet d'encoder uniquement le premier chapitre du titre sélectionné. Très utile pour effectuer un test, avant d'encoder un film entier, ou pour "se faire la main".
 
--extinction
Eteint la machine à la fin de l'encodage vidéo. Comme la synchro audio/vidéo nécessite la présence de l'utilisateur, celui-ci peut être effectué ensuite en relançant tuxrip (sans option). tuxrip reprend alors automatiquement le test de synchro du projet en cours.
 
L'arrêt de la machine est réalisé avec la commande shutdown -h now, et peut nécessiter des droits. Cette commande est lancée dans le script avec sudo donc il faut un /etc/sudoers du genre (pour un utilisateur toto):
 

# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.
#
 
# Host alias specification
 
# User alias specification
 
# Cmnd alias specification
Cmnd_Alias    STOP=/sbin/shutdown -h now
 
# Defaults specification
 
# User privilege specification
root    ALL=(ALL) ALL
 
toto ALL=NOPASSWD:STOP


 
--help
Affiche la liste des options disponibles.
 
Note : plusieurs options peuvent être utilisées en même temps. Par exemple : --test --xvid ou --resume --xvid (ce dernier étant pratique pour encoder 2 fois une video : 1 fois en lavc et 1 fois en xvid pour comparer). De la même façon, --test --xvid --desentrelace permet d'encoder le premier chapitre d'un titre, en xvid et en forçant le désentrelaçement.
 
 
     4) Options des codecs libavc et XviD
Lors de la création du fichier de configuration de tuxrip, vous pouvez indiquer les paramètres à utiliser par les codecs. Ceci est entièrement optionnel, car les codecs utilisent des valeurs par défaut, et celles-ci conviennent parfaitement à la plupart des encodages. Les "codeurs" expérimentés pourront cependant changer le fonctionnement interne des codecs.  
En attendant une description détaillée à venir, vous pouvez les consulter en tapant "man mplayer" en console, dans les parties :

-lavcopts <option1:option2:...> pour libavcodec
 
-xvidencopts <option1:option2:...> pour xvid


 
     5) FAQ
 
1) Et le mp3 ?
Il n'est pas supporté par ce script, et ne le sera probablement pas. Deux raisons :
- technique : le vorbis a une qualité très supérieure au mp3. L'essayer c'est l'adopter : le son est plus dynamique, plus net, avec moins de souffle. De plus, le taux de compression étant plus important, cela permet de réserver d'avantage de place pour la vidéo, donc l'image est meilleure.
- légal et éthique : vorbis est un format libre (sous licence LGPL), documenté et non breveté. Ce format restera libre et gratuit, définitivement. Au contraire, le mp3 est breveté, et les droits sont la propriété de Thomson et Fraunhoeffer. La lecture des mp3 est pour l'instant gratuite à titre gracieux, mais rien ne les empêcherait de le faire payer.
En conclusion, pourquoi utiliser un format propriétaire quand il existe un équivalent libre et largement meilleur ?
 
 
2a) Oui mais comment je fais si je veux lire un .ogm sous Windows ?
Aucun problème, il suffit d'installer le filtre direct show disponible ici : http://tobias.everwicked.com/oggds.htm (il y a un miroir sur http://www.doom9.org). Vous pouvez ensuite lire le fichier mpeg4 avec WMP ou tout autre lecteur multimedia (conseillé...)
 
2b) Et ce n'est pas un peu pénible de devoir installer un codec ?
Non, pourquoi ? C'était pénible d'avoir à installer un codec mpeg4 comme DivX ou Xvid ? Remarquez que vorbis est supporté nativement dans Winamp, ce n'est donc pas un inconnu sous Windows.
 
2c) Et le libavcodec sous Windows ? Il n'y a pas un codec particulier à installer ?
libavcodec est un codec mpeg4. Il peut être lu par tout lecteur supportant le mpeg4. L'installation d'un autre codec mpeg4 (comme XviD ou Divx) est suffisant. Vous pouvez même vous contenter d'installler des filtres de lecture et de postprocessing sous Windows comme ffdshow (http://cutka.szm.sk/ffdshow/). ffdshow sait lire tous les fichiers mpeg4 (div3/4/5, xvid, libavcodec...) Enfin, un site de référence (articles et forum) est http://www.doom9.org.
 
3) Qu'en-est il du XviD ?
Tuxrip encode par défaut en utilisant le codec libavc. XviD et libavcodec sont deux codecs mpeg4. Seulement l'image brute sans post-processing n'a pas la meme "saveur". Je suppose que certains diront que XviD est mieux, et que d'autres diront que libavc est mieux. C'est assez subjectif : un peu comme les appareils photo numériques où certains préfèrent les Canon aux Nikon car l'image est plus soft, processée différemment ou avec des couleurs equilibrées différemment. De plus, il y a plein de paramètres différents pour ces codecs, comme le réglage des quantitizers, la quantization mpeg ou h263. Donc c'est aussi très difficile de donner un comparatif sans donner precisement les paramètres d'encodage.
Mais objectivement, l'avantage technique de libavc est une image un poil plus detaillée. Le XviD a par contre un excellent processing des images à haut bitrate, un peu moins "blockies", mais qui donne un aspect moins net aux images statiques. En outre, mplayer inclut les commandes pour activer les filtres de post-processing de libavc (option pp) qui lissent les blocs et dont l'efficacité est + ou - paramétrable (il faut équilibrer entre floutage et lissage).
 
Tuxrip a une option --xvid permettant d'encoder en xvid, mais c'est encore expérimental.
 
4) Quid du DivX 5 ?
C'est comme le mp3, c'est un format propriétaire. Pourquoi utiliser un codec propriétaire et noyauté par un spyware (Gator) quand il existe des solutions libres de meilleure qualité : libavcodec et XviD.
 
5) Je possède des films en Divx3;), DivX4, DivX5, XviD, libavcodec. Faut-il installer un codec pour lire chacun d'entre eux ?
Non. Ne confondez pas codec et format. Tous ces différents codecs encodent avec des algorithmes différents, mais dans le même format : mpeg4. Si tous ces projets proposent leur propre décodeur, un seul d'entre eux est nécessaire, car l'algorithme de décodage est exactement le même : celui du mpeg4. Celui de libavcodec est suffisant, et c'est pour l'instant le meilleur décodeur. Si vous compilez mplayer avec le support de plusieurs codecs, il utilisera de toute façon le décodeur de ffmpeg (libavcodec) pour lire tous les fichiers mpeg4. Sous Windows, c'est pareil : le décodeur et les filtres ffdshow sont suffisants (voir FAQ 2c).
 
6) Qu'est ce que le facteur CQ ? Quelles sont les valeurs conseillées ?
Le CQ représente le nombre de bits par pixel et par frame. En gros, plus le CQ est élevé, moins on verra d'artefacts de compression. Cependant, la taille finale du film est déterminée par le support (1 ou 2 CDs en général), donc le nombre de bits est fini et il faut trouver un compromis entre compressibilité et qualité. Le CQ dépend à la fois du bitrate et de la résolution du film. Pour augmenter le CQ, on réduit en général la résolution du film, étant donné que le bitrate est fixé par la taille du support et la durée du film, qui sont incompressibles.
En-dessous de 0.18, l'image est en général très dégradée, car il n'y a pas assez de pixels pour encoder avec suffisamment de détail (en mpeg4, l'image est découpée en carrés (blocs) plus ou moins gros et ces carrés sont compressés). Il en résulte une image très "blockie" : on voit beaucoup ces blocs à l'intérieur de l'image. Comme règle de départ, on prendra en général la valeur 0.20-0.22 pour 1 CD, et 0.26-0.28 pour 2 CDs.
Le CQ est indicatif : il est possible de descendre parfois jusqu'à 0.18 pour du Bergman, mais pas pour Matrix. En revanche, il est inutile d'aller au-dessus de 0.30, le gain en qualité étant imperceptible.
 
7) Qu'est-ce que l'aspect ratio ? Peut-on déterminer, à partir de la résolution d'un DVD en pixels, le format du film ?
Non, pas directement. C'est dû à la technique utilisée en mpeg2 (le format utilisé par les DVD) : un fichier peut être encodé en 720x576 pixels, mais être en réalité affiché sur 1024x576 pixels. C'est ce qu'on appelle l'anamorphose : l'image est encodée déformée, compressée, et doit être redressée par le logiciel de lecture. L'en-tête d'un fichier mpeg2 contient le facteur à utiliser pour le redressement, on l'appelle l'aspect ratio.
Par exemple, un DVD PAL est toujours encodé en 720x576, soit un rapport de 1.25 entre la largeur et la hauteur. Mais le film peut avoir un aspect ratio de 4/3 (1.33) ou 16/9 (1.78). Par conséquent, le logiciel de lecture doit allonger l'image d'un facteur 1.33/1.25 dans le premier cas, ou 1.78/1.25 dans le second cas. Les formats larges 2.35 (cinémascope) ou 2.21 sont obtenus en ajoutant des bandes noires en haut et en bas d'un film encodé en 16/9.
En revanche, un fichier vidéo mpeg4 (avi ou ogm) n'est pas anamorphosé. Sa résolution en pixels correspond à sa résolution d'affichage. Donc pour encoder un DVD au format mpeg4, on doit non seulement retirer d'éventuelles bandes noires en haut et en bas de l'image, mais aussi calculer la résolution de l'image finale en tenant compte de l'aspect ratio.
Ces explications et calculs sont données en détail dans la partie C.
 
8) Que représente le facteur de "qualité" de vorbis ?
Quand on encode au format vorbis, il est préférable d'utiliser un facteur de qualité plutôt que d'indiquer un bitrate, et laisser faire l'encodeur. A titre indicatif, voici la correspondance approximative entre bitrate et qualité vorbis :
 

 0.00  ->  64kbps
  0.50  ->  72kbps
  1.00  ->  80 kbps
  2.00  ->  96 kbps
  3.00  ->  112 kbps
  4.00  ->  128 kbps
  5.00  ->  160 kbps
  7.00  ->  224 kbps
  10.00 ->  500 kbps


Note : n'oubliez pas que vorbis à une bien meilleure qualité que le mp3 à bitrate égal. Encoder avec le facteur 1 est souvent suffisant, le vorbis à environ 80kbps étant au moins aussi bon que le mp3 128kbps.
 
9) A quoi sert le désentrelaçement ?
L'entrelacement est une technique qui a été développée pour la télévision. Pour réduire l'effet de scintillement des écrans lors de la diffusion d'un film à 25 images/seconde (PAL) ou 30 images/seconde (NTSC), le film est diffusé par demi-images au double de cette fréquence, une image contenant les lignes impaires, et la suivante les lignes paires. L'effet de rémanence des écrans phosphorescents rend cette opération imperceptible à l'oeil humain, mais réduit l'effet de scintillement.
Dans le cas des DVD, la plupart des DVD zone 2 sont encodés en PAL non entrelacés. Ils ne nécessitent donc aucun traitement lors de l'encodage au format mpeg4. En revanche, certains titres de DVD PAL (en général les bonus) et tous les DVD NTSC (zones 1 et 4) sont entrelacés. Lorsque l'image bouge rapidement (notamment lors d'un travelling), des artefacts dus à l'entrelacement peuvent apparaître lors de l'encodage, qui traite image par image (on a une impression de hachage de l'image). C'est pourquoi un filtre de désentrelacement est nécessaire pour encoder une source entrelacée.
Tuxrip est capable de détecter automatiquement si le DVD est en NTSC et applique le filtre de désentrelacement. Dans le cas d'une source PAL entrelacée, tuxrip doit être lancé avec l'otpion --desentrelace (voir options, partie 3).
Des informations supplémentaires sur l'entrelacement peuvent être trouvées en français sur http://perso.wanadoo.fr/lelab/video/interlace.htm, et en anglais sur http://nickyguides.digital-digest.com/interlace.htm.
 
10) Et les sous-titres ?
Leur support n'est pas encore intégré dans tuxrip. Deux méthodes, une utilisant mencoder et l'autre transcode, subtitleripper et gocr, sont données dans la partie C.
 
11) Mes encodages fonctionnaient la semaine dernière en libavcodec et xvid. Depuis que j'ai recompilé le CVS de mplayer, ça ne marche plus ! L'étape d'encodage video s'arrête avec le message : Exiting... (error parsing cmdline)
Il peut arriver que les options des codecs changent, et que la syntaxe soit différente, ce qui fait planter mencoder. Dans ce cas, éditez les options des codecs video dans le fichier .tuxriprc pour leur donner une syntaxe correcte.
Exemple : entre mplayer-0.90pre10 et la CVS du 7/12/2002, les options de xvid : min_quantizer et max_quantizer ont été remplacés par quant_range. Vous trouverez les changements avec  "man mplayer" (notamment les paragraphes --lavcopts et --xvidencopts).
 
12) Y-a-t-il des bugs connus ?
Oui, et pas forcément dus au script ! Il m'est arrivé d'avoir des problèmes avec un titre particulier d'un DVD : un "bonus" (la bande-annonce) dans un DVD du film "Haute Voltige" ("Entrapment" ). Le numéro de la piste son ne correspondait pas à celui indiqué. Dans ce cas, le numéro de piste audio à entrer est différent de celui affiché (1 au lieu de 0).
 
 
 
C. ENCODAGE MANUEL
Ce chapitre explique les bases de l'encodage tel que le fait le script tuxrip.
 
1ère étape : Scan du DVD
But : connaitre nombre de titres, angles, chapitres pour savoir où ce situe le film et les index des bandes sons...
Outils : title_info (présent dans les sources de libdvdread), mplayer
Exemple :


title_info /dev/dvd | grep Title
 
libdvdread: Using libdvdcss version 1.2.2 for DVD access
Title 1:
       Title has 28 chapters and 5 angles
Title 2:
       Title has 2 chapters and 1 angles
Title 3:
       Title has 2 chapters and 1 angles
Title 4:
       Title has 2 chapters and 1 angles
Title 5:
       Title has 2 chapters and 1 angles  


Résultat : Le film est sur le titre 1 et possède 5 angles...
Comment choisir l'angle ? Je parcours rapidement les différents angles avec mplayer (mplayer -dvd 1 -dvdangle 1)
Il nous reste à connaitre l'index de la piste fr du titre 1 :


mplayer -dvd 1 -vo null -ao null -frames 0 -v 2>&1 | grep "audio stream"
 
[open] audio stream: 0 audio format: ac3 (5.1) language: en aid: 128
[open] audio stream: 1 audio format: ac3 (5.1) language: fr aid: 129
[open] audio stream: 2 audio format: ac3 (stereo) language: en aid: 130


Résultat : La piste fr est ici en ac3 5.1 et a pour index 1.
 
2ème étape : Rip du DVD
But : decrypter les vobs contenant le film et les copier en les "fusionnant" sur le HDD.
Outils : mplayer
Exemple :


 mplayer -dvd 1 -dvdangle 1 -alang fr -nortc -dumpstream -dumpfile /space/dvd.vob  


 
3ème étape : Encodage Son
But : encoder à la volée la piste son du vob en un fichier ogg vorbis, en normalisant le volume sonore.
Outils : transcode + oggenc.
Exemple :  
--- Recherche Volume Normalisation :


tccat -i /space/dvd.vob | tcextract -a $1 -x ac3 -t vob | tcdecode -x ac3 | tcscan -x pcm -b 128
 
[tcscan] audio frames=198048.00, estimated clip length=7921.92 seconds
[tcscan] (min/max) amplitude=(-0.596/0.652), suggested volume rescale=1.535
[tcscan] V: 198048 frames, 7921 sec @ 25.000 fps
[tcscan] A: 123.77 MB @ 128 kbps
[tcscan] CD:  650 MB | V:  526.2 MB @ 557.3 kbps
[tcscan] CD:  700 MB | V:  576.2 MB @ 610.3 kbps
[tcscan] CD: 1300 MB | V: 1176.2 MB @ 1245.7 kbps
[tcscan] CD: 1400 MB | V: 1276.2 MB @ 1351.6 kbps


où $1 l'index de la piste
 
--- Encodage :


mkfifo pcmpipe.raw
oggenc -r -C2 -R48000 -B16 -q$1 -o /space/son.ogg pcmpipe.raw & transcode -i /space/dvd.vob -a $2 -g 0x0 -u 50 -s $3 -a52_drc_off -x null,vob -y raw -N 0x1 -m pcmpipe.raw -o /dev/null
 
[transcode] auto-probing source /space/zorro.vob (ok)
[transcode] V: import format    | MPEG-2  (V=null|A=vob)
[transcode] V: AV demux/sync    | (1) sync AV at initial MPEG sequence
[transcode] V: import frame     | disabled
[transcode] V: bits/pixel       | 0.000 (unknown)
[transcode] V: encoding fps     | 25.000
[transcode] A: import format    | 0x2000  AC3          [48000,16,2]  384 kbps
[transcode] A: export format    | 0x1     PCM          [48000,16,2]  128 kbps
[transcode] A: bytes per frame  | 7680 (7680.000000)
[transcode] A: adjustment       | 0@1000
[transcode] A: rescale stream   | 1.535
[import_vob.so] v0.5.6 (2002-05-09) (video) MPEG-2 | (audio) MPEG/AC3/PCM | (subtitle)
[import_null.so] v0.2.0 (2002-01-19) (video) null | (audio) null
[export_raw.so] v0.3.6 (2002-05-24) (video) * | (audio) MPEG/AC3/PCM
[import_vob.so] tccat -i "/space/zorro.vob" -t vob -d 0 -S 0 | tcdemux -a 1 -x ac3 -S 1 -M 1 -d 0 | tcextract -t vob -a 1 -x ac3 -d 0 | tcdecode -x ac3 -d 0 -s 1.000000,1.000000,1.000000 -A 1
[export_raw.so] codec=RGB, fps=25.000, width=0, height=0
Encoding "pcmpipe.raw" to
         "/space/son.ogg"
at quality 1,00
filling buffer ... done
 
rm pcmpipe.raw


où $1 est la qualité ogg vorbis, $2 l'index de la piste et $3 le volume rescale (déterminés précedemment)...
 
4ème étape : Encodage Video
But : encoder la piste video du vob en un fichier avi, avec le codec MPEG4 de ffmpeg.
Outils : mplayer,mencoder, gnumeric.
 
--- Quel Bitrate ?
1 CD80min : Bitrate = (702 - TailleSon) * 1024 * 1024 / Duree * 8 / 1000
2 CD74min : Bitrate = (1300 - TailleSon)  * 1024 * 1024 / Duree * 8 / 1000
Bitrate est le bitrate à spécifier à l'encodeur en kbps (tel que 1kbps = 1000 bps), Tailleson est la taille en Mo du fichier son.ogg et Duree la longueur du film en secondes.
Exemple : 1 Film de 2 h, bandes son de 60Mo
Bitrate = 713 kbps
 
--- Recherche des parametres de Cropping (pour virer les bandes noires afin d'améliorer la qualité)


mplayer -ao null -vo xv -vop cropdetect /space/dvd.vob
crop area: X: 1..713  Y: 72..500  (-vop crop=712:428:2:72)


je vérifie avec  


mplayer -ao null -vo xv -vop rectangle=712:428:2:72 /space/dvd.vob  


Remarque : Les parametres de crop signifient : fenetre de 712*428 positionnée en 2:72.
Ce qui signifie qu'on enleve 2 pixels à gauche, 6 à droite, 72 en haut et 76 en bas...  
 
--- Recherche des parametres du resize
Un DVD PAL est toujours encodé en 5/4, soit 720x576, pour des raisons techniques. Mais l'image affichée, elle, est déformée, pour arriver à un format cinéma. Ce n'est pas comme un avi où la résolution est fixe. C'est un truc très malin pour gérer les dizaines de formats cinéma différents, entre le cinémascope, le 1.33, 1.77, 1.85, le 2.21, le 2.35, etc... D'ailleurs c'est exactement le même principe au ciné : un film est enregistré sous forme d'un carré (à peu près) sur une pellicule de 32mm de large (parfois 70mm). Donc pour obtenir un rectangle très large comme avec le cinémascope, on utilise un objectif spécial, qui étire l'image. A la prise de vue, c'est un objectif qui aura fait l'effet inverse : l'image panoramique est compressée sur les côtés, comme dans un miroir déformant. Là c'est exactement pareil. Tu peux d'ailleurs regarder un film avec mplayer -dvd 1 -noaspect et là tu as une image brute 720x576 sans étirement.
 
Un DVD est toujours reformaté : soit en 4/3, soit en 16/9, à partir de cette image en 5/4. Quand tu lances un dvd avec mplayer, en revanche il t'affiche l'aspect ratio (indiqué dans l'encodage) : 4/3 (1.33) ou 16/9 (1.78) et fait l'étirement de l'image 5/4 (1.25). Donc tu as une transfo mathématique de:
720x576 --> 768x576 en 4/3
720x576 --> 1024x576 en 16/9
Cet aspect ratio est lu dans l'en-tête du fichier mpeg2, grâce à un code :
Display aspect ratio codes:
1 - 1:1 pixels
2 - 4:3 display
3 - 16:9 display
4 - 2.21:1 display
Je ne connais que des DVD avec le code 2 (4/3) ou 3 (16/9).
 
En revanche, les valeurs de crop sont elles données en pixels sur l'image de départ, soit 720x576. C'est pour ça que la valeur cropée, sans l'aspect ratio, ne te donne jamais le format de départ.
Au final, les valeurs de ton avi seront égales OU proportionnelles à
ta largeur croppée x (768/720) / hauteur croppée en 4/3
ta largeur croppée x (1024/720) / hauteur croppée en 16/9
 
Dans les deux cas, tu transformes un 5/4 initial en 4/3 ou 16/9 suivant le film.
 
Dans le cas du NTSC, l'image initiale est en 720x480, et c'est exactement le même principe : cropping et étirement en longueur ou largeur pour respecter l'aspect ratio.
 
Bon voila j'ai concocte une formule generale pour calculer la résolution finale. Elle a l'avantage de prendre tous les formats d'entrée et de sortie, pas seulement de PAL et NTSC vers 4/3 ou 16/9.
 
Le but est de trouver ARc, l'aspect ratio final du film, apres cropping et zooming. C'est de cet ARc que decoulent ensuite les valeurs, multiples de 16, de la hauteur et la largeur du fichier mpeg4.
 
- Variables de depart :


ARi = Aspect ratio initial (la resolution brute du DVD non anamorphose)
ARa = Aspect ratio anamorphose (aspect ratio du DVD)
Wc = Largeur du film sans bandes noires et non anamorphose
Hc = Hauteur du film sans bandes noires et non anamorphose


- Determination des variables :
 
ARi est donne par mplayer (720x576 ou 720x480) : Wi/Hi division de la largeur non anamorphosee par la hauteur non anamorphosee. Typiquement, en PAL=1.25 (720/576) et NTSC=1.5 (720/480). Mais tu pourrais prendre une autre valeur si ce n'est pas un format standard.
 
ARa est aussi donne par mplayer, il le lit dans l'en-tete du fichier mpeg2 : 1.33 ou 1.78. Donc ARa=4/3 ou ARa=16/9. Je te conseille de prendre ces valeurs exactes plutot que 1.33 et 1.78, pour ne pas introduire d'erreurs d'arrondi. La encore, ARa pourrait etre differente des standards DVD 4/3 et 16/9.
 
Wc et Hc sont donnes par mplayer --cropdetect, les deux premiers chiffres, ex: 638:437:2:11, donc Wc=638 et Hc=437
 
 
- d'ou:


ARc = (Wc x (ARa / ARi )) / Hc


 
Et voila ! L'avantage est que tu n'as plus besoin de tester la presence ou non de bandes noires : l'ARc est ce que tu cherches, et est calcule directement quelle que soit la largeur des bandes noires.
 
Maintenant, la résolution du fichier mpeg4 doit être
 
Wm/Hm = le plus proche de ARc selon le critere qualite vise, et multiples de 16.
CQ = 1000*Bitrate / (ResX*ResY*25)
où CQ (critère de qualité) doit être supérieur à 0.20 et ResX, ResY doivent être des multiples de 16.
 
et comme ResX/ResY = ARc :


ResY = Hm = INT( SQRT(1000 * Bitrate / 25 / ARc / CQ) / 16 ) * 16
ResX = Wm = INT( ResY * ARc / 16) * 16


 
J'ai fait plusieurs essais "a la main" et ca me semble juste.


Exemple avec ma bande annonce d'entrapment, PAL 1.33 avec bandes noires
 
ARi=5/4 (PAL)
ARa=4/3 (AR 1.33)
--cropdetect : 698:437:2:11 d'ou Wc=698 Hc=437
 
Donc :
ARc = (698 x ((4/3)/(5/4))) / 437 = 1.70374
 
Donc pour un bitrate de 800kps et CQ de 0.22 :
 
Hm = 288
Wm = 288 x 1.70374 mod 16 = 496


 
 
--- Encodage
On enchaine les 2 passes, la 2eme ayant lieu seulement si la 1ere n'a pas echoué.


#!/bin/sh
rm -rf lavc_stats.txt
 
 
SCALE=560:240
CROP=712:428:2:72
CIBLE=/space/video.avi
SOURCE=/space/dvd.vob
LAVCOPT=vcodec=mpeg4:vqmin=2:vqmax=20:vmax_b_frames=2:vhq:vbitrate=713
 
mencoder -nosound -o /dev/null -ovc lavc -lavcopts $LAVCOPT:vpass=1 -vop scale=$SCALE,crop=$CROP -zoom -sws 2 $SOURCE && mencoder -nosound -o $CIBLE -ovc lavc -lavcopts $LAVCOPT:vpass=2 -vop scale=$SCALE,crop=$CROP -zoom -sws 2 $SOURCE  


Remarques : J'utilise le resize de type Bicubic (-sws 2) qui assure une meilleure qualité.
DVD zone 1 NTSC : L'option -ofps 24 est necessaire pour "forcer" l'encodage à 24 fps au lieu de 29.97.
 
5ème étape : Mixage Audio/Video
But : Regrouper les partie video et audio dans un container OGG.
Exemple :


ogmmerge -o /space/film.ogm /space/son.ogg /space/video.avi


 
6ème étape : Sous-titres
 
-- méthode subtitleripper/transcode
Cette méthode est celle qui sera automatisée à terme. Elle permet de tirer parti de l'encapsulateur vorbis, qui permet de mixer video et son (comme le fait tuxrip actuellement) mais aussi texte et labels (titre, nom des langues, etc...)
Voici la méthode que je propose en utilisant l'arborescence créée par tuxrip. Cette méthode pourra ensuite être automatisée dans une future version de tuxrip.
 
Installation
Il faut :
subtitleripper : http://subtitleripper.sourceforge.net/
gocr : logiciel libre de reconnaissance de caractères
ispell pour chaque langue à extraire : facultatif, mais pratique pour corriger les sous-titres extraits par OCR.
 
Ces logiciels peuvent être compilés ou peuvent être disponibles sous forme de paquets pré-compilés.
Pour Mandrake, installer les rpm :
gocr   <- dispo dans la distro
ispell-code_de_la_langue_à_2_lettres
subtitleripper  <- dispo dans PLF
 
2) Configuration de pgm2txt
pgm2txt est un script appartenant à subtitleripper. Il appelle gocr pour effectuer la reconnaissance des caractères (OCR).
Un peu de configuration peut être nécessaire, et elle doit être faite en éditant le script, car il n'utilise pas de fichier de préférence. En droits root, éditer le fichier pgm2txt (/usr/bin/pgm2txt en général) avec l'éditeur de votre choix.
 
   - Chemin vers la base de caractères (ligne 14)
Lorsque gocr ne reconnaît pas un caractère (ou un groupe de caractères), il demande à l'utilisateur de rentrer ce caractère. Ensuite, il stocke cette information dans une base de données dont il se sert pour effectuer la reconnaissance. Cela permet de ne pas avoir à rentrer à nouveau le même caractère non reconnu.
Dans le script, le chemin par défaut est ./db/ : il crée un répertoire db dans le répertoire subt du projet. Si vous voulez conserver la base pour tous les projets, le mieux est de lui faire creer cette base dans le répertoire $HOME de l'utilisateur.
Je recommande donc de remplacer ./db/ par $HOME/db/ (ou autre nom)
 
   - Options d'OCR (ligne 28)
Si on utilise les options auto :
GOCR_OPTIONS_AUTO="-s 8 -m 130"
-s correspond à l'espacement entre les mots. Trop haut, et les mots seront attachés, trop bas et il y aura des espaces au sein des mots. L'auteur avait mis la valeur -s 10, je préfère -s 8, mais cela peut varier d'un DVD à l'autre.
 
   - Afficheur graphique (lignes 38 et 39)
IMAGE_VIWER=
IMAGE_VIEWER_OPTIONS=
Personnellement j'utilise ImageMagick, je mets donc display (et j'enlève toute option)
 
 
Utilisation
 
   1) Création du répertoire de travail
Se déplacer dans le répertoire projet (il y a les répertoires audio, video, tmp, etc...)
Y créer un répertoire subt
 
   2) Extraction des sous-titres
 
Taper en console :
cat ../vob/*.vob | tcextract -x ps1 -t vob -a $PISTE | subtitle2pgm -c $COLORCONV -o projet
 
où PISTE=0x20 + id <-- id est le numéro de la piste sous-titre. 0x20 correspond à la première, 0x21 à la deuxième, etc...
 
   COLORCONV=0,255,255,255  
             255,0,255,255 <-- la plus courante
             255,255,0,255
             255,255,255,0
 
Une de ces 4 valeurs est la bonne pour obtenir des sous-titres noirs sur fond blanc. Vous ne devez pas avoir de contour autour des lettres.
Cela crée 1 fichier PNG par sous-titre.
 
   3) Reconnaissance auto des caractères
 
pgm2txt -v [-d] projet
 
J'utilise -v  : permet d'afficher le sous-titre analysé, cela facilite l'entrée des caractères non reconnus
 
-d peut être ou non utilisé : sans -d, gocr utilisera sa base de données interne et ne demandera que les caractères exotiques ou difficiles (comme #, %, italiques, groupes de lettres accolées). Avec -d, gocr est utilisé en mode "database only", ce qui signifie qu'il construira la base avec tous les nouveaux caractères. La première fois, ce processus est long, car tout l'alphabet est à rentrer. En revanche, le résultat est plus fiable que sans -d.
Chaque sous-titre est extrait vers un fichier TXT.
 
Il utilise gocr pour extraire un fichier TXT par  
gocr demande d'entrer chaque caractère inconnu : la première fois, il les demande tous ! Mais vous pouvez enregistrer les caractères reconnus dans une database que vous pourrez réutiliser plus tard.
 
   4) Vérification de l'orthographe (facultatif)
 
ispell -d langue projet*txt
 
Utiliser pour langue :
   french pour un sous-titre en français
   american pour un sous-titre en anglais.
 
   5) Construction du fichier srt
 
srttool -s -i projet.srtx -o projet.srt
 
Construit le fichier sous-titres.
Vous pouvez construire ainsi plusieurs fichiers sous-titre pour chaque langue, en construisant plusieurs répertoires subt1, subt2 etc... pour chaque langue.
 
   6) Mixage des sous-titres dans le film ogm
 
Dans le répertoire projet :
 
ogmmerge -o projet.ogm -c 'TITRE=Titre du film' video/projet -c LANGUAGE=Français subt1/projet.srt -c LANGUAGE=English subt2/projet.srt [etc...]
 
Cela mixe tous les flux.
ogminfo projet.ogm vous donne la liste des flux et leur type (video, audio, texte), ainsi que le numéro qui leur est attribué.
 
   7) Lecture avec mplayer
 
mplayer projet.ogm -sid numéro_de_la_piste_sous-titre -subfont-text-scale 3
 
Pendant la lecture vous pouvez désactiver l'affichage des sous-titre avec v, et leur position avec r et t.
 
Avantages : fichier sous-titre au format texte, qui ne fait que quelques ko, inclusion totale dans le film ogm, ce qui facilite la distribution.
Désavantages : méthode longue (reconnaissance des caractères, correction OCR)
perte des formatages italiques, gras...
 
 
-- méthode mencoder
 
dans le répertoire vob (avec les .vob et le .ifo), tapez :
cat ./*vob | mencoder - -ifo vts_01_0.ifo -o /dev/null -nosound -ovc copy -vobsubout subtitles -vobsuboutindex 0 -sid 0
 
 
-vobsubindex et sid indiquent le numéro du sous-titre.
Le fichier ifo n'est pas indispensable, mais il indique la couleur des sous-titres. Si vous ne le mettez pas, les sous-titres sont noirs.
 
Il crée alors deux fichiers : subtitles.idx (contient les temps) et subtitles.sub (contient les sous-titres sous forme d'images).
 
Pour relire : mplayer film.ogm -vobsub subtitles
 
Avantages : pas de problèmes de reconnaissance des caractères, maintien du formatage
Désavatage : comme les sous-titres sont des images et non un fichier texte, le fichier subtitles.sub est gros (2.7Mo pour 2 heures).
 
Il y a la possibilité de faire de l'OCR sur le fichier sub avec d'autres utilitaires, pas encore essayé.
Je vais essayer d'extraire plusieurs sous-titres.
 
Pour rajouter un subtitle dans une autre langue :
 
cat ./*vob | mencoder - -ifo vts_01_0.ifo -o /dev/null -nosound -ovc copy -vobsubout subtitles -vobsuboutindex 1 -sid 2
 
Et ça rajoute au subtitle.idx et .sub précédemment créé le subtitle n°2 avec l'index vobsub 1. Vous avez donc 2 vobsubs 0 et 1 correspondant aux sous-titres 0 et 2. C'est aussi simple que ça. Bien sûr, ça augmente la taille du fichier .sub d'autant.
 
Pour lire :
mplayer film2.ogm -vobsub subtitles -vobsubid 1
pour lire le sub vobsubindex n°1.
 
Au fait, je disais que le .ifo était nécessaire pour déterminer la palette.
La palette est rajoutée au début du fichier idx. Je suis sûr qu'on doit pouvoir la reconstituer si le fichier ifo est manquant (si on a extrait que les vobs par ex.)
 
 
 
D. AUTRES MÉTHODES D'ENCODAGE MPEG4
 
D'autres outils permettant l'encodage en mpeg4 existent :
 
- Avidemux
Cet outil graphique est très proche de VirtualDub sur le plan de l'interface.  Il n'est pas uniquement destiné à la conversion des DVD (mais s'y acquitte également). Il permet l'encodage de flux vidéo et audio et supporte différents codecs, dont le libavc, le xvid, et le divx. De plus, il permet de découper et de remonter très facilement un fichier vidéo.
Son auteur est mean, qui participe également à ce forum.
Site :
http://fixounet.free.fr/avidemux/
Vous y trouverez un guide de conversion Mpeg vers DivX :
http://fixounet.free.fr/avidemux/h [...] _Divx.html
 
- dvd::rip
dvd::rip est un frontend graphique de transcode, programmé en perl-gtk+, dédié à l'extraction des DVD et leur encodage en utilisant le codec de votre choix.
http://www.exit1.org/dvdrip/
 
- AcidRip
Un autre frontend graphique en gtk::perl qui permet l'extraction et l'encodage des DVD, qui utilise mencoder (contrairement a dvd::rip qui utilise transcode). http://acidrip.thirtythreeandathird.net/
Le meme auteur a créé lsdvd, un logiciel permettant d'analyser le contenu d'un DVD. http://acidrip.thirtythreeandathird.net/lsdvd.html
 
- Vob2divx
C'est un script perl similaire tuxrip. Mais contrairement à tuxrip, il utilise exclusivement transcode pour extraire et encoder un DVD.
http://www.lpm.univ-montp2.fr:6714/~domi/vob2divx/


Message édité par jotenakiszeb le 09-11-2005 à 02:01:49
Reply

Marsh Posté le 11-12-2002 à 21:53:51   

Reply

Marsh Posté le 11-12-2002 à 22:59:34    

Ca c'est du bon topic :)
 
Pour tuxrip il y a pas une homepage ?

Reply

Marsh Posté le 12-12-2002 à 09:29:49    

mean a écrit :

Ca c'est du bon topic :)
 
Pour tuxrip il y a pas une homepage ?


 
Salut et merci :)
Non, pour l'instanet il n'y a pas de homepage. C'est ce topic qui sert en fait de homepage, et on va s'efforcer de le mettre a jour regulierement. Peut-etre qu'on fera un site plus tard.
D'ailleurs, meme si tuxrip est traite principalement dans le manuel, ce topic reste ouvert a toute discussion sur l'encodage mpeg4, qu'il soit avec tuxrip, manuel ou avec d'autres outils comme avidemux.
:hello:

Reply

Marsh Posté le 13-12-2002 à 12:06:24    

Je viens de tomber sur un nouveau guide sur l'encodage de DVD. Il ya aussi des explications pour les sous-titres :
http://dominia.org/djao/dvdsub.html

Reply

Marsh Posté le 13-12-2002 à 19:08:37    

un autre soft (gui pour mencoder) : http://acidrip.thirtythreeandathird.net/
à tester...

Reply

Marsh Posté le 16-12-2002 à 14:59:04    

up
 :??:

Reply

Marsh Posté le 16-12-2002 à 15:19:06    

:ouch:  je suis resté baba du boulot fait sur ce topic (j'avais pas trop suivi le premier mais tuxrip, c'est impressionant)
 
je vais changer le lien du topic de lien pour celui ci


Message édité par Mjules le 16-12-2002 à 15:19:23

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 16-12-2002 à 15:22:49    

bonne idée puisque l'ancien va être fermé.

Reply

Marsh Posté le 16-12-2002 à 18:00:14    

Mjules a écrit :

:ouch:  je suis resté baba du boulot fait sur ce topic (j'avais pas trop suivi le premier mais tuxrip, c'est impressionant)
 
je vais changer le lien du topic de lien pour celui ci


 
Merci.
On est en train maintenant d'ajouter de nouvelles fonctionnalites, comme l'encodage du generique a bas bitrate. Malheureusement, il n'y a pas pour l'instant d'outils pour scinder un vob a un temps donne. C'est dommage, car ca existe sous Win, mais pas sous Linux apparemment. A confirmer ?
 
Si quelqu'un a une idee avec transcode, on est preneur. Il y a bien une sortie "raw" mais le non-compresse prend vraiment trop de place.
 
L'autre solution a laquelle on a pense est d'encoder le film en entier avec mencoder, puis de reencoder le generique deja encode avec un bitrate plus faible et de merger les deux parties avec transcode par exemple.

Reply

Marsh Posté le 16-12-2002 à 19:43:29    

Salut  :)
 
Pour la derniere partie du script, vous pouvervous inspirer du script que j'utilise pour graver mes films
 
Si vous manquer de temps, je peut m'y coller
 
Vala

Reply

Marsh Posté le 16-12-2002 à 19:43:29   

Reply

Marsh Posté le 16-12-2002 à 19:44:24    

Et avec le lien qui va bien, c'est encore mieu :
 
http://perso.club-internet.fr/jupiter5/graver

Reply

Marsh Posté le 16-12-2002 à 19:52:04    

Le mode deux passes de xvid a les options pour faire ca.
C'est codé dans avidemux mais desactivé
 
Je peux le reactiver si ca interresse

Reply

Marsh Posté le 16-12-2002 à 20:33:04    

sebweb a écrit :

Et avec le lien qui va bien, c'est encore mieu :
 
http://perso.club-internet.fr/jupiter5/graver  


 
Salut
Merci beaucoup pour le coup de main.
 
 :hello:

Reply

Marsh Posté le 16-12-2002 à 20:35:25    

mean a écrit :

Le mode deux passes de xvid a les options pour faire ca.
C'est codé dans avidemux mais desactivé
 
Je peux le reactiver si ca interresse


 
Tu veux dire l'encodage film/générique avec deuw bitrates différents ? Ca serait cool en effet.
 
Mais on cherche une méthode universelle pour le faire avec libavc aussi. C'est peu-être tcextract qu'il faut utiliser pour ça.
Malheureusement, je n'ai pas de page de man pour tcextract. Quelqu'un l'a ?

Reply

Marsh Posté le 16-12-2002 à 20:40:07    

oui exactement

Reply

Marsh Posté le 16-12-2002 à 20:46:41    

YEEEAAAAHHH !!
Je viens de recompiler mplayer, et dans les options de libavc, dans le man, je trouve :
 
 
vrc_override=<options>
                                     User specified quality for specific parts
                                     (pass 1/2).    The  options  are  <start-
                                     frame,  end-frame,  quality[/start-frame,
                                     end-frame, quality[/...]]>:
                                        quality 2-31: quantizer
                                        quality  -500-0: quality correcture in
                                        %
 
 
 
jotenakis : y a un support du générique dans libavc aussi  :sol:

Reply

Marsh Posté le 16-12-2002 à 20:54:20    

Par contre, j'ai l'impression que ça ne joue que sur le quantizer, pas sur le bitrate :(
 
Faudrait faire des essais...


Message édité par zeb_ le 16-12-2002 à 20:54:50
Reply

Marsh Posté le 16-12-2002 à 21:00:48    

petite correction dvd::rip c est du perl-GTK , pas du python

Reply

Marsh Posté le 16-12-2002 à 23:11:05    

sebweb a écrit :

Salut  :)
 
Pour la derniere partie du script, vous pouvervous inspirer du script que j'utilise pour graver mes films
 
Si vous manquer de temps, je peut m'y coller
 
Vala


merci je jetterais un coup d'oeil..
Pour la gravure je fais comme ça et ça marche bien :  
 


if [ "$grave" = "OK" ]; then
   echo -e "${TABLECOLOR}+++++++++++++++GRAVURE+++++++++++++++++++++++++++++++++++++"
   echo -e "${MAINCOLOR}"
 
   tailleSECT=`mkisofs -r -J -q -print-size $RACINE/$projet/video/${projet}.ogm`
   tailleMO=`expr $tailleSECT \* 2048`
   cd650=333000
   cd700=360000
   test1=`expr $tailleSECT "<=" $cd650`
   test2=`expr $tailleSECT "<=" $cd700`
   if  [ "$test1" = "1" ] ; then
       disk=650
   elif [ "$test2" = "1" ] ; then
       disk=700
   else
      echo "Fichier à graver trop gros..."
      exit 0
   fi
   echo "Inserer un CD de"  $disk "Mo et appuyer sur ENTREE pour démarrer la gravure..."
   read
   mkisofs -r -J $RACINE/$projet/video/${projet}.ogm 2>/dev/null | cdrecord -v -dao speed=$vitesse dev=$graveur -tsize=${tailleSECT}s -
fi

 
me reste à fignoler pour des encodages sur plusieurs cd.

Reply

Marsh Posté le 16-12-2002 à 23:13:32    

zeb_ a écrit :


jotenakis : y a un support du générique dans libavc aussi  :sol:  


 :love:  :bounce:  
à tester...
 
 :jap:

Reply

Marsh Posté le 16-12-2002 à 23:16:12    

zeb_ a écrit :

Par contre, j'ai l'impression que ça ne joue que sur le quantizer, pas sur le bitrate :(


c'est pas grave c'est ce qu'il y a de mieux : encodage du credits à quantizer constant fixé à 20 par exemple...

Reply

Marsh Posté le 16-12-2002 à 23:37:48    

houplaboom42 a écrit :

petite correction dvd::rip c est du perl-GTK , pas du python
 


c'est corrigé, merci. :jap:

Reply

Marsh Posté le 17-12-2002 à 00:41:01    

Par contre je viens de trouver un bug dans tuxrip : je n'ai pas réussi à ripper un film dont le titre était le n°11. Il voulait le faire avec le n°1.
 
 

jotenakis a écrit :


c'est pas grave c'est ce qu'il y a de mieux : encodage du credits à quantizer constant fixé à 20 par exemple...


 
Ca y est j'ai testé sur une bande-annonce de "Profondo Rosso" (le meilleur Dario Argento avec Suspiria!)
option : vrc_override=1,2762,31-31/1,2762,31-31
pour bloquer le quantizer à 31
 
ll -h
786K déc 16 23:50 pr2.avi
9.6M déc 16 20:07 pr.avi  <-- le même en 800 kbps / quantizers 2-20
 
Bon le résultat est très blocky, mais c'est impressionnant !
Un truc marrant : mencoder a râlé pendant l'encodage  
en affichant une série de "bits<0.9" mais tout a continué sans problème.
 
 :bounce:  :bounce:  :bounce:


Message édité par zeb_ le 17-12-2002 à 01:15:50
Reply

Marsh Posté le 17-12-2002 à 07:59:29    

formidable : c'est normal que ce soit blocky avec 31 suffira de le faire avec 20.
 
sinon j'ai limité le nombre de titre à 6, c'est pour ça. Corrigé dans tuxrip065 à venir.

Reply

Marsh Posté le 17-12-2002 à 10:11:49    

jotenakis a écrit :

formidable : c'est normal que ce soit blocky avec 31 suffira de le faire avec 20.
 
sinon j'ai limité le nombre de titre à 6, c'est pour ça. Corrigé dans tuxrip065 à venir.


 
Oui j'ai vu, j'ai edite le script. ;)  
 
Maintenant faut trouver un moyen de determiner le frame start du generique (et meme des generiques, etant donne qu'on peut specifier un frame start et un frame end) au travers d'une interface de navigation. Tu crois que c'est possible ?
 
D'autre part, je me demande comment il faut calculer le bitrate : est-ce qu'en bloquant les quantizers il faut quand meme utiliser le bitrate moyen et le codec ajuste automatiquement en reportant les bits inutilises sur le film (ce qui devrait etre le cas en 2 pass), ou il va falloir augmenter le bitrate pour compenser ?
En tout cas je vais faire des essais pour voir.


Message édité par zeb_ le 17-12-2002 à 10:42:34
Reply

Marsh Posté le 17-12-2002 à 10:44:27    

a mon avis y a pas trop le choix : lire le film à partir du dernier chapitre avec mplayer et demander à l'utilisateur de saisir le début du générique en secondes. Pour la fin on prends la durée du film. Enfin on converti tout en frames avec le framerate.

Reply

Marsh Posté le 17-12-2002 à 10:57:01    

jotenakis a écrit :

a mon avis y a pas trop le choix : lire le film à partir du dernier chapitre avec mplayer et demander à l'utilisateur de saisir le début du générique en secondes. Pour la fin on prends la durée du film. Enfin on converti tout en frames avec le framerate.


 
tip top tout ca.
 
Juste un autre truc, une broutille : quand tu calcules resY, dans la formule tu considres le bitrate, le CQ et aussi tu divises par le fps (25). Pur le NTSC il faudrait diviser par 24, non ? Bon ca doit pas changer grand chose, vu qu'il faut arrondir a un multiple de 16...

Reply

Marsh Posté le 17-12-2002 à 11:01:55    

Avec tout ca, je n'ai toujours pas compris a quoi servait tcextract. C'est documente nulle part, c'est juste mentionne dans les exemples, sans donner de precision... Ca decode le css ?

Reply

Marsh Posté le 17-12-2002 à 12:04:54    

zeb_ a écrit :


 
D'autre part, je me demande comment il faut calculer le bitrate : est-ce qu'en bloquant les quantizers il faut quand meme utiliser le bitrate moyen et le codec ajuste automatiquement en reportant les bits inutilises sur le film (ce qui devrait etre le cas en 2 pass), ou il va falloir augmenter le bitrate pour compenser ?
En tout cas je vais faire des essais pour voir.


c'est le codec qui se débrouille... En tout cas c'est comme ça pour xvid.
 
Autre chose : j'ai enfin pu tester un autre DVD (asterix de Chabat) et j'ai trouvé le même décalage qu'avant : -300 ms.

Reply

Marsh Posté le 17-12-2002 à 12:29:38    

zeb_ a écrit :

Avec tout ca, je n'ai toujours pas compris a quoi servait tcextract. C'est documente nulle part, c'est juste mentionne dans les exemples, sans donner de precision... Ca decode le css ?


dans mon script je me sers de tcextract pour ripper le dvd donc, oui, il décrypte le css (en utilisant libdvdcss). De plus la ligne de commande permet de calculer à la volée le gain maxi pour la piste audio rippée.

Reply

Marsh Posté le 17-12-2002 à 12:51:13    

zeb_ a écrit :


 
Juste un autre truc, une broutille : quand tu calcules resY, dans la formule tu considres le bitrate, le CQ et aussi tu divises par le fps (25). Pur le NTSC il faudrait diviser par 24, non ? Bon ca doit pas changer grand chose, vu qu'il faut arrondir a un multiple de 16...


oui ça me parait + logique d'utiliser le framerate modifié que celui initial.

Reply

Marsh Posté le 17-12-2002 à 13:08:48    

jotenakis a écrit :


c'est le codec qui se débrouille... En tout cas c'est comme ça pour xvid.
 
Autre chose : j'ai enfin pu tester un autre DVD (asterix de Chabat) et j'ai trouvé le même décalage qu'avant : -300 ms.


 
Pour moi c'est pareil : j'ai un gros decalage de -480ms. Ca doit dependre du lecteur utilise. Par contre, le decalage est constant et j'ai toujours eu le meme pour tous les titres jusqu'a present. Donc pas vraiment un gros probleme.

Reply

Marsh Posté le 17-12-2002 à 13:42:07    

d'où l'interêt du tuxriprc...  :D

Reply

Marsh Posté le 17-12-2002 à 15:29:44    

jotenakis a écrit :

d'où l'interêt du tuxriprc...  :D  


 
[:z-bob]

Reply

Marsh Posté le 17-12-2002 à 16:15:44    

Dans vob2divx :  
 5) detect if vob frames are interlaced.
 
 :heink: Comment ils font ça ???

Reply

Marsh Posté le 17-12-2002 à 16:32:31    

d'après vous, est ce que le nom du dvd est stocké quelque part ? si oui, ou ? (vob,ifo...) et est-ce vrai pour tous les DVD ?

Reply

Marsh Posté le 17-12-2002 à 17:13:40    

jotenakis a écrit :

d'après vous, est ce que le nom du dvd est stocké quelque part ? si oui, ou ? (vob,ifo...) et est-ce vrai pour tous les DVD ?
 


 
oui, mais je sais pas ou. Car mplayer stocke les clefs CSS decodee dans ton repertoire .mplayer, et il porte le nom du dvd. Par contre ce n'est pas systematique, car parfois le nom est remplace par des chiffres

Reply

Marsh Posté le 17-12-2002 à 17:27:52    

jotenakis a écrit :

Dans vob2divx :  
 5) detect if vob frames are interlaced.
 
 :heink: Comment ils font ça ???


 
Avec l'info sur le field ?
 
 

Code :
  1. sub interlaced
  2. {
  3.         print $GREEN."\t Trying to detect if frames are interlaced...\n".$NORM;
  4. my $pid = fork();
  5. die "couldn't fork\n" unless defined $pid;
  6. if ($pid)
  7. {
  8.  $interlace=`transcode -i $vobpath/$sample -J 32detect=verbose -c 100-101 2>&1 | grep interlaced`;
  9.  system("touch tmp/wait.finish" );
  10. }else
  11. {
  12.  smily;
  13. }
  14. print"\n";
  15.         if ( ! ( $interlace =~  m,interlaced = (yes),))
  16.         {
  17.                 ( $interlace =~  m,interlaced = (no),) or die $RED."Unable to Detect Interlacing in ".$vobpath."/".$sample."\n".$NORM;
  18.                  $INTERLACE="no";
  19.  print $RED."It seems that this movie DOES'NT NEED deinterlacing\n".$NORM;
  20.         }else{
  21.                 $INTERLACE="yes";
  22.  print $RED."It seems that this movie NEED deinterlacing\n".$NORM;
  23.         }
  24. }

Reply

Marsh Posté le 17-12-2002 à 22:47:35    

Merci, ils utilisent l'option -J de transcode avec le plugin 32detect.
 


 -J filter1[,filter2[,...]]
              apply external filter plugins [off].  A full-blown
              transcode installation has the following filter
              modules:
 
              Filter "29to23": 29.97 to 23.976 frame rate conver­
              sion
              Filter "32detect": 3:2 pulldown detection plugin
              Filter "32drop": 3:2 inverse telecine removal plu­
              gin
              Filter "aclip": generate audio clips from source,
              cuts out silence
              Filter "astat": audio statistics filter plugin
              Filter "cshift": chroma-lag shifter
              Filter "cut": encode only listed frames
              Filter "decimate": NTSC decimation plugin
              Filter "divxkey": detect keyframes in MPEG-4 bit­
              streams
              Filter "dilyuvmmx": yuv de-interlace filter plugin
              Filter "dnr": dynamic noise reduction
              Filter "extsub": subtitle renderer
              Filter "extsub2": secondary subtitle renderer
              Filter "invert": invert the image
              Filter "ivtc": NTSC inverse telecine plugin
              Filter "logo": render image in videostream
              Filter "mask": masking plugin
              Filter "normalize": Volume normalizer
              Filter "null": API demo filter plugin
              Filter "pp": mplayer postprocess filters
              Filter "preview": preview filter
              Filter "pv": xv only preview filter with navigation
              keys
              Filter "resample": audio resample filter
              Filter "skip": skip all listed frames
              Filter "smartdeinter": VirtualDub's smart deinter­
              lacer
              Filter "smooth": single-frame smoothing plugin
              Filter "subtitler": powerful custom subtitle gener­
              ator
              Filter "tc_audio": audio 24000/1001 -> 30000/1001
              telecide filter
              Filter "tc_video": video 24000/1001 -> 30000/1001
              telecide filter
              Filter "testframe": generate stream of testframes
              Filter "xsharpen": VirtualDub's XSharpen Filter
              Filter "yuvdenoise": mjpegs YUV denoiser
 
              To see what your transcode has, do a
              ls -1 $TRANSCODE_MOD_PATH/filter*.so
 

 
Il manque vraiment une doc digne de ce nom à transcode... :o


Message édité par jotenakis le 17-12-2002 à 22:48:14
Reply

Marsh Posté le 19-12-2002 à 18:54:07    

ça le fait avec d'autres versions de transcode ?
ta piste audio est bien la 0 ?
 
Vois vraiment pas...

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed