13.6. Utiliser MEncoder pour créer des fichiers conforme VCD/SVCD/DVD.

13.6.1. Contraintes de Format

MEncoder est capable de créer des fichiers MPEG au format 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 sujets à de lourdes contraintes. Seule une petite sélection des tailles d'image encodée et taux d'aspect est disponible. Si votre film ne respecte pas déjà ces conditions, vous pouvez avoir à dimensionner, découper ou ajouter des bords noirs à l'image pour la rendre conforme.

13.6.1.1. Contraintes de format

FormatRésolutionV. CodecV. BitrateTaux d'échantillonnageA. CodecA. BitrateFPSAspect
NTSC DVD720x480, 704x480, 352x480, 352x240MPEG-29800 kbps48000 HzAC3,PCM1536 kbps (max)30000/1001, 24000/10014:3, 16:9 (seulement pour 720x480)
NTSC DVD352x240[a]MPEG-11856 kbps48000 HzAC3,PCM1536 kbps (max)30000/1001, 24000/10014:3, 16:9
NTSC SVCD480x480MPEG-22600 kbps44100 HzMP2384 kbps (max)30000/10014:3
NTSC VCD352x240MPEG-11150 kbps44100 HzMP2224 kbps24000/1001, 30000/10014:3
PAL DVD720x576, 704x576, 352x576, 352x288MPEG-29800 kbps48000 HzMP2,AC3,PCM1536 kbps (max)254:3, 16:9 (seulement pour 720x576)
PAL DVD352x288[a]MPEG-11856 kbps48000 HzMP2,AC3,PCM1536 kbps (max)254:3, 16:9
PAL SVCD480x576MPEG-22600 kbps44100 HzMP2384 kbps (max)254:3
PAL VCD352x288MPEG-11152 kbps44100 HzMP2224 kbps254:3

[a] Ces résolutions sont rarement utilisées pour les DVDs parce qu'ils ont une assez basse qualité.

Si votre film a un aspect 2.35:1 (la plupart des films d'action récents), vous devrez ajouter des bords noirs ou découper le film à un aspect 16:9 pour faire un DVD ou un VCD. Si vous ajoutez des bords noirs, essayez de les aligner aux frontières de 16-pixels de façon à minimiser l'impact sur la performance d'encodage. Le DVD a heureusement un bitrate suffisamment élevé pour que vous n'ayez pas trop à vous inquiéter pour l'efficacité de l'encodage, mais le SVCD et le VCD sont gaspillent tellement de bitrate qu'ils demandent beaucoup d'efforts pour avoir une qualité acceptable.

13.6.1.2. Contraintes de Taille GOP

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

13.6.1.3. Contraintes de Bitrate

Une vidéo VCD doit être nécessairement en CBR à 1152 kbps. Cette contrainte grandement limitante vient aussi avec une taille du buffer vbv de 327 kilobits extrêmement basse. SVCD permet de varier des bitrates vidéo jusqu'à 2500 kbps, et une taille du buffer vbv légèrement moins restrictive de 917 kilobits est permise. Les bitrates de vidéo DVD peuvent aller jusqu'à 9800 kbps (bien que les bitrates typiques valent à peu près la moitié de ça), et la taille du buffer vbv est 1835 kilobits.

13.6.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 correct de fichier.

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 conforme, 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 NTSC étiré:

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

Ceci permet au contenu progressif à 24000/1001 fps d'être encodé à 30000/1001 fps tout en conservant le support DVD.

13.6.2.1. Rapport d'aspect

L'argument d'aspect -lavcopts est utilisé pour encoder le rapport d'aspect du fichier. Durant la lecture le rapport d'aspect 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 correcte de dimensionnement, utilisez la largeur étendu 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 correcte de dimensionnement, utilisez la largeur étendu PAL de 1024/2.35 = 432

13.6.2.2. 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 requis. 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
  

13.6.3. Utiliser libavcodec pour l'encodage VCD/SVCD/DVD

13.6.3.1. Introduction

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

13.6.3.2. lavcopts

Ceci est une liste de champs de -lavcopts que vous pourriez avoir besoin de changer si vous voulez convertir film en 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ée pour le DVD, mais c'est surtout une grosse 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: 224 pour le VCD; jusqu'à 384 pour le SVCD; jusqu'à 1536 pour le DVD, mais utilise communément une gamme de valeurs de 192 kbps pour le stéréo à 384 kbps 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 matériaux à 30 fps, ou 15 pour les matériaux à 25/24 fps. Les producteurs commerciaux semblent préférer des keyframe à des intervalles 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é seul 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 pouvez souhaiter utiliser des valeurs plus basses selon vos préférences.

  • vbitrate: 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 insistez pour faire tenir 20 heures ou plus sur un DVD, vous pouvez utiliser vbitrate=400. La qualité 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.

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

13.6.3.4. Options Avancé

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é, peut-il être utile d'ajouter dc=10 à lavcopts. Le faire peut aider à réduire l'apparition de blocs dans les zones plates colorées. Pour résumer, la ligne suivante est un exemple de paramétrage de lavcopts pour une meilleure qualité pour un DVD:

  -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
  

13.6.4. Encodage Audio

Les 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. Les VCD ne supportent que l'audio avec un bitrate constant (CBR) alors que les SVCD supportent aussi le bitrate 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é.

13.6.4.1. toolame

Pour un VCD et un SVCD:

  -oac toolame -toolameopts br=224
  

13.6.4.2. twolame

Pour un VCD et un SVCD:

  -oac twolame -twolameopts br=224
  

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

13.6.5. Combiner le tout

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

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

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

13.6.5.3. AVI PAL Contenant Audio AC3 vers DVD

Si la source a déjà l'audio en AC3, utilise la copie -oac 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
  

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

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

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

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

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