Convertir mini DV vers DVD de salon

Antoine Ginies (guibo_at_guibo.com)

2004

Historique des versions
Version 0.425 juin 2004ag
qqs corrections | ajout astuce test de l'iso
Version 0.322 avril 2004ag
correction orthographe (thx Anne) |section transcode
Version 0.114 novembre 2003ag
first release

Table des matières

1. Introduction
1.1. but de ce document ?
1.2. Pourquoi ?
1.3. Mon matos
1.4. Logiciels utilisés
1.5. Oublis, Erreurs
2. Récupération de la vidéo
2.1. Carte firewire
2.2. Capturer la vidéo avec dvgrab
2.3. Screenshot première image de la vidéo
2.4. Url externes
3. Utilisation de kino
3.1. kino et vos fichiers
3.2. Configuration de kino
3.3. Lancez l'exportation
3.4. Url externes
4. Utilisation de transcode
4.1. Méthode: --export_prof dvd
4.2. Méthode utilisant mpeg2enc,mp2enc
4.3. Url externes
5. Utilisation de dvdauthor
5.1. dvdauthor
5.2. qdvdauthor
5.3. Url externes
6. Graver son DVD
6.1. Créer l'image iso du DVD
6.2. vérification de l'iso
6.3. Astuce pour tester l'iso
6.4. Gravez l'image iso
6.5. Url externes
7. Voila les scripts Vidéo que j'utilise chez moi
7.1. all

Liste des illustrations

3.1. vous devriez obtenir quelques choses ressemblant à ça:
3.2. Cliquez sur longlet "Export" puis "MPEG"
3.3. Cliquez sur le bouton "Export"

Chapitre 1. Introduction

1.1. 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. Vous pouvez aussi telechargez cette doc au format pdf pour pouvoir l'imprimer: dvtodvd.pdf

1.2. 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 dis que créer une doc en français regroupant toutes les informations serait une bonne idée.

1.3. Mon matos

  • 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 double), en , 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 a partir de votre caméscope :-)

1.4. 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

1.5. 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.

Chapitre 2. Récupération de la vidéo

2.1. Carte firewire

Il faut avoir un kernel qui supporte le ieee1394, sinon votre carte firewire ne marchera 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

2.2. 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 d'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 utiliseront pour faire le montage sous Kino. Attention dans certain 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érieur, sinon vous risquez de rencontrer des problèmes de son, et certain encodeurs vidéos ne le supportent pas.

2.3. 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 ça, même si la quantité d'arguments à lui spécifier peu 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éfini 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 la utilise l'option "-V" et tout devrait rentrer dans l'ordre. Vous pouvez aussi faire des screenshots de fichier vidéo sans précisez 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 jacquette pour votre DVD de salon.

2.4. Url externes

Chapitre 3. Utilisation de kino

3.1. 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 quelques choses ressemblant à ça:

vous devriez obtenir quelques choses ressemblant à ça:

Effectuez toutes les opérations nécessaires au traitement de vos VIDEO. 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 (virtuellemnt les fichiers .avi restent inchangé). 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éediter plus simplement plus tard.

3.2. Configuration de kino

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

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

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 a 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 Video.

  • Cleanup: retire les fichiers .mpeg en cas d'erreur

3.3. Lancez l'exportation

Figure 3.3. Cliquez sur le bouton "Export"

Cliquez sur le bouton "Export"

L'exportation en format DVD se lance :-)

Vous devriez avoir les fichiers suivant 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

Chapitre 4. Utilisation de transcode

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

4.1. Méthode: --export_prof dvd

transcode supporte plusieurs profils d'exportation vidéo: --export_prof. Il suffit de lui précisez 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=excelent)

  • "-I 3" active le de-interlacing ("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é a l'exportation via kino.

4.2. Méthode utilisant mpeg2enc,mp2enc

On utilise juste transcode comme flux d'entrée video, et on l'export en utilisant mpeg2enc. Bon je sais la ligne de commande suivante est vraiment... comment dire, affreuse... mais croyez moi ca marche 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 de-interlacing ("interpolate scanlines/blend frames")

  • "-F 8" paramètre de l'encodeur en format DVD

  • "-y mpeg2enc,mp2enc" encodage passé a 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 a mpeg2enc:

  • "-v 0" niveau de log null

  • "-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 merger 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 a 4.4go

  • "-o" fichier de sortie

Chapitre 5. Utilisation de dvdauthor

5.1. 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 ou 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 si 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 a 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 ou se trouve quelle chapitre. En fait cela va fabriquer les fichiers VIDEO_TS.BUP et VIDEO_TS.IFO.

[guibo@xp2400 ~/]# dvdauthor -T -o dvd

  • "-T" crée la TOC du DVD (table of content)

5.2. qdvdauthor

J'ai longtemps chercher un logiciel capable de m'aider dans la création de menu interactif sur un DVD. qdvdauthor bien q'en release alpha permet de le faire assez simplement. il faudra faire quelques modifications à la main pour ajuster la conf, mais il est très pratique pour créer le menu, avec un image en background, et ajouter des bouttons pour aller directement au chapitre voulu.

5.3. Url externes

Chapitre 6. Graver son DVD

6.1. 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 ou 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 ou se trouve les fichiers du futur DVD

6.2. 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]  VIDEO_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 /VIDEO_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]  VIDEO_TS.BUP;1 
----------   0    0    0            6144 Nov 14 2003 [    278 00]  VIDEO_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

6.3. 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 à baisser, il ne reste pas 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érer 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érer 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 graver. 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 :-)

6.4. Gravez l'image iso

L'ultime étape consiste à graver cette iso, puis de 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 courir vers votre Platine DVD de salon pour tester :-) J'espère que tous c'est bien déroulé. N'oubliez pas de me contacter en cas d'oublis, erreurs ou tout simplement si vous avez aimez.

6.5. Url externes

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

Table des matières

7.1. all

Ils sont certainement inadaptés à votre configuration, mais si ça peut vous donnez des idées...

7.1. all

  • doall-video: probe les modules, converti en Divx5, capture la video... (DL doall-video)

  • dus: fait la somme "extension" des fichiers d'un répertoire dus

  • dvdvideo: crée l'image iso DVD et la grave (DL dvdvideo)

  • cluster_transcode: permet de gérer du transcode sur plusieurs PC (Mandrakeclustering rulez) (DL cluster_transcode)

Valid XHTML 1.0! Valid CSS!