Video

Die älteren Video-Formate sind so ausgelegt, das sie wenig Rechenleistung verbrauchen. Leider werden sie für gewöhnlich auch auf kleineren Datenträgern eingesetzt (z.B. Video-CD), so das man hier fast nie auf die nötigen Spielzeiten kommt.

Aus dem Grund werden Filme meistens transcodiert um Platz zu sparen. Bei der wahl eines geeigneten Ziel-Codecs gibt es mehrere Gesichtspunkte, die man beachten muß. Zum einen muß auf jeden Fall die Kompatibilität beachtet werden!

Es macht keinen Sinn, seine alten MPEG2-Videos in das Dirac-Format umzurechnen, nur weil es zur Zeit der freie Codec mit der besten Kompressionsrate auf dem Markt ist und er absolut Patentfrei ist. Wenn man die Videos mit einem handelsüblichen Media-Player auf dem Fernseher ansehen will… denn es gibt zur Zeit keine handelsüblichen Media-Player die einen absolut Patentfreien Codec unterstützen (nichteinmal für den Theora-Codec)!

Ausserdem ist es unsinnig, einen H.264- oder Dirac-Codec zu verwenden, wenn man nur einen schwachen Rechner zum abspielen verwenden möchte. Denn diese Codecs benötigen viel Rechenleistung!

Weiterhin ist zu beachten, dass man theoretisch die meisten Video-Codecs mit den meisten Audio-Codecs in einer ganzen Reihe von Container-Formaten zusammen führen kann. Allerdings kann man diese exotischen Zusammenstellungen dann nur auf dem PC abspielen, denn in den Standardisierungen wurden sogenannte Profile festgelegt!

Profile sind Video-, Audio- und Containerformat-Kombinationen, die üblicherweise verwendet werden sollen. Von handelsüblichen Media-Playern werden in aller Regel nur ein Teil dieser definierten Profile unterstützt.

Zum Schluss sollte man sich überlegen welche Vorteile und welche Nachteile der neue Codec gegenüber dem bisherigen Codec hat, möglicherweise macht es in einigen Fällen dann keinen Sinn mehr zu transcodieren.

Denn jede transcodierung verschlechtert die Bildqualität, selbst wenn man in der Zieldatei einen besseren Codec bei gleicher Dateigröße wählt!

Um die Höchste Tonqualität beizubehalten, sollte man die Tonspur nur verändern wenn es unbedingt sein muss (das gleiche gilt für die Bildqualität). Bei AC3 (a52) ist das nicht nötig, da es praktisch von jedem Gerät abgespielt werden kann. Und im Verhältnis zu den Bilddaten, sind die Tondaten vernachlässigbar klein.

Daumenkino selbst gemacht

Das gute alte Daumenkino kennt ja jeder aus der Kindheit, wenn man diese Einzelbilder jetzt als JPG's oder PNG's vorliegen hat, dann kann man daraus einen Film machen.

Zum Beispiel so zu einem DivX 5 - Film:

# mencoder "mf://*.png" -mf fps=10 -o Daumenkino.avi -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=800:autoaspect:mbd=1:trell=yes:v4mv=yes

oder auch so zu einem MJPEG-Film:

# mencoder "mf://*.jpg" -mf fps=10 -o Daumenkino.avi -ovc lavc -lavcopts vcodec=mjpeg:vbitrate=1800:mbd=1

Andere Codec's, Bitraten und Bildwiederholraten sind natürlich auch möglich.

Eine Liste ausgewählter Video-Formate

  1. DV: 480i60 (SDTV/NTSC/VGA im Zeilensprungverfahren) entspricht 720×480/640×480
  2. DV: 576i50 (SDTV/PAL/SECAM im Zeilensprungverfahren) entspricht 768×576/720×576
  3. DVB: 576i50 (SDTV/PAL/SECAM im Zeilensprungverfahren) entspricht 1024×576/720×576
  4. HDV1: 720i (HDTV reduziert im Zeilensprungverfahren) entspricht 1280×720
  5. HDV1: 720p (HDTV reduziert im Vollbildverfahren) entspricht 1280×720
  6. HDV2: 1080i (HDTV nativ im Zeilensprungverfahren) entspricht 1920×1080
  7. HDV2: 1080p (HDTV/Blu-ray nativ im Vollbildverfahren) entspricht 1920×1080
  1. 4:3 entspricht 640×480 und 768×576
  2. 16:9 entspricht 720×432, 1024×576, 1280×720 und 1920×1080
  3. 16:10 entspricht 720×404

Beim Fernsehen sind die Bildpunkte nicht quadratisch, sondern rechteckig:

  • PAL hat eine tatsächliche Auflösung von 720×576 rechteckigen Bildpunkten, die allerdings eine Fläche ausfüllen, wie sie 768×576 quadratische Bildpunkte ausfüllen würden.
  • NTSC hat eine tatsächliche Auflösung von 640×480 rechteckigen Bildpunkten, die allerdings eine Fläche ausfüllen, wie sie 720×480 quadratische Bildpunkte ausfüllen würden.
  • Blu-ray Disk setzt zwingend quadratische Bildpunkte voraus!

720p ist weltweit ein selteneres Format. Von allen europäischen Sendern setzten ab 2010 nur die Sender ARTE HD, Das Erste HD, Eins Festival HD, ZDF HD, ORF 1 HD, ORF 2 HD und LUXE TV HD auf die geringer aufgelöste HDTV-Norm.

MPEG-1 Part 2

Der MPEG-1-Standard gehört zur H.261-Familie.

MPEG-1 (maximale Bildgröße 768×576 Pixel) wurde in den 80er Jahren mit dem Ziel entwickelt (1991 vorgestellt), Filme auf die beschränkte Datenrate (bis 1,5 Mbit/s) einer mit normaler Geschwindigkeit abgespielten Audio-CD zu komprimieren. Das Ergebnis, mit dementsprechend eher bescheidener Qualität, wird Video-CD genannt. Die Video-Kompression von MPEG-1 wurde 1994 durch MPEG-2 deutlich verfeinert und verbessert.

Der Video-CD-Standard (VCD) wurde 1993 von einem Konsortium japanischer Elektronik-Hersteller verabredet und im so genannten White Book festgehalten. Er gehört zu den offiziellen CD-Formaten, die das Compact-Disc-Logo tragen dürfen – in diesem Fall Compact Disc Digital Video. Er beschreibt das Abspeichern von Videodaten nach dem MPEG-1-Standard auf einer Standard-CD. Die im Standard festgelegte Auflösung beträgt für PAL 352 × 288 Bildpunkte mit 25 Bildern pro Sekunde, für NTSC 352 × 240 Bildpunkte mit 29,97 oder 23,976 Bildern pro Sekunde. Das Bildformat ist 4:3. 16:9 ist nicht vorgesehen. Der Ton ist Stereo. Joint-Stereo, digitaler Surround-Sound, mehrere Tonspuren oder wählbare Untertitel sind auf VCDs nicht möglich, Mono-Sound muss bei Bedarf wie bei der Audio-CD durch identische linke und rechte Tonspuren realisiert werden. Die Daten werden also zweimal gespeichert. Die Bitrate muss bei maximal 1.151.929 bit/s für die Bilddaten, genau 224.000 bit/s für die Stereo-Tondaten (im MP2-Format) und genau 1.411.200 bit/s für die gesamten Daten liegen. Letzteres entspricht der Bitrate von Audio-CDs; somit ist die maximale Laufzeit identisch, und VCD-Player können dieselbe Laufwerksmechanik wie normale CD-Player verwenden. Variable Bitraten sind nicht vorgesehen. Auf einer standardkonformen Video-CD muss eine Abspielsoftware für CD-i-Spieler gespeichert sein, da diese keine solche eingebaut haben. Diese Software kostet knapp eine Minute Laufzeit.

Die Bildqualität entspricht ungefähr einem VHS-Video, ist allerdings etwas schlechter als bei einer hochwertigen und mit guten Profi-Aufzeichnungsgeräten bespielten VHS-Kassette. Das VHS-typische Bild- und Farbrauschen entfällt zwar, dafür sind auf Video-CDs Unschärfen, Kompressionsartefakte („Klötzchen“, Ringbildung um Objekte) und ruckartige Bewegungen zu erkennen. Die Tonqualität ist wesentlich besser als Mono-VHS, aber oft schlechter als HiFi-VHS. Die Bildqualität schwankt je nach der verwendeten Enkodier-Software und ihren Einstellungen, kann aber ein gewisses Maximum nicht übersteigen. Dadurch und durch die maximale Abspieldauer von ursprünglich nur gut 73 Minuten (heute gut 79 Minuten bei Verwendung einer 700MB-CD-R), sind VCDs als Medium für Spielfilme nur bedingt geeignet.

Ein weiterer Nachteil der Video-CD ist die gegenüber der TV-Vollauflösung (576 sichtbare Zeilen in Europa, 480 in Amerika) reduzierte Vertikalauflösung (288 bzw. 240 sichtbare Zeilen), d.h. jede zweite Rasterzeile wird „weggeworfen“, wodurch auch das Interlacing des Originalsignals und damit Zeitauflösung verlorengeht. Viele analoge Videoformate, wie z.B. VHS, haben diese Eigenschaft systembedingt nicht. Die horizontale Auflösung der VCD (352 Pixels) ist jedoch deutlich besser als die von VHS (220 bis 240 Linien).

MPEG-2 Part 2

MPEG-2 Part 2 ist seit 1994 das DVD-Standard-Format, wobei von 1994 bis 1995 MP2 als Audio-Codec verwendet wurde und ab 1995 AC3.

Der MPEG-2-Standard gehört zur H.262-Familie.

Verwendet wird MPEG-2 unter anderem bei DVD.

  • Video-Codec: MPEG2
  • Audio-Codec: MP2, AC3
  • Container-Format: TS, PS
  • Dateiendungen: MPG, MPEG, VOB
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf -vf scale=720:576,harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=2560:keyint=15:trell:mbd=2:precmp=2:subcmp=2:cmp=2:dia=-10:predia=-10:cbp:mv0:vqmin=1:lmin=1:dc=10:vstrict=0:acodec=ac3:abitrate=256:aspect=16/9 -ofps 25 -o Film.mpg Film.mkv

MPEG-4 Part 2

Der Videostandard MPEG-4 Part 2 erhielt die Bezeichnung Advanced Simple Profile (ASP), der bekannteste Codec, der in diesem Standard mit einfloss, ist der DivX-Codec in den Versionen 3 bis 6. Die freie Version davon nennt sich Xvid.

DivX 3.11 und frühere Versionen des Codecs entstanden, indem Microsofts MPEG-4-Codec gehackt wurde; dieser war durch einen französischen Hacker namens Jérôme Rota (Pseudonym: Gej, okzitanisch für „verrückt“) aus einer Betaversion des Windows Media Players extrahiert worden. Das „Project Mayo“ war geboren, dem sich kurze Zeit später vier weitere Programmierer anschlossen. In den frühen Versionen des „DivX Player“ zierte ihn noch das „Project Mayo“-Emblem, das jedoch aufgrund vieler Rückfragen von Nutzern später entfernt wurde. Der Hack modifizierte den Microsoft-Codec, um das komprimierte Video nicht nur als ASF-Datei, sondern auch als AVI-Datei speichern zu können. Außerdem unterstützte der ursprüngliche Microsoft-Codec nur Bitraten von maximal 256 kbps; in der gehackten Version hingegen waren es bis zu 6.000. Die von Rota gegründete Firma DivXNetworks, Inc. entwickelte später eine völlig neue Version, um in den USA Patentverletzungen zu vermeiden. DivXNetworks hat in den USA ein Patent auf den neuen Codec angemeldet.

Der (eigentliche) DivX-Codec (Versionen 3 bis 6) wird kaum noch weiterentwickelt, das liegt wohl daran, dass DivX seit Version 7.0 auch das H.264 Format unterstützt sowie den Matroska-Container, … jedoch ausschließlich über ein sehr einfach gestricktes Konvertierungsprogramm namens DivX Converter.

Xvid ist eine freie Implementierung des MPEG-4-Video-Codec, der ursprünglich auf dem OpenDivX-Quelltext basierte. Der zugrunde liegende Quellcode von OpenDivX stammte wiederum aus der MPEG-4-Referenzimplementierung des EU-Projekts MoMuSys. Das Xvid-Projekt wurde von mehreren freiwilligen Programmierern gestartet, nachdem der Quellcode von OpenDivX geschlossen wurde. Der Name des Projekts ist ein Anagramm des Namens DivX. Durch den unverschlüsselt veröffentlichten Quelltext von OpenDivX erhielten die Programmierer die Möglichkeit, den Codec in den grundlegenden Eigenschaften zu verändern und zu optimieren. Zusammen mit DivX und Nero Digital ist Xvid der bekannteste MPEG-4-Codec.

Wegen patentrechtlicher Schwierigkeiten werden keine offiziellen kompilierten Versionen des Quelltextes vom Xvid-Team bereitgestellt. Ein kommerzieller Vertrieb von Xvid ist möglich, solange man sich an die GPL-Bedingungen hält. In einigen Staaten wie USA oder Japan fallen zusätzlich Gebühren für die oben angeführten Patente an.

Seit der Version 1.1.3 vom 29. Juni 2007 wird das MPEG-4 Visual Advanced Simple Profile unterstützt. Das heißt, Xvid unterstützt Advanced-Simple-Profile-Features wie B-Frames, Quarter Pixel Motion Compensation (QPel), Global Motion Compensation (GMC) und Custom Quantizer-Matrizen. Seit Dezember 2005 soll der Beta-Code von Xvid AVC veröffentlicht werden. Der neue Codec unterstützt den effizienteren H.264/AVC-Standard.

Ich verwende das ASP-Format in folgender Zusammenstellung:

  • Video-Codec: Xvid
  • Audio-Codec: AC3 (unverändert von der DVD), MP3 (resampled)
  • Container-Format: AVI

Dieses Format wird von den DVD-Playern von Philips abgespielt. Da DivX kaum noch weiterentwickelt wird, kann man mit Xvid mittlerweile bessere Ergebnisse erziehlen.

Mit ffmpeg in einem Durchgang:

# ffmpeg -b 2560k -vcodec libxvid -s 720x432 -padtop 72 -padbottom 72 -aspect 4:3 -acodec libmp3lame -ab 256k -ac 2 -async 48000 -i Film.vob -y Film.avi

oder mit mencoder in zwei Durchläufen:

# mencoder -forceidx -mc 0 -oac mp3lame -lameopts q=0:aq=0:br=256 -af resample=48000:0:0,channels=2 -ovc xvid -vf pp=tn:2/ci/hb/vb/dr/al,scale=720:404,harddup -xvidencopts bitrate=2560:me_quality=6:trellis:chroma_me:chroma_opt:hq_ac:vhq=4:autoaspect:pass=1 -passlogfile Film.log -of rawvideo -o /dev/null Film.vob
# mencoder -forceidx -mc 0 -oac mp3lame -lameopts q=0:aq=0:br=256 -af resample=48000:0:0,channels=2 -ovc xvid -vf pp=tn:2/ci/hb/vb/dr/al,scale=720:404,harddup -xvidencopts bitrate=2560:me_quality=6:trellis:chroma_me:chroma_opt:hq_ac:vhq=4:autoaspect:pass=2 -passlogfile Film.log -of avi -o Film.avi Film.vob

MPEG-4 Part 10

Der Videostandard MPEG-4 Part 10 erhielt die Bezeichnung Advanced Video Coding - (AVC), der bekannteste Codec, der in diesem Standard mit einfloss ist, ist der H.264-Codec. DivX ab der Version 7 (DivX Plus) unterstützt ebenfalls den H.264-Video-Codec, den AAC-Audio-Codec sowie das Matroska-Container-Format MKV.

H.264/MPEG-4 AVC ist ein Standard zur hocheffizienten Videokompression. Er wurde zunächst von der ITU (Study Group 16, Video Coding Experts Group) unter dem Namen H.26L entwickelt. Im Jahre 2001 schloss sich die ITU-Gruppe mit MPEG-Visual zusammen und führte die Entwicklung gemeinschaftlich im Joint Video Team (JVT) fort. Ziel des Projektes war es, ein Kompressionsverfahren zu entwerfen, das im Vergleich zu bisherigen Standards sowohl für mobile Anwendungen als auch im TV- und HD-Bereich die benötigte Datenrate bei gleicher Qualität mindestens um die Hälfte reduziert. Im Jahr 2003 wurde der Standard von beiden Organisationen mit identischem Wortlaut verabschiedet. Die ITU-Bezeichnung lautet dabei H.264. Bei ISO/IEC MPEG läuft der Standard unter der Bezeichnung MPEG-4/AVC (Advanced Video Coding) und ist der zehnte Teil des MPEG-4-Standards (MPEG-4/Part 10, ISO/IEC 14496-10).

MPEG-4/AVC unterscheidet sich deutlich von MPEG-4/ASP. H.264 erreicht typischerweise eine etwa dreimal so hohe Codiereffizienz wie H.262 (MPEG-2) und ist auch für hoch aufgelöste Bilddaten (z.B. HDTV) ausgelegt. Das heißt, vergleichbare Qualität ist etwa bei einem Drittel der MPEG-2-Datenmenge zu erreichen. Allerdings ist der Rechenaufwand auch um den Faktor 2 bis 3 höher.

H.264 baut weitestgehend auf seinen Vorgängern MPEG-1, MPEG-2, MPEG-4 und der H.261-Familie auf, weist jedoch deutliche Veränderungen und Erweiterungen auf.

Da H.264 nicht an ein bestimmtes Containerformat gebunden ist, können die Videos als MP4-, aber auch als AVI-, Matroska- oder Ogg Media-Datei vorliegen. Es ist sogar möglich, H.264-Videos als Roh-Daten zu speichern (.264). Solche Rohdaten können dann z.B. mit MP4Box (GPAC) oder mkvmerge in einen geeigneten Container gemultiplext werden. Benötigt werden neben einem Decoder also auch ein Splitter (Demuxer), der das jeweils benutzte Containerformat unterstützt.

Verwendet wird AVC unter anderem bei HDTV und DVB-T2. AVC soll ca. 2,5 mal soviele Sender bei gleicher Bandbreite ermöglichen, wie man es mit MPEG-2 erreichen kann.

Die nötigen Werkzeuge installiert man unter Ubuntu so:

aptitude install mplayer mencoder ffmpeg vorbis-tools mkvtoolnix gpac x264 faac normalize-audio

AVC-Kompatibilität

Blu-ray erlaubt nur ein paar Auflösungs&Frameraten Kombinationen. Die MPEG-4 AVC Spezifikation erlaubt da wesentlich mehr.

  • MaxFS - Max frame size (MBs)
  • mbpf - Makroblöcke pro Frame

Als Einheit ist bei MaxFS 'MBs' angegeben was für Makroblöcke steht. Das hilft einen dann mit dem Wissen das Makroblöcke in den Tabellen immer mit 16×16 Pixeln angenommen werden weiter. Die Anzahl der Makroblöcke pro Frame (mbpf) sind also je Level wie folgt eingeschränkt:

Level Makroblöcke pro Frame (mbfs)
1.0 99
1.1/1.2/1.3/2.0 396
2.1 792
2.2/3.0 1620
3.1 3600
3.2 5120
4.0/4.1/4.2 8192
5.0 22080
5.1 36864

Die Makroblöcke werden als 16×16 Pixel groß angenommen, was dazu führt, dass sich die Anzahl an Makroblöcken für ein Frame also wie folgt berechnet: mbpf = aufgerundet(Breite/16) * aufgerundet(Höhe/16)

Eine Auflösung von 720*576 würde also aus 45*36 = 1620 Makroblöcken pro Frame bestehen, was uns Anhand der Tabelle sagt, dass man mindestens Level 2.2 verwenden muss wenn man etwas mit AVC Standardkonfrom mit einer Auflösung von 720×576 encoden will.

Generell gelten folgende Einschränkungen für einen AVC Stream der zu einem bestimmten Profile&Level kompativel sein will:

MaxMBPS >= width*height*fps. (w&h measured in macroblocks, i.e. pixels/16 round up in each dimension)
MaxFS >= width*height
sqrt(MaxFS*8) >= width
sqrt(MaxFS*8) >= height
MaxDPB >= (bytes in a frame) * number of reference frames (for x264 number of reference frames = min(16, ref + (pyramid ? 2 : bframes ? 1 : 0)) =
MaxBR >= vbv_maxrate.
MaxCPB >= vbv_bufsize.
MaxVmvR >= max_mv_range.
MaxMvsPer2Mb, MinLumaBiPredSize, direct_8x8_inference_flag : are not enforced by x264. The only way to ensure compliance is to disable p4x4 at level>=3.1, or at level>=3 w/ B-frames.
MinCR : is not enforced by x264. Won't ever be an issue unless you use lossless.
SliceRate : I don't know what this limits.
with:
MaxDPB = max decoded picture buffer
MaxMBPS = max macroblocks per second
MaxFS = max frame size
MaxBR = max bitrate
MaxCPB = max vbv buffer
MaxVmvR = max motion vetor range

Für Blu-ray Disk bzw. AVCHD kommen dann noch weitere Beschränkungen dazu.

AVCHD (maximale Kompatibilität zu Blu-ray-Disk-Playern)

Am 2006-05-11 wurde das von Panasonic und Sony gemeinsam entwickelte AVCHD als Nachfolger von HDV für Videokameras, in der Version 1.0 vorgestellt.

Progressive - noninterlaced scanning (Vollbilder):

Resolution Frame rate
1920×1080 24-p
1920×1080 23.976-p
1280×720 59.94-p
1280×720 50-p
1280×720 24-p
1280×720 23.976-p

Der Standard 1920×1080p50 ist noch nicht verabschiedet und keiner weiß wann er kommen wird. Das ist im Moment aber auch nicht wichtig, da die Blu-ray Disk's in der Praxis ohnehin nur mit den beiden Bildwiederholraten 23.976 Hz und 24 Hz (ohne Zeilensprungverfahren) veröffentlicht werden und diese beiden Bildwiederholraten werden auch garantiert von jedem Blu-ray-Disk-Player unterstützt.

Allerdings muss man beachten, das die Bildpunkte bei PAL und NTSC nicht quadratisch sind, sondern rechteckig (PAL: 9% bis 42,22% in die Breite gezogen). Der Blu-ray Disk-Standard schreibt aber quadratische Bildpunkte vor. Wie es mit den PAL- und NTSC-Varianten der Blu-ray Disk-Bildformate aussieht, das weiß ich leider nicht. Ich gehe erstmal davon aus, das hier die rechteckigen Bildpunkte zur Anzeige in quadratisch Bildpunkte umgerechnet werden. Ein 720×576-PAL-Bild würde dann als 768×576-Bild angezeigt werden und ein 720×480-NTSC-Bild würde dann als 720×540-Bild angezeigt werden.

Will man aus seinen archivierten Videos, BD-kompatible Videos machen, sollte man sich an den AVCHD-Standard halten. Der AVCHD-Standard übernimmt die Definition des Video-Inhaltes und ist somit BD-kompatibel, aber an Stelle des BD-Verzeichnis-Formates, wird hier ein Datei-Format beschrieben.

Will man also nicht eine physikalische DVD in eine BD überführen, sondern eine PAL-Video-Datei in eine BD-kompatible Video-Datei, dann wird alles, woran man sich orientieren muss, im AVCHD-Standard beschrieben.

AVCHD-Beispiele:

Video-Stream rate-control mode Auflösung Pixel-Form Colorimetry Color primaries Transfer characteristics Matrix coefficients Bildwiederholrate Muxing mode Audio Dateiendung
H.264/x264 (AVC) Constant Ratefactor (CRF) 1280×720 progressiv quadratisch 4:2:0 BT.709-5 BT.709-5 BT.709-5 24 Hz Container profile=4.1 a52/AC-3 Matroska (.mkv)
H.264/x264 (AVC) Constant Ratefactor (CRF) 1920×1080 progressiv quadratisch 4:2:0 BT.709-5 BT.709-5 BT.709-5 24 Hz Container profile=4.1 a52/AC-3 Matroska (.mkv)

Muss man die Tonspur transcodieren, würde ich mich entweder für MP3 (ASP) oder für AAC (AVC) entscheiden. Denn OGG/Vorbis hat hier (meinen Erfahrungen nach) einige Nachhaltigkeitsprobleme.

DivX7-Beispiele:

Video-Stream rate-control mode Auflösung Pixel-Form Colorimetry Color primaries Transfer characteristics Matrix coefficients Bildwiederholrate Muxing mode Audio Dateiendung
H.264/x264 (AVC) Constant Ratefactor (CRF) 1280×720 progressiv quadratisch 4:2:0 BT.709-5 BT.709-5 BT.709-5 24 Hz Container profile=4.1 AAC Matroska (.mkv)
H.264/x264 (AVC) Constant Ratefactor (CRF) 1920×1080 progressiv quadratisch 4:2:0 BT.709-5 BT.709-5 BT.709-5 24 Hz Container profile=4.1 AAC Matroska (.mkv)

Man muss auch darauf achten, das der Blu-ray Disk - Standard „CRF“ (gleichbleibende Qualität aber variable Bit-Rate) vorschreibt, damit fällt ein Multi-Pass-Encoding schon mal flach. Denn Multi-Pass-Encoding geht nur mit fester Bit-Rate.

Hinweis: Zum encoden wurde anfangs crf=16 verwendet, jetzt soll crf=20 Standard sein.

Der AVCHD-Lite-Standard macht nur zwei Einschränkungen gegenüber dem vollen AVCHD-Standard. Eine in der Video-Auflösung, es wird in diesem speziellen Standard nur 1280x720p unterstützt, und eine in der Videokompression, hier wird eine schwächere Kompressionsrate verwendet um es auch auf schwächerer Hardware einsetzen zu können!

Der volle AVCHD-Standard macht hier keine Einschränkungen gegenüber dem BD-Standard.

Allerdings werden hier ein paar Formate bevorzugt eingesetzt:

Video-Stream Auflösung Audio Dateiendung
H.264 immer 1440×1080 interlaced Dolby Digital Stereo oder 5.1 Surround-Sound .mts oder .m2ts
H.264 immer 1920×1080 interlaced Dolby Digital Stereo oder 5.1 Surround-Sound .mts oder .m2ts
H.264 immer 1920×1080 progressiv Dolby Digital Stereo oder 5.1 Surround-Sound .mts oder .m2ts
H.264 immer NTSC und PAL Variationen der obigen Auflösungen Dolby Digital Stereo oder 5.1 Surround-Sound .mts oder .m2ts

Aus diesem Grund ist der AVCHD-Standard sehr gut als Austausch-Standard geeignet.

Blu-ray Disk und AVCHD sehen in den Auflösungen 720p und 1080p folgende Eckdaten vor:

  1. nur 8-Bit-Farbraum (4:2:0 ~ YV12) erlaubt
  2. „Main“- und „High“-Profile erlaubt
  3. max. 3 B-Frames sind erlaubt
  4. „Group of Pictures“ max. 15 Bildern (Frames)
  5. 24 Bilder je Sekunde (Film)
  6. Level 4.1
  7. vbv-maxrate: 40000
  8. vbv-bufsize: 30000
  9. nur SAR 1/1
  10. nur 16/9

Etwas verwirrend kann die Endung .m2ts der Dateien auf einer BD sein. Es sugeriert MPEG-2-Daten, dem ist aber nicht so!

Die Videosignale werden im MPEG-4-Datenkompressionsstandard (MPEG-4 AVC) aufgezeichnet, und dann in einen MPEG-2-Transport-Datenstrom zu übertragen.

Somit liegen MPEG-4-Daten in einem (erweiterten) MPEG-2-Container auf der BD.

  • Video-Codec: H.264, x264
  • Audio-Codec: AC-3
  • Container-Format: MPEG-TS
  • Dateiendung: .mts / .m2ts

Das AVC-Format, wie es auch von DivX-7 verwendet wird:

  • Video-Codec: x264 (BD-kompatibel)
  • Audio-Codec: AAC, Vorbis, AC-3 (DVD-Ton unverändert übernehmen)
  • Container-Format: MKV

Damit die erstellten Videos auch auf einem BD-Player abgespielt werden können, darf auf keinen Fall die x264-Option „wpredp=2“ gesetzt sein! Mit „wpredp=1“ funktioniert es dagegen problemlos.

technische Details von AVCHD

Panasonic präsentiert mit AVCCAM eine neue Camcorder-Generation: AVCHD-Camcorder


Panasonic & Sony erweitern Spezifikationen für HDTV-Camcorder-Format AVCHD

13.07.2006 (ks)

Panasonic und Sony haben die Spezifikationen für das neue HDTV-Camcorder-Format AVCHD in der Version 1.0 vorgestellt. War ursprünglich nur Aufnahme auf Mini-DVDs vorgesehen, so sollen AVCHD-Aufnahmen jetzt auch auf SD Cards, Memory Sticks und Festplatten möglich sein, was eine Austauschbarkeit und die Bearbeitung von Aufnahmen erleichtert. Die verwendeten Codecs sind MPEG-4 AVC/H.264 für Video und Dolby Digital für den Ton bei HDTV-Aufnahmen. Erste Geräte sind bislang noch nicht angekündigt worden. Nach Angaben von Panasonic sollen inzwischen auch Canon, Pioneer, Samsung und Sharp eine Unterstützung für AVCHD angekündigt haben.

AVCHD-Spezifikationen 1.0

Aufnahme-Medien 8 cm-DVD, SD Memory Card, “Memory Stick”, Festplattenlaufwerk
Video Videosignal 1080/60i / 720/60p / 480/60i / 576/50i / 1080/50i / 720/50p / 1080/24p / 720/24p
Pixel (horizontal x vertikal) 1920 x 1080 / 1280 x 720 / 720 x 480 / 720 x 576 / 1440 x 1080
Seitenverhältnis 16:9 16:9 / 4:3 & 16:9 / 4:3 & 16:9
Kompressionsmethode MPEG-4 AVC/H.264
Abtastfrequenz für Luminanz-Signal 74.25 MHz / 74.25 MHz / 13.5 MHz / 13.5 MHz 55.7 MHz
Abtast-Format 04:02:00
Bit-Rate 8 bit (Luminanz / Chrominanz)
Audio Kompressionsmethode Dolby Digital (AC-3) / Linear PCM
Bit-Rate nach Kompression 64 ~ 640 kbps / 1.5 Mbps [2 Kanäle]
Audio-Kanäle 1 – 5.1 Kanäle / 1 – 7.1 Kanäle
System MPEG-2 Transport Stream
System Bit-Rate ~ 24 Mbps

AVCHD Information Web Seite

Recording Media 8cm DVD media / SD Memory Card / „Memory Stick“ / Built-in Media
VideoVideo signal 1080/60i, 1080/50i, 1080/24i 720/60p, 720/50p, 720/24p 480/60i 576/50i
VideoPixels (horizontal x vertikal) 1920×1080, 1440×1080 1280×720 720×480 720×576
VideoAspect ratio 16:9 16:9 4:3, 16:9 4:3, 16:9
VideoCompression technology MPEG-4 AVC / H.264
VideoLuminance sampling frequency 74.25MHz, 55.7MHz 74.25MHz 13.5MHz 13.5MHz
VideoSampling structure 4:2:0
VideoQuantifying bit number 8 bit (luminance / color contrast)
AudioCompression technology Dolby Digital (AC-3) Linear PCM
AudioBit rate after compression 64 - 640kbps 1.5Mbps (2 channels)
AudioAudio channels 1-5.1 channels 1-7.1 channels
System MPEG-2 Transport Stream
System bit rate ~24Mbps (~18Mbps for DVD)

http://www.hennek-homepage.de/video/Neues-vom-Video-und-Bild-2007.htm

Eigenschaften MPEG-2 MPEG-4 AVC/H.264
Unterstützte Dateitypen Rechteckige Frames und Fields Rechteckige Frames und Fields
Anzehl der Profile 7 3
Unterstützung für Streaming - SP/SI slices
Bewegungskompensation
Kleinste Blockgröße 16 x 16 4 x 4
Vektorgenauigkeit 1/2 Pixel 1/4 Pixel
Vectoren pro Makroblock 1 Bis zu 16
Transformation
Art der Transformation 8 x 8 DCT 4 x 4 H.264
Koeffizientenprädiktion Nur DC DC und AC
Zig-Zag Scan Wege 1 -
De-Blocking Filter Nein Ja
Entropiecodierung
Verfühgbare Codes VLC CAVLC, CABAC

Theora/Thusnelda (OGG)

  • HTML5
  • U-Boot-Patentfrei (Open Source Videocodec)

Theora 1.0 hat sich in der Linux-Gemeinde schnell verbreitet, da es frei von U-Boot-Patenten ist. Leider kommt es gerade so nur an die Qualität des ASP-Formates ran und ist deshalb kein echter Konkurrent von H.264. Theora 1.1 bekam die Bezeichnung Thusnelda und ist schon deutlich besser als Theora 1.0. Theora ist Bestandteil des HTML5-Standard und wird von Firefox (ab Version 3.5) und anderen Internet-Browsern direkt abgespielt, leider aber (noch) nicht von Media-Playern fürs Wohnzimmer.

Ursprünglich gab es für Audio's und Video's nur das Container-Format OGG, leider fehlten ihm wichtige Funktionen, die dann jemand anders rein-gehackt hat. Dieses neue Container-Format wurde OGM genannt. Mit diesem Hack war die Xiph.Org Foundation nicht besonders glücklich und so haben sie zwei neue Container-Formate geschaffen. Jetzt wird für Audio das Container-Format OGA und für Video das Container-Format OGV verwendet. OGM soll nicht mehr verwendet werden und gilt als überholt, leider verwendet der Software-Video-Player VLC noch dieses Container-Format.

Die OGG-Endung ist leider so populär, das (bis jetzt) niemand von den neuen Dateiendungen Gebrauch macht.

Eine Analyse eines FFmpeg-Entwicklers schätzt die Qualitäten von OGG als Containerformat kritisch ein. Unter anderem wird angeführt, dass der Dateigrößen-Overhead mit 1% im Vergleich zum ISO-MP4-Format mindestens achtmal größer ist und auch dass OGG nicht geeignet ist für Anwendungen, die kurze Latenzen („low latency“) benötigen. Als Alternative mit diesbezüglich besseren Eigenschaften wird das Matroska-Containerformat empfohlen.

# ffmpeg2theora -p pro --sync --pp ci,tn:2,ac --optimize --speedlevel 0 -o Film.ogg Film.vob

Meine Persönlichen Erfahrungen haben allerdings gezeigt, dass mein schwacher Rechner ein Video aus einem OGG-Container ruckelfrei abspielen konnte aber genau das selbe Video aus einem MKV-Container stark geruckelt hat. Keine Ahnung warum, damals hatte ich noch nicht das nötige Hintergrundwissen um dem Problem nachgehen zu können.

Dirac/Schroedinger (BBC)

  • fortschrittliche Technik: Wavelet-Kompression
  • U-Boot-Patentfrei

Dieser Codec benötigt wirklich viel Rechenleistung, hat aber auch das Potential den H.264 in die Tasche zu stecken, denn dieser Codec arbeitet endlich mal (genau wie Tarkin oder Snow) nach einer neuen und besseren Technik (Wavelet-Kompression).

Leider wird er von vielen Software-Video-Playern noch nicht unterstützt und ist deshalb auch nicht sehr verbreitet.

Dirac ist ein im Mai 2004 von der BBC veröffentlichter Video-Codec, der eine freie Alternative zu Codecs wie MPEG-2, Windows Media 9 oder MPEG-4 darstellen soll. Insbesondere wird darauf geachtet, dass keine von Dritten patentierten Technologien eingesetzt werden.

Dirac wurde am 21. Januar 2008 fertiggestellt. Die Referenz-Implementation ist in der Programmiersprache C++ geschrieben. Außerdem wurde unter dem Namen Schrödinger ein Projekt gestartet, das eine optimierte und portable Implementierung der Dirac-Spezifikationen zum Ziel hat.

Diese erste Implementierung wurde am 11. März 2008 fertiggestellt und liegt in Version 1.0 vor.

Der unter der Mozilla Public License 1.1 (MPL) veröffentlichte quelloffene Codec erlaubt die Relizenzierung des Codes unter der GNU General Public License 2.0 (GPL) und unter der GNU Lesser General Public License 2.1 (LGPL).

Um möglichst hohe Kompressionsraten ohne Artefaktbildung zu erreichen, nutzt Dirac eine Wavelet-Kompression sowie Techniken wie Motion Compensation und Arithmetisches Kodieren, die den Videocodec neben dem niedrigen Speicherverbrauch bei hohen Auflösungen auch für Internetstreaming-Anwendungen geeignet scheinen lassen. Die Bandbreite der Auflösungen reicht von QCIF (176×144 Pixel) bis hin zu HDTV (1920×1080 Pixel). Beim Release war in einer Auflösung von 1920×1080 Bildpunkten von einer Halbierung der Datenrate gegenüber dem MPEG-2 Standard die Rede. Damit wäre seine Kompressionsrate mit der von H.264 vergleichbar; durch die Waveletkompression dürfte Dirac diesem Codec, der noch auf diskreter Kosinustransformation basiert, jedoch bei der Bildqualität überlegen sein, insbesondere bei niedrigen Bitraten (zum Beispiel Internetstreaming). Dort wäre – bei gleicher Qualität – eine noch stärkere Datenreduktion möglich.

Neben der Freie-Software-Gemeinde entwickeln auch verschiedene Universitäten den Codec weiter.

Gegenüberstellung

Hier stelle ich meine persönliche Meinung dar, ich erhebe also keinen Anspruch auf Absolutismus… ;-)

Mein DVD-Recorder von Philips generiert mir DVDs mit dem Video-Codec MPEG-2, dem Audio-Codec AC3 und dem Container-Format PS mit der Dateiendung VOB, also im DVD-Standardformat.

MPEG-PS file format detected.
VIDEO:  MPEG2  720x576  (aspect 2)  25.000 fps  4380.0 kbps (547.5 kbyte/s)
AUDIO: 48000 Hz, 2 ch, s16le, 256.0 kbit/16.67% (ratio: 32000->192000)
Selected audio codec: [a52] afm: liba52 (AC3-liba52)

Was mich daran stört ist die Tatsache, das 2 Stunden Filmmaterial im DVD-Standardformat, ca. 4,3 GB an Plattenplatz benötigen. Das ist mir entschieden zu viel!

Als Alternativ-Formate kommen für mich nur freie Formate in Frage. Leider gibt es im Moment nur zwei wirklich freie Formate

  1. Theora/Thusnelda
  2. Dirac/Schroedinger

die beide (zu meinem Bedauern) von keinem Hardware-Media-Player fürs Wohnzimmer abgespielt werden können.

Da ich aber meine Filme nicht nur am PC sehen möchte, sondern über eine Multimedia-Box, musste ich die in Frage kommenden Codecs um diejenigen erweitern, die unter der GPL stehen aber möglicherweise sogenannte U-Boot-Patente enthalten können.

Auf Grund der Angst vor diesen U-Boot-Patenten liefert kein großer Betriebssystemhersteller diese Codecs in seinen Produkten mit, nichteinmal die großen Linux-Distributionen (Ubuntu, Fedora, openSUSE, Mandriva, …) haben diese Codecs in ihrer Grundausstattung.

Grundsätzlich muss man sagen, es gibt keinen perfekten Codec. Codecs die wenig Rechenleistung brauchen, komprimieren schlecht und Codecs die besser komprimieren, brauchen ein vielfaches an Rechenleistung. Hier ist also auch (wie überall im Leben) der goldene Mittelweg gefragt.

MPEG-1 Part 2 (VCD)

Den VCD-Standard sehe ich als völlig veraltet an.

MPEG-2 Part 2 (DVD)

In diesem Format liegen meine Filme ja schon vor, der in meinen Augen aber auch nicht mehr Zeitgemäß.

MPEG-4 Part 2 (ASP)

Der Xvid-Codec aus diesem Standard ist der im Moment vielseitigste, da er fast überall abgespielt werden kann. Mit ihm kann ich gegenüber MPEG-2 bis zu 40% Plattenplatz einsparen und die Filme werden auch in meinem DVD-Player von Philips abgespielt.

MPEG-4 Part 10 (AVC)

Der x264-Codec kann mehr Platz einsparen als Xvid-Codec und wird aber nur von neueren Playern (Blu-ray Disk & Co.) abgespielt, sowie von Multimedia-Boxen. Allerdings dauert das encoden auch deutlich länger.

Theora/Thusnelda (OGG)

Thusnelda ist ungefähr so gut wie der Xvid aber absolut frei und wird mittlerweile von fast jeder PC-Software abgespielt. Leider wird er (bis jetzt) nur auf dem PC abgespielt!

Dirac/Schroedinger (BBC)

Auf diesen Codec halte ich schon lange ein Auge. Er ist absolut frei und basiert auf fortschrittliche Techniken, er ist quasi der Codec der nächsten Generation. Leider wird er nur von ein paar PC-Software-Playern und garkeinen Hardware-player unterstützt. :-(

Fazit

Wie wir gesehen haben gibt es mehr Einschränkungen als Möglichkeiten. Unter dem Gesichtspunkt, dass ich auf jeden Fall Plattenplatz einsparen möchte und nur einen Codec mit einer gewissen Unterstützung von Seiten der Heimelektronik in Frage kommt, kommen nur noch der recht weit entwickelte Xvid und der recht gut komprimierende x264 in Frage.

Der Xvid läuft auch auf meinem DVD-Player sowie auf einem Pentium-III prima (hat aber recht blasse Farben) und der x264 wird in Zukunft besser unterstützt werden, in erster Linie durch die BD-Player.

Allerdings ist es mit dem Video-Codec alleine nicht getan, aus kompatibilitätsgründen kommt für mich auch nur ein einziger Audio-Codec sowie ein einziges Container-Format in Frage. Denn die beste Unterstützung wird der AVCHD-Standard (x264 + AC-3 + .mts) erfahren, da dieses Format von allen BD-Playern gelesen werden kann und es auch eine Untermenge des HDTV-Standards ist. Der AC-3-Audio-Codec ist ja auf den Videos vom DVD-Recorder schon drauf, den könnte man einfach durch kopieren direkt übernehmen.

Ich werde bei den Bildformaten aus zwei Gründen nicht auf Kompatibilität achten:

  1. es gibt bereits jetzt eine unüberschaubare Vielzahl an verschiedenen Bildformaten und das wir sicher in Zukunft bestimmt nicht besser, deshalb glaube ich nicht, dass deswegen in Zukunft Kompatibilitätsprobleme zu befürchten sein werden;
  2. wenn man eine PAL-Aufnahme in ein „720p“-AVCHD-Lite-Format umwandelt, dann sind das Ergebnis und die Quelle ungefähr genausogroß;

das würde dann also garkeinen Sinn machen.

Alternativ käme noch das DivX-Format ab der Version 7 in Frage. Hier wird der selbe Video-Codec eingesetzt (H.264), allerdings kann man ihn mit dem Audio-Codec OGG/Vorbis oder AAC kombinieren. Verpackt wird dann alles in das freie Container-Format MKV. Das ist eigentlich genau das was ich will, leider ist es aber zu allen anderen Standard's inkompatibel.

Meine Multimedia-Box kann beides abspielen und ob zukünftige BD-Player das auch können werden, wird sich zeigen.

Immerhin ist AVCHD ein sehr genau definierter Standard und sollte somit auch überall funktionieren wo AVCHD drauf steht (aber sicherlich meistens nur mit dem MP4-Container) und vielleicht noch überall dort wo Blu-ray Disk drauf steht. Denn beides ist ja pracktisch der gleiche Inhalt (Codec's und Container), nur das AVCHD in der Regel eine einzige Datei ist und Blu-ray Disk Verzeichnisse mit mehreren Dateien sind.

Mit dem HDTV-Format (x264 + AAC + .mp4) kann ich mich jedenfalls nicht anfreunden, da es praktisch keine Einschränkungen hat (besonders hinsichtlich der Bildwiederholrate) und deshalb wohl wieder ein Glücksspiel sein wird, ob es einer abspielen kann oder nicht.

Das kompatibelste Container-Format wird mit Sicherheit der MP4-Container sein, allerdings werde ich den nicht einetzen, da er nicht frei ist und für das freie Container-Format MKV deutlich bessere Werkzeuge zur Verfühgung stehen.

Und wenn die Heimelektronik auch in Zukunft weiterhin DivX unterstützen wird, wird sie auch dieses Container-Format unterstützen.

 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht:GNU Free Documentation License 1.2
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki