[Wiki] Motion JPEG

Motion JPEG, kurz auch MJPEG genannt, ist ein Video-Codec, bei dem jeder Frame einzeln im JPEG-Format gespeichert wird.

Im Gegenteil zu MPEG komprimierten Videos, bei denen unter anderem auch die Unterschiede zwischen den einzelnen Einzelbildern gespeichert werden, wird bei MJPEG komprimierten Videos jedes Einzelbild separat im JPEG-Format gespeichert. Dies bringt Vor- sowie Nachteile mit sich.

Zum einen gibt es keine Artefaktbildung bei schnellen Szenen/bewegten Bildern, zum anderen macht sich dies aber auch in der Dateigröße bemerkbar, die bei MJPEG komprimiertern Videos um einiges höher ist, als bei anderen Video-Kodierungen.
(Bei SVHS-Qualität kommen ca. 25 MBit/s bei Nutzung von MJPEG zustande.)

MJPEG kodiertes Videomaterial findet man heutzutage meistens nur noch im IP-Cam Bereich.
(IP-Cam = Netzwerkkamera)
Für Netzwerkkameras ist die MJPEG Kodierung ideal, da sie relativ wenig Rechenleistung braucht und der von der Kamera erstellte Videostream in jedem gebräuchlichen Browser abgespielt werden kann.
Desweiteren können aber auch Geräte wie iPhone, iPad, Sonys Playstation 3 oder die Nintendo Wii mit Material im MJPEG-Format umgehen.

Wie ist ein MJPEG Stream strukturiert?

Da MJPEG kodierte Videos meistens über das HTTP-Protokoll verschickt werden und in einem Webbrowser angesehen werden sollen, benötigen Sie einen speziellen MIME-Type namens “multipart/x-mixed-replace“.
Danach folgt eine weitere spezielle Zeichenfolge, die so aussieht: “;boundary=–boundary
Was hinter dem “boundary=” steht, kann vom Programmierer frei festgelegt werden. Es ist der Trenner, der später im Videostream sagt, wann ein neues Einzelbild im Datenstrom auftaucht.

Ein simpelster MJPEG Stream könnte wie folgt aussehen:

HTTP/1.0 200 OK
Server: code-bude.net beispiel server
Cache-Control: no-cache
Cache-Control: private
Content-Type: multipart/x-mixed-replace;boundary=--boundary

--boundary
Content-Type: image/jpeg
Content-Length: [länge des bildes in bytes]

[jpeg bytes schreiben]

--boundary
Content-Type: image/jpeg
Content-Length: [länge des bildes in bytes]

[jpeg bytes schreiben]

[...]

1 Kommentare

  1. The new Zune browser is surprisingly good, but not as good as the iPod’s. It works well, but isn’t as fast as Safari, and has a clunkier interface. If you occasionally plan on using the web browser that’s not an issue, but if you’re planning to browse the web alot from your PMP then the iPod’s larger screen and better browser may be important.

    Apple now has Rhapsody as an app, which is a great start, but it is currently hampered by the inability to store locally on your iPod, and has a dismal 64kbps bit rate. If this changes, then it will somewhat negate this advantage for the Zune, but the 10 songs per month will still be a big plus in Zune Pass’ favor.

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Sie dient nur dem Spamschutz.