Convertir DV vers DVD

De Lea Linux
Révision datée du 2 septembre 2005 à 18:10 par PingouinMigrateur (discussion | contributions) (conversion de la documentation originale de Léa par HTML::WikiConverter)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Convertir mini DV vers DVD de salon

Convertir mini DV vers DVD de salon
Par Antoine

Introduction

But de ce document ?

Ce document a pour but d'expliquer comment faire un DVD lisible sur un lecteur DVD de salon à partir d'une caméra mini-dv. Ce document a été créé en utilisant XML Docbook.

Pourquoi ?

Lorsque j'ai acheté mon mini-dv, je voulais simplement créer un DVD de salon pour m'affranchir de l'utilisation de mon PC pour regarder mes vidéos personnelles. (en fait ma femme n'est pas très PC, et le DVD de salon est la meilleure méthode pour qu'elle puisse regarder nos vidéos).
J'ai trouvé de la doc éparpillée un peu partout (les liens sont à la fin de chaque chapitre) et je me suis dit que créer une doc umentation en français regroupant toutes les informations serait une bonne idée.

Mon matériel

  • Camescope : Sony DCR PC120E PAL
  • Carte firewire : Lucent Microelectronics FW323
  • PC de compression : Athlon XP2400 512 Ram 80go + 160go
  • Graveur de DVD : NEC ND1300

Il faut une heure pour capturer la vidéo du camescope (le temps de lecture de toute la bande de 60min), 6h30 de conversion au format DVD MPEG2 (option vidéo pipe dans kino en -q 2, en -q 1, il faut compter les doubles), et 5 minutes pour créer les .VOB du DVD, et 25 minutes pour graver le DVD. Donc en moins de 7 heures, vous avez un DVD de salon à partir de votre caméscope :-)

Logiciels utilisés

J'utilise Mandrake Linux 10 community avec la suite de logiciels suivant qui me permet de faire : la capture, le montage vidéo, la conversion au format DVD, et finalement graver le DVD. Voici donc la liste des logiciels utilisés tout au long de ce HOWTO

Oublis, Erreurs

Bien sur il existe certainement d'autres méthodes pour arriver à un DVD de salon à partir de son caméscope, en voici une, et j'attends les retours d'expériences, les oublis et les corrections d'erreurs qui existent certainement dans ce document.

Récupération de la vidéo

Carte firewire

Il faut avoir un kernel qui supporte le ieee1394, sinon votre carte firewire ne fonctionnera pas :-( La plupart des distributions ont le support ieee1394.

Charger les modules nécessaires :

[root@xp2400 ~/]# modprobe ohci1394
[root@xp2400 ~/]# modprobe raw1394

voici la liste des modules ieee1394 de mon système :

[root@xp2400 root]# lsmod | grep 1394
raw1394                19416   0  (unused)
dv1394                 20208   0  (unused)
ohci1394               27696   0  [dv1394]
ieee1394              201284   0  [raw1394 dv1394 ohci1394]

Utilisez testlibraw pour vérifier que ça fonctionne :

[root@xp2400 root]# testlibraw 
successfully got handle
current generation number : 1
1 card(s) found
nodes on bus :  2, card name : ohci1394
using first card found : 2 nodes on bus, local ID is 1, IRM is 1
doing transactions with custom tag handler
trying to send read request to node 0... completed with value 0x334275a5
trying to send read request to node 1... completed with value 0x406175a5
using standard tag handler and synchronous calls
trying to read from node 0... completed with value 0x3cc676a5
trying to read from node 1... completed with value 0x10e076a5
testing FCP monitoring on local node
got fcp command from node 1 of 8 bytes : 01 23 45 67 89 ab cd ef
got fcp response from node 1 of 8 bytes : 01 23 45 67 89 ab cd ef
polling for leftover messages

Capturer la vidéo avec dvgrab

dvgrab permet de récupérer en ligne de commande la vidéo de votre mini-dv. Ce logiciel est assez simple d'utilisation. Utilisez la version 1.3 (ou supérieur) qui est interactive et très intuitive dans son utilisation. Il faut compter pas loin de 14 Go d'espace disque pour capturer une heure de DV.

Utilisation de dvgrab en mode interactif :

[guibo@xp2400 ~/]# dvgrab -i
Going interactive. Press '?' for help.
q=quit, p=play, c=capture, Esc=stop, h=reverse, j=backward scan, k=pause        
l=forward scan, a=rewind, z=fast forward, 0-9=trickplay, space=play/pause
"Playing Paused" ff :ff :ff :ff ""          sec

Lancer la capture de la vidéo :

[guibo@xp2400 ~/]# dvgrab -i --format dv2 --timestamp --autosplit outfile

Pressez a pour rembobiner la cassette au début, puis c pour lancer la capture. Cela prendra le temps d'enregistrement de votre vidéo (soit une heure pour une cassette complète)

  • "-i" mode interactif lecture et capture vidéo
  • "--format dv2" sauve en utilisant le format "Type 2 DV"
  • "--timestamp" ajoute la date et l'heure sur le fichier
  • "--autosplit" crée un nouveau fichier à chaque séquence vidéo
  • "outfile" nom de base du fichier d'enregistrement

Cela va créer des fichiers du type outfile1998.12.04_16-14-22.avi dans votre répertoire de travail. Ce sont ces fichiers que nous utiliserons pour faire le montage sous Kino. Attention dans certains cas, le mini-DV ne gère pas la date-heure, et donc chaque nouvelle séquence vidéo capturée et enregistrée efface l'ancienne (outfile000-000-000--0-00-0.avi). Dans ce cas ne pas utiliser --timestamp et --autosplit , mais --size 2048 pour couper le fichier tous les 2048Mo. Attention à ne pas travailler avec des fichiers .avi d'une taille supérieure, sinon vous risquez de rencontrer des problèmes de son, et certain encodeurs vidéos ne le supportent pas.

Screenshot première image de la vidéo

Pour se repérer dans les vidéos, rien de tel qu'un screenshot de la première image du .avi. Transcode est bien pratique pour faire cela, même si la quantité d'arguments à lui spécifier peut faire peur.

[guibo@xp2400 ~/]# transcode -a 0 -c 1 -x dv -i fichier.avi -y jpg -o screenshot.jpg
  • "-a 0" channel audio à extraire
  • "-c 1" convertir seulement une image
  • "-x dv" définit le type de fichier à convertir
  • "-i" nom du fichier à convertir
  • "-y jpg" type de format de sortie
  • "-o" fichier de sortie

Il arrive parfois que les couleurs ne soient pas correctes, et que l'image soit inversée, dans ce cas-là, utiliser l'option "-V" et tout devrait rentrer dans l'ordre. Vous pouvez aussi faire des screenshots de fichiers vidéo sans préciser le format d'entrée du fichier, dans ce cas retirez l'option "-x format_vidéo".

Convertir l'image avec convert de ImageMagick

[guibo@xp2400 ~/]# convert -verbose -size 320x200 screenshot.jpg screenshot.jpg
  • "-verbose" expliquer ce qu'il effectue
  • "-size" définir la taille

Il vous suffira ensuite de reprendre ces images dans un document OpenOffice ou autre, pour vous faire une jaquette pour votre DVD de salon.

Url externes

Utilisation de kino

kino et vos fichiers

Une fois la capture de vos vidéos terminée, il faut faire un montage vidéo. Kino permet de faire de nombreux traitements sur la vidéo, mais nous nous intéresserons plus particulièrement à sa configuration, pour obtenir un format de sortie DVD.

lancez Kino en ouvrant toutes les vidéos que vous avez capturées :

[guibo@xp2400 ~/]# kino *.avi

Figure 3.1. vous devriez obtenir quelque chose ressemblant à ça :

Effectuez toutes les opérations nécessaires au traitement de vos vidéos. Vous trouverez la doc complète de Kino sur son site web :http://kino.schirmacher.de/article/archive/13/

Personnellement j'utilise beaucoup le "Commands/Append Movie" qui permet de fusionner les séquences vidéos (virtuellement les fichiers .avi restent inchangés). Ce qui permet de faire un regroupement des vidéos, et donc plus tard de faire des "Chapitres" pour notre futur DVD.

N'oubliez pas de sauver votre projet "File/Save As SMIL" pour pouvoir le rééditer plus simplement plus tard.

Configuration de kino

Voici la configuration que j'utilise dans kino pour obtenir mes fichiers .mpeg. J'utiliserai ensuite ces .mpeg pour créer mes .VOB du futur DVD.

Figure 3.2. Cliquez sur longlet "Export" puis "MPEG"

Ajustez votre configuration comme ci-dessus

  • File : le nom de base des fichiers de sortie (il rajoutera l'extension .mpeg)
  • File Format : dans notre cas choisir "8 - DVD"
  • Deinterlace : désinterlace la video
  • Video Pipe :
    • "-v 1" niveau de log normal
    • "-q 2" Image data quantisation factor (1 est la meilleure qualité)
    • "-M 0" active le multi-threading (mettre 1 ou plus si vous avez plusieurs CPU)
  • Audio Encoding :"-v 1" active le niveau de log à normal
  • Multiplexer :
    • "-v 1" niveau de log normal
    • "-b 230" spécifie le decoder buffers en kB
    • "-V" Multiplex variable bit-rate video
    • "-f 8" se met automatiquement, ne PAS rajouter cette option
  • Scene split : génère autant de fichier .mpeg qu'il y a de .avi. Il faut mettre cette option si vous voulez avoir un DVD avec des chapitres correspondant à chaque vidéo.
  • Cleanup : retire les fichiers .mpeg en cas d'erreur

Lancez l'exportation

Figure 3.3. Cliquez sur le bouton "Export"

L'exportation en format DVD se lance :-)

Vous devriez avoir les fichiers suivants dans votre répertoire :

[guibo@xp2400 ~/]# 	ls -1 *.mpeg
dvd_out000_001.mpeg
dvd_out001_001.mpeg
dvd_out002_001.mpeg
dvd_out003_001.mpeg
dvd_out004_001.mpeg
dvd_out005_001.mpeg

Url externes

Utilisation de transcode

Ce logiciel est vraiment le couteau suisse du montage vidéo. C'est comme emacs, ça fait tout ! Je vais juste vous montrer les options qui sont intéressantes pour convertir au format DVD.

Méthode : --export_prof dvd

transcode supporte plusieurs profils d'exportation vidéo : --export_prof. Il suffit de lui préciser lequel utiliser, dans notre cas le profil dvd.

[guibo@xp2400 ~/]# transcode -a 0 -i nom_video.avi -Q 5,5 -o fichier_converti -I 3 --export_prof dvd
  • "-a 0" extrait l'audio, track 0
  • "-i" fichier d'entrée vidéo
  • "-o" fichier vidéo converti
  • "-Q 5,5" qualité encodage, décodage (0=rapide, 5=excellent)
  • "-I 3" active le désinterlacing ("zoom to full frame")
  • "--export_prof dvd" profil d'exportation en dvd

Cette méthode fonctionne très bien, mais ne donne pas à mon gout un très bon résultat comparé à l'exportation via kino.

Méthode utilisant mpeg2enc,mp2enc

On utilise juste transcode comme flux d'entrée vidéo, et on l'exporte en utilisant mpeg2enc. Bon je sais la ligne de commande suivante est vraiment... comment dire, affreuse... mais croyez moi ça fonctionne parfaitement.

[guibo@xp2400 ~/]# transcode -a 0 -i nom_video.avi -w 9500 -b 224
--encode_fields b \
--export_asr 2 \
-u 10,2 -I 5 \
-F 8,'-v 0 -S 4400 -a 2 -K kvcd -q 2 -N 1' \
-y mpeg2enc,mp2enc -o fichier_converti \
--print_status 100
  • "-w 9500" encodeur bitrate : utilisez au moins 6000
  • "-b 224" audio encodeur bitrate
  • "--encode_fields b" encodage par champs (progressif)
  • "--export_asr 2" format d'exportation : 4 :3
  • "-u 10,2" utilisez 10 framebuffer,2 threads
  • "-I 5" active le désinterlacing ("interpolate scanlines/blend frames")
  • "-F 8" paramètre de l'encodeur en format DVD
  • "-y mpeg2enc,mp2enc" encodage passé à mpeg2enc
  • "--print_status 100" affiche le status tous les 100 frames
  • "-o"  : spécifie le fichier de sortie, transcode rajoutera .mpa pour l'audio, et .m2v pour la vidéo.
  • arguments passés à mpeg2enc :
  • "-v 0" niveau de log nul
  • "-S 4400" taille du fichier 4.4go
  • "-a 2" aspect ratio 4 :3
  • "-K kvcd" matrice de quantization kvcd (tmpgenc,default,hi-res)
  • "-q 2" quantization minimum de 2
  • "-N 1" réduit les informations Haute-Fréquences 50 à 2)

Une fois la conversion du DV en .m2v et .mpa, on va fusionner le son et la vidéo dans un meme fichier. Pour cela on utilise mplex.

[guibo@xp2400 ~/]# mplex -v 1 -f 8 -S 4400 -o video_fini.mpeg fichier_converti.m2v fichier_converti.mpa
  • "-v 1" niveau de log normal
  • "-f 8" format DVD
  • "-S 4400" taille du fichier à 4.4go
  • "-o" fichier de sortie

Url externes

Utilisation de dvdauthor

dvdauthor

Ce logiciel permet de créer votre DVD avec les chapitres pour chaque fichiers .mpeg.

Maintenant il s'agit de construire la structure des répertoires du DVD. Placez-vous dans le répertoire où il y a les fichiers .mpeg et tapez :

[guibo@xp2400 ~/]# dvddirgen -o dvd -r
  • "-o" crée la structure du répertoire du DVD
  • "-r" efface l'ancien répertoire dvd

Il semblerait que sur les dernières versions de dvdauthor, l'utilisation de dvddirgen ne soit plus obligatoire, donc s'il ne crée pas le répertoire désiré (dvd dans notre cas), passez à l'étape suivante.

Maintenant nous allons créer les .VOB à partir des .mpeg de notre répertoire.

[guibo@xp2400 ~/]# dvdauthor -o dvd *.mpeg
  • "-o" spécifie d'utiliser le répertoire dvd

dvdauthor va créer automatiquement un chapitre par .mpeg dans votre répertoire.

Pour finir nous allons créer la TOC de notre DVD, qui permettra de savoir où se trouve quel chapitre. En fait cela va fabriquer les fichiers vidéo_TS.BUP et vidéo_TS.IFO.

[guibo@xp2400 ~/]# dvdauthor -T -o dvd
  • "-T" crée la TOC du DVD (table of content)

qdvdauthor

J'ai longtemps cherché un logiciel capable de m'aider dans la création de menu interactif sur un DVD. qdvdauthor, bien qu'en release alpha, permet de le faire assez simplement. Il faudra faire quelques modifications à la main pour ajuster la configuration, mais il est très pratique pour créer le menu, avec un image en arrière-plan, et ajouter des boutons pour aller directement au chapitre voulu./p>

Url externes

Graver son DVD

Créer l'image iso du DVD

Nous avons désormais toute la structure de notre DVD, reste à créer l'image iso au format DVD, puis la graver, et la tester sur votre platine salon. Nous allons utiliser mkisofs pour créer cette image iso.

[guibo@xp2400 ~/]# mkisofs -o /tmp/dvdvideo.iso -V NOMVOLUME -dvd-video repertoire_dvd
  • "-o" spécifie où stocker l'image iso (ici /tmp/dvdvideo.iso)
  • "-V" nom du volume sur le futur DVD
  • "-dvd-video" option OBLIGATOIRE pour avoir un iso DVD
  • "repertoire_dvd" l'emplacement du répertoire où se trouvent les fichiers du futur DVD

vérification de l'iso

Nous allons maintenant vérifier que notre iso contient la bonne structure de répertoires et les bons fichiers.

 [guibo@xp2400 ~/]# isoinfo -l -i /tmp/dvdvideo.iso
 Directory listing of /
 d---------   0    0    0            2048 Nov 14 2003 [    275 02]  . 
 d---------   0    0    0            2048 Nov 14 2003 [    275 02]  .. 
 d---------   0    0    0            2048 Nov 14 2003 [    277 02]  AUDIO_TS 
 d---------   0    0    0            2048 Nov 14 2003 [    276 02]  vidéo_TS 

 Directory listing of /AUDIO_TS/
 d---------   0    0    0            2048 Nov 14 2003 [    277 02]  . 
 d---------   0    0    0            2048 Nov 14 2003 [    275 02]  .. 

 Directory listing of /vidéo_TS/
 d---------   0    0    0            2048 Nov 14 2003 [    276 02]  . 
 d---------   0    0    0            2048 Nov 14 2003 [    275 02]  .. 
 ----------   0    0    0            6144 Nov 14 2003 [    281 00]  vidéo_TS.BUP;1 
 ----------   0    0    0            6144 Nov 14 2003 [    278 00]  vidéo_TS.IFO;1 
 ----------   0    0    0           28672 Nov 14 2003 [ 832133 00]  VTS_01_0.BUP;1 
 ----------   0    0    0           28672 Nov 14 2003 [    284 00]  VTS_01_0.IFO;1 
 ----------   0    0    0      1073709056 Nov 14 2003 [    298 00]  VTS_01_1.VOB;1 
 ----------   0    0    0       629889024 Nov 14 2003 [ 524570 00]  VTS_01_2.VOB;1 
  • "-l" liste le contenu de l'iso (comme ls -lR)
  • "-i" spécifie l'image iso

Astuce pour tester l'iso

Il est très désagréable de graver une image iso non compatible DVD sur votre platine salon, surtout que même si le prix des DVD a baissé, il reste non négligeable. Voila donc comment tester votre DVD, en faisant croire à xine, mplayer ou ogle (en fait n'importe quel player de DVD linux) qu'il s'agit d'un DVD inséré dans votre lecteur.

Tout d'abord repérer quel périphérique pointe vers votre lecteur de DVD, pour pouvoir le restaurer ensuite :

[guibo@xp2400 ~/]# ls -la /dev/dvd
lr-xr-xr-x  1 root root 30 Jun 25 19 :48 /dev/dvd -> ide/host0/bus1/target0/lun0/cd

Notre lecteur DVD pointe donc vers ide/host0/bus1/target0/lun0/cd qui n'est autre que /dev/hdc comme nous le confirmera un :

[guibo@xp2400 ~/]# dmesg | grep -i dvd

Ensuite effectuer ces manipulations pour faire croire à un DVD inséré dans votre lecteur DVD :

[root@xp2400 ~/]# mkdir /mnt/dvd_test/
[root@xp2400 ~/]# mount /tmp/dvdvideo.iso /mnt/dvd_test/ -o loop
[root@xp2400 ~/]# ln -sf /mnt/dvd_test /dev/dvd

Lancez xine et cliquez sur DVD ou ogle ou tout autre player DVD sous linux , et vous devriez normalement être capable de parcourir les chapitres de votre futur DVD de salon. C'est que votre iso est bonne à être gravée. Nous allons désormais démonter l'image iso, et rétablir le lien /dev/dvd pour qu'il pointe de nouveau sur le bon device. Cette manipulation nécessite d'être root.

[root@xp2400 ~/]# umount /mnt/dvd_test/
[root@xp2400 ~/]# ln -sf /dev/ide/host0/bus1/target0/lun0/cd /dev/dvd

Et voila, il ne nous reste plus qu'à graver cette image iso :-)

Gravez l'image iso

L'ultime étape consiste à graver cette iso, puis à la tester. Pour cela j'utilise les outils de dvd+rw-tools. Il existe aussi k3b-dvd qui est très pratique et fonctionne parfaitement bien pour graver CD/DVD. A noter que si vous gravez l'iso sur un DVD+RW (DVD réinscriptibles), certains lecteurs de DVD ne les supportent pas.

[guibo@xp2400 ~/]# growisofs -Z /dev/scd0=/tmp/dvdvideo.iso
  • "-Z" spécifie le device, et l'image iso à graver

Voila c'est fini. Vous Pouvez courrir vers votre Platine DVD de salon pour tester :-) J'espère que tous s'est bien déroulé. N'oubliez pas de me contacter en cas d'oublis, erreurs ou tout simplement si vous avez aimé.

Url externes

Voila les scripts Vidéo que j'utilise chez moi

  • doall-video : probe les modules, convertit en Divx5, capture la video... [doall-video.txt (DL doall-video)]
  • dus : fait la somme "extension" des fichiers d'un répertoire [dus.txt dus]
  • dvdvideo : crée l'image iso DVD et la grave [dvdvideo.txt (DL dvdvideo)]
  • cluster_transcode : permet de gérer du transcode sur plusieurs PC (Mandrakeclustering rulez) [cluster_transcode.txt (DL cluster_transcode)]
Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Antoine le 25/06/2004.