13.1. Auswahl der Codecs und Containerformate

Audio- und Videocodecs für die Encodierung werden mit den Optionen -oac und -ovc respektive gewählt. Gib zum Beispiel folgendes ein:

mencoder -ovc help

um alle von der MEncoder-Version auf deinem Rechner unterstützten Video-Codecs aufzulisten. Die folgenden Wahlmöglichkeiten stehen zur Verfügung:

Audiocodecs:

AudiocodecnameBeschreibung
mp3lameencodiere nach VBR-, ABR- oder CBR-MP3 mittels LAME
lavcverwende einen der Audiocodecs von libavcodec
faacFAAC AAC Audio-Encoder
toolameMPEG Audio Layer 2 Encoder
twolameMPEG Audio Layer 2 Encoder basierend auf tooLAME
pcmunkomprimiertes PCM-Audio
copynicht neu codieren, kopiere einfach nur komprimierte Frames

Video-Codecs:

VideocodecnameBeschreibung
lavcVerwende einen der Video-Codecs von libavcodec
xvidXvid, MPEG-4 Advanced Simple Profile (ASP) Codec
x264x264, MPEG-4 Advanced Video Coding (AVC), AKA H.264 Codec
nuvNuppelVideo, von Echtzeit-Anwendungen verwendet
rawunkomprimierte Video-Frames
copynicht neu codieren, kopiere einfach nur komprimierte Frames
framenoverwendet für 3-pass-Encodierung (nicht empfohlen)

Ausgabe-Containerformate werden mittels der Option -of gewählt. Gib folgendes ein

mencoder -of help

um alle von der MEncoder-Version auf deinem Rechner unterstützten Videocodecs aufzulisten. Die folgenden Wahlmöglichkeiten stehen zur Verfügung:

Containerformate:

Name des ContainerformatsBeschreibung
lavfeiner der von libavformat unterstützten Container
aviAudio-Video Interleaved
mpegMPEG-1 und MPEG-2 PS
rawvideoraw-Video-Stream (kein Muxen - nur ein Video-Stream)
rawaudioraw-Audio-Stream (kein Muxen - nur ein Audio-Stream)

Der AVI-Container ist das ursprüngliche Containerformat für MEncoder, was bedeutet, dass es der am besten gehandhabte ist und derjenige, für welchen MEncoder entworfen wurde. Wie oben angemerkt können weitere Containerformate verwendet werden, jedoch kann es bei deren Gebrauch zu Problemen kommen.

libavformat-Container:

Wenn du für das Muxen der Ausgabedatei libavformat verwendest (mittels -of lavf), wird das passende Containerformat entsprechend der Erweiterung der Ausgabedatei ermittelt. Du kannst ein bestimmtes Containerformat mit Hilfe der Option format von libavformat erzwingen.

libavformat ContainernameBeschreibung
mpgMPEG-1 und MPEG-2 PS
asfAdvanced Streaming Format
aviAudio-Video Interleaved
wavWaveform Audio
swfMacromedia Flash
flvMacromedia Flash Video
rmRealMedia
auSUN AU
nutNUT offener Container (experimentell und noch nicht Spec-konform)
movQuickTime
mp4MPEG-4 Format
dvSony Digital Video Container

Wie du siehst, erlaubt libavformat MEncoder, in eine beachtliche Vielfalt an Containern zu muxen. Leider solltest du wirklich Paranoia angesichts der resultierenden Datei schieben, da MEncoder nicht von Anfang an für die Unterstützung anderer Containerformate als AVI entworfen wurde. Überprüfe bitte sicherheitshalber, ob die Audio-/Video-Synchronisierung in Ordnung ist und ob die Datei von anderen Playern als MPlayer wiedergegeben werden kann.

Beispiel 13.1. Encodieren in das Macromedia Flash-Format

Erzeugen eines Macromedia Flash Videos, das in einem Web-Browser mit dem Macromedia Flash Plugin abgespielt werden kann:

          mencoder input.avi -o output.flv -of lavf \
          -oac mp3lame -lameopts abr:br=56 -ovc lavc \
          -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 \
          -srate 22050