14.7. Utiliser MEncoder pour créer des fichiers compatibles VCD/SVCD/DVD.
Précédent | Chapitre 14. L'encodage avec MEncoder | Suivant

## 14.7. Utiliser MEncoder pour créer des fichiers compatibles VCD/SVCD/DVD.

### 14.7.1. Contraintes de Format

MEncoder est capable de créer des fichiers MPEG aux formats VCD, SCVD et DVD en utilisant la bibliothèque `libavcodec`. Ces fichiers peuvent ensuite être utilisés avec vcdimager ou dvdauthor pour créer des disques lisibles par une platine de salon standard.

Les formats DVD, SVCD, et VCD sont très contraignants. Seule un faible nombre de résolutions et de formats d'image sont acceptés. Si votre film ne respecte pas ces conditions, vous devrez redimensionner, recadrer ou ajouter des bords noirs à l'image pour le rendre compatible.

#### 14.7.1.1. Contraintes de format

Format | Résolution | Codec vidéo | débit vidéo en kbit/s | Taux d'échantillonnage | Codec audio | débit audio en kbit/s | images par seconde | format d'image
--- | --- | --- | --- | --- | --- | --- | --- | ---
NTSC DVD | 720x480, 704x480, 352x480, 352x240 | MPEG-2 | 9800 | 48000 Hz | AC3,PCM | 1536 (max) | 30000/1001, 24000/1001 | 4:3, 16:9 (seulement pour 720x480)
NTSC DVD | 352x240[a] | MPEG-1 | 1856 | 48000 Hz | AC3,PCM | 1536 (max) | 30000/1001, 24000/1001 | 4:3, 16:9
NTSC SVCD | 480x480 | MPEG-2 | 2600 | 44100 Hz | MP2 | 384 (max) | 30000/1001 | 4:3
NTSC VCD | 352x240 | MPEG-1 | 1150 | 44100 Hz | MP2 | 224 | 24000/1001, 30000/1001 | 4:3
PAL DVD | 720x576, 704x576, 352x576, 352x288 | MPEG-2 | 9800 | 48000 Hz | MP2,AC3,PCM | 1536 (max) | 25 | 4:3, 16:9 (seulement pour 720x576)
PAL DVD | 352x288[a] | MPEG-1 | 1856 | 48000 Hz | MP2,AC3,PCM | 1536 (max) | 25 | 4:3, 16:9
PAL SVCD | 480x576 | MPEG-2 | 2600 | 44100 Hz | MP2 | 384 (max) | 25 | 4:3
PAL VCD | 352x288 | MPEG-1 | 1152 | 44100 Hz | MP2 | 224 | 25 | 4:3
[a] Ces résolutions sont rarement utilisées pour les DVDs parce qu'elles sont d'assez basse qualité.

Si votre film est au format 2,35:1 (la plupart des films d'action récents), vous devrez ajouter des bords noirs ou recadrer le film en 16:9 pour faire un DVD ou un VCD. Si vous ajoutez des bords noirs, essayez qu'ils soient d'une épaisseur multiple de 16 de façon à minimiser l'impact sur la performance d'encodage. Le DVD a heureusement un débit suffisamment élevé pour que vous n'ayez pas trop à vous inquiéter pour l'efficacité de l'encodage, par contre, le SVCD et le VCD sont très limités en débit et demandent des efforts pour obtenir une qualité acceptable.

#### 14.7.1.2. Contraintes de Taille GOP

Les DVD, VCD, et SVCD vous contraignent aussi à des tailles relativement basses de GOP (Group of Pictures ou "Groupe d'Images"). Pour des vidéo à 30 images par secondes, la plus large taille de GOP permise est 18. Pour 25 ou 24 images par secondes, le maximum est 15. La taille du GOP est réglée en utilisant l'option `keyint`.

#### 14.7.1.3. Contraintes de débit

Le format VCD requière que le débit de votre vidéo soit constant (CBR) à 1152 kbit/s. A cette forte contrainte, il faut ajouter la très petite taille de la mémoire tampon VBV: 327 kbits. Le SVCD autorise des débits vidéo variables jusqu'à 2500 kbit/s et une taille de mémoire tampon VBV légèrement moins restrictive de 917 kbits. Les débits vidéo DVD peuvent aller jusqu'à 9800 kbit/s (bien que les débits typiques soient d'à peu près la moitié) et la taille de la mémoire tampon VBV est de 1835 kbits.

### 14.7.2. Options de sortie

MEncoder a des options de contrôle du format de sortie. En utilisant ces options nous pouvons lui dire de créer le type de fichier correct.

Les options pour le VCD et le SVCD sont appelées xvcd et xsvcd, parce que ce sont des formats étendus. Elles ne sont pas strictement conformes, principalement parce que la sortie ne contient pas de décalages de scan. Si vous avez besoin de générer une image SVCD, vous devriez passer le fichier de sortie à vcdimager.

VCD:

      -of mpeg -mpegopts format=xvcd

SVCD:

      -of mpeg -mpegopts format=xsvcd

DVD:

      -of mpeg -mpegopts format=dvd

DVD avec pullup NTSC:

      -of mpeg -mpegopts format=dvd:telecine -ofps 24000/1001

Ceci permet au contenu progressif à 24000/1001 images par secondes d'être encodé à 30000/1001 images par secondes tout en restant avec le format DVD.

#### 14.7.2.1. Format d'image

L'argument `aspect` de `-lavcopts` est utilisé pour encoder le format d'image du fichier. Durant la lecture le format d'image est utilisé pour redonner à la vidéo la taille correcte.

16:9 ou "Écran Large"

      -lavcopts aspect=16/9

4:3 ou "Plein Écran"

      -lavcopts aspect=4/3

2,35:1 ou NTSC "Cinémascope"

      -vf scale=720:368,expand=720:480 -lavcopts aspect=16/9

Pour calculer la taille de dimensionnement correcte, utilisez la largeur étendue NTSC de 854/2,35 = 368

2,35:1 ou PAL "Cinémascope"

      -vf scale="720:432,expand=720:576 -lavcopts aspect=16/9

Pour calculer la taille de dimensionnement correcte, utilisez la largeur étendue PAL de 1024/2,35 = 432

#### 14.7.2.2. Maintaining A/V sync

Afin de maintenir la synchronization audio/video lors de l'encodage, MEncoder doit dupliquer ou effacer des images. Cela marche plutôt bien lor du multiplexage dans un fichier AVI mais il est pratiquement garanti d'échouer à maintenir la synchronisation A/V avec d'autres conteneurs tel que le MPEG. C'est pourquoi il est nécessaire d'ajouter le filtre vidéo `harddup` à la fin de la chaîne de filtre pour éviter ce type de problème. Vous pouvez trouver plus de détails techniques sur `harddup` dans la section Améliorer la fiabilité du multiplexage et de la synchronisation Audio/Video ou dans le manuel.

#### 14.7.2.3. Conversion du Taux d'échantillonnage

Si le taux d'échantillonnage de l'audio du fichier original n'est pas le même que celui demandé par le format cible, la conversion du taux d'échantillonnage est nécessaire. Ceci est réalisé en utilisant ensemble l'option `-srate` et le filtre audio `-af lavcresample`.

DVD:

      -srate 48000 -af lavcresample=48000

VCD et SVCD:

      -srate 44100 -af lavcresample=44100

### 14.7.3. Utiliser libavcodec pour l'encodage VCD/SVCD/DVD

#### 14.7.3.1. Introduction

`libavcodec` peut être utilisé pour créer des vidéos compatibles avec les standards VCD/SVCD/DVD en utilisant les options appropriées.

#### 14.7.3.2. lavcopts

Ceci est une liste de champs de `-lavcopts` que vous pourriez avoir besoin de changer si vous voulez faire un film compatible VCD, SVCD, ou DVD:

- acodec: `mp2` pour le VCD, le SVCD, ou le DVD PAL; `ac3` est plus communément utilisé pour le DVD. L'audio PCM peut aussi être utilisé pour le DVD, mais c'est principalement une grande perte d'espace. Notez que l'audio MP3 n'est compatible avec aucun de ces formats, cependant les lecteurs n'ont souvent aucun problème pour les jouer.

- abitrate: (débit audio) 224 pour le VCD; jusqu'à 384 pour le SVCD; jusqu'à 1536 pour le DVD, mais utilise communément une gamme de valeurs de 192 kbit/s pour le stéréo à 384 kbit/s pour le son canaux 5.1.

- vcodec: `mpeg1video` pour le VCD; `mpeg2video` pour le SVCD; `mpeg2video` est habituellement utilisé pour le DVD mais on peut aussi utiliser `mpeg1video` pour des résolutions CIF.

- keyint: Utilisé pour régler la taille du GOP. 18 pour les vidéo à 30 images par secondes, ou 15 pour les vidéos à 25/24 images par secondes. Les producteurs commerciaux semblent préférer des intervalles entre images clés de 12. Il est possible d'augmenter cette valeur et de rester compatible avec la plupart des lecteurs. Un `keyint` de 25 ne devrait jamais causer de problèmes.

- vrc_buf_size: 327 pour le VCD, 917 pour le SVCD, et 1835 pour le DVD.

- vrc_minrate: 1152, pour le VCD. Peut être laissé de côté pour le SVCD et le DVD.

- vrc_maxrate: 1152 pour le VCD; 2500 pour le SVCD; 9800 pour le DVD. Pour le SVCD et le DVD, vous pourriez vouloir utiliser des valeurs plus basses selon vos préférences et contraintes personnelles.

- vbitrate: (débit vidéo) 1152 pour le VCD; jusqu'à 2500 pour le SVCD; jusqu'à 9800 pour le DVD. Pour les deux derniers formats, les valeurs de vbitrate devrait être réglées selon vos goûts. Par exemple, si vous voulez vraiment faire tenir 20 heures ou plus sur un DVD, vous pouvez utiliser vbitrate=400. La qualité de la vidéo résultante sera probablement assez mauvaise. Si vous essayez d'avoir la qualité maximum possible sur un DVD, utilisez vbitrate=9800, mais sachez que cela pourrait vous forcer à ne stocker que moins d'une heure de vidéo sur un DVD simple couche.

#### 14.7.3.3. Exemples

Ceci est un paramétrage typique minimal de `-lavcopts` pour encoder une vidéo:

VCD:

      -lavcopts vcodec=mpeg1video:vrc_buf_size=327:vrc_minrate=1152:\
      vrc_maxrate=1152:vbitrate=1152:keyint=15:acodec=mp2

SVCD:

      -lavcopts vcodec=mpeg2video:vrc_buf_size=917:vrc_maxrate=2500:vbitrate=1800:\
      keyint=15:acodec=mp2

DVD:

      -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\
      keyint=15:acodec=ac3

#### 14.7.3.4. Options Avancées

Pour une qualité d'encodage plus élevée, vous pouvez aussi souhaiter ajouter des options d'amélioration de qualité à lavcopts, comme `trell`, `mbd=2` et autres. Notez que, bien que `qpel` et `v4mv` soient souvent utile avec le MPEG-4, elles ne sont pas utilisables avec MPEG-1 ou MPEG-2. Aussi, si vous essayez de créer un encodage DVD de très haute qualité, il peut être utile d'ajouter `dc=10` à lavcopts. Le faire peut aider à réduire l'apparition de blocs dans les zones de faible variations de couleurs. Pour résumer, la ligne suivante est un exemple de paramétrage de lavcopts pour un DVD de haute qualité:

      -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=8000:\
      keyint=15:trell:mbd=2:precmp=2:subcmp=2:cmp=2:dia=-10:predia=-10:cbp:mv0:\
      vqmin=1:lmin=1:dc=10

### 14.7.4. Encodage Audio

Le VCD et SVCD supportent l'audio MPEG-1 layer II, en utilisant un des encodeurs MP2 `toolame`, `twolame`, ou `libavcodec`. Le MP2 libavcodec est loin d'être aussi bon que les deux autres bibliothèques, cependant il devrait toujours être disponible en utilisation. Le VCD ne supporte que l'audio avec un débit constant (CBR) alors que le SVCD supporte aussi le débit variable (VBR). Soyez prudents lors de l'utilisation du VBR car certains mauvais lecteurs pourraient ne pas trop bien le supporter.

Pour l'audio DVD, le codec AC3 de `libavcodec` est utilisé.

#### 14.7.4.1. toolame

Pour un VCD et un SVCD:

      -oac toolame -toolameopts br=224

#### 14.7.4.2. twolame

Pour un VCD et un SVCD:

      -oac twolame -twolameopts br=224

#### 14.7.4.3. libavcodec

Pour un DVD avec un son 2 canaux:

      -oac lavc -lavcopts acodec=ac3:abitrate=192

Pour un DVD avec un son 5,1 canaux:

      -channels 6 -oac lavc -lavcopts acodec=ac3:abitrate=384

Pour un VCD et un SVCD:

      -oac lavc -lavcopts acodec=mp2:abitrate=224

### 14.7.5. Combiner le tout

Cette section présente certaines commandes complètes pour créer des vidéos compatibles VCD/SVCD/DVD.

#### 14.7.5.1. DVD PAL

      mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd -vf scale=720:576,\
      harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:\
      vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=15:acodec=ac3:\
      abitrate=192:aspect=16/9 -ofps 25 \
      -o film.mpg film.avi

#### 14.7.5.2. DVD NTSC

      mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd -vf scale=720:480,\
      harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:\
      vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=18:acodec=ac3:\
      abitrate=192:aspect=16/9 -ofps 30000/1001 \
      -o film.mpg film.avi

#### 14.7.5.3. AVI PAL Contenant Audio AC3 vers DVD

Si la source a déjà l'audio en AC3, utilisez `-oac copy` au lieu de la réencoder.

      mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd -vf scale=720:576,\
      harddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:\
      vbitrate=5000:keyint=15:aspect=16/9 -ofps 25 \
      -o film.mpg film.avi

#### 14.7.5.4. AVI NTSC Contenant Audio AC3 vers DVD

Si la source a déjà l'audio en AC3, et est en NTSC @ 24000/1001 fps:

      mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd:telecine \
      -vf scale=720:480,harddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:\
      vrc_maxrate=9800:vbitrate=5000:keyint=15:aspect=16/9 -ofps 24000/1001 \
      -o film.mpg film.avi

#### 14.7.5.5. SVCD PAL

      mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xsvcd -vf \
      scale=480:576,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
      vcodec=mpeg2video:mbd=2:keyint=15:vrc_buf_size=917:vrc_minrate=600:\
      vbitrate=2500:vrc_maxrate=2500:acodec=mp2:abitrate=224 -ofps 25 \
      -o film.mpg film.avi

#### 14.7.5.6. SVCD NTSC

      mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xsvcd  -vf \
      scale=480:480,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
      vcodec=mpeg2video:mbd=2:keyint=18:vrc_buf_size=917:vrc_minrate=600:\
      vbitrate=2500:vrc_maxrate=2500:acodec=mp2:abitrate=224 -ofps 30000/1001 \
      -o film.mpg film.avi

#### 14.7.5.7. VCD PAL

      mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf \
      scale=352:288,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
      vcodec=mpeg1video:keyint=15:vrc_buf_size=327:vrc_minrate=1152:vbitrate=1152:\
      vrc_maxrate=1152:acodec=mp2:abitrate=224 -ofps 25 \
      -o film.mpg film.avi

#### 14.7.5.8. VCD NTSC

      mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf \
      scale=352:240,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
      vcodec=mpeg1video:keyint=18:vrc_buf_size=327:vrc_minrate=1152:vbitrate=1152:\
      vrc_maxrate=1152:acodec=mp2:abitrate=224 -ofps 30000/1001 \
      -o film.mpg film.avi

Précédent | Niveau supérieur | Suivant
14.6. Encoder avec la famille de codecs `Video For Windows` | Sommaire | Annexe A. Comment rapporter les bogues