- Motion-JPEG
-
Motion JPEG (MJPEG) ist ein Video-Codec, bei dem jedes Einzelbild separat als JPEG-Bild komprimiert wird.
Inhaltsverzeichnis
Überblick
Die mit MJPEG-komprimierten Videos haben im Gegensatz zu den mit MPEG komprimierten eine von der Bewegung des Bildes unabhängige Qualität. Wegen der hohen Qualität (bei 3,125 MByte/s (25 MBit/s) etwa SVHS-Qualität) der Videos und der schon vorhandenen Encoder-Hardware wird dieser Standard oft von digitalen Kameras verwendet. Durch die einzelne Kompression aller Einzelbilder ist es bei diesem Format möglich, einen Video-Clip ohne die Notwendigkeit des Recodierens bildgenau zu schneiden, was bei MPEG im allgemeinen nur bei Schlüsselbildern möglich ist. Es gibt zahlreiche Varianten des Formats, die zum Teil nicht zueinander kompatibel sind.
Für das Quicktime-Format hat Apple zwei Arten der Kodierung definiert: MJPEG-A und MJPEG-B. Die zweite Variante ist dabei nicht mehr zum JPEG File Interchange Format kompatibel – einzelne Bilder können nicht mehr einfach aus dem Video-Stream in ein JPEG-Bild konvertiert werden, ohne die Informationen im Kopfdatenbereich der Datei zu verändern.
Die Kompressionsrate liegt mit 1:5 bis 1:13 zwischen unkomprimierten Formaten wie RGB/8 (1:1) oder YCbCr/8 (1:1,5 oder 1:2) und der MPEG-2-Kompression (ca. 1:25 bis 1:100). Bei hoher Qualität entspricht das für PAL-Video in etwa 30 MBit/s, weshalb die meisten Digitalkameras nur relativ kurze Sequenzen aufnehmen können.
Anwendung
Server
M-JPEG findet Anwendung bei IP-Cams, also Netzwerkkameras. Dabei wird der Stream häufig über das Protokoll HTTP versendet. Damit der Client (meistens ein Webbrowser) die Daten korrekt darstellen kann, wird der spezielle MIME-Type multipart/x-mixed-replace;boundary= verwendet. Es folgt ein frei wählbarer String zur Trennung zwischen den einzelnen Bildern nach dem MIME-Type boundary=. Danach folgen die einzelnen JPEG-komprimierten Bilder, getrennt durch den im MIME-Type definierten String. Beispiel-Implementationen findet man in [1] und [2].
Clients
Häufig genutzte Clients zur Darstellung von M-JPEG Streams sind übliche Webbrowser wie zum Beispiel Firefox. Zur Zeit unterstützt der Internet Explorer keine M-JPEG Streams. Für diesen populären Browser existieren Lösungen wie zum Beispiel Java-Applets. Netzwerkkompatible Multimediaplayer wie VLC und MPlayer sind ebenfalls geeignet zur Darstellung eines M-JPEG Streams. Außerdem können die Spielekonsolen Wii von Nintendo sowie Playstation 3 und Playstation Portable von Sony Filme im M-JPEG Format abspielen.
Weblinks
- MJPEG tools zum Aufnehmen und Bearbeiten von M-JPEG unter Linux
- [1] cambozola Java M-JPEG Client und M-GIF Server
- [2] MJPG-streamer einfacher M-JPEG streaming server
Wikimedia Foundation.