Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.096 Beiträge
FreePascal / Lazarus
|
Re: FVF (Multimediaformat)
13. Apr 2007, 21:26
Hi,
jetzt habe ich wie versprochen mit der neuen Version auch gleich die neue Version des compilierten Beispiels hochgeladen. Desweiteren wurde folgender Codec geändert:
MJPEG-Codec
Außer dem Namen wurde überhaupt nichts vom AVI-MJPEG-Codec geklaut! Eigene Idee (hatte ich schon, bevor ich jenen kennenlernte)!
Was war bisher? Der MJPEG-Codec beinhaltet seit jeher JPEG-Einzelbilder, wie sie auch in einzelnen Dateien sein könnten. Das heißt, die MJPEG-Bildgröße muss nicht unbedingt mit der Videogröße übereinstimmen. Hat man z. B. verschiedene Digitalfotos (z. B. einige in 640x480 und einige in 1280x960), so kann man diese für eine Diashow in gemeinsame Größe bringen. Die Daten des MJPEG-Codecs können nun u. a. die Originalbilder samt EXIF undsofort beinhalten, welche man dann theoretisch wieder herausextrahieren kann. Für die Diashow wird das Bild aber immer in der gemeinsamen Auflösung, z. B. 1280x960, angezeigt.
Was ist neu? Nun werde ich für Diashows vermutlich irgendwann mal einen Extra-Codec kreieren, welcher verschiedene Originalbilder als Bildformate unterstützt und Übergangsframes (für Bildübergänge!) live berechnet, sodass diese nicht mehr gespeichert werden. Daher habe ich die Strategie für den "klassischen" MJPEG-FVF-Codec geändert. Dieser sieht es jetzt, wenn ein Frame halb so groß wie (oder noch kleiner als) die halbe Videohöhe ist, als ein Interlaced-Frame an (nur jede zweite Zeile gespeichert).
Was kommt noch (irgendwann)? Auf jeden Fall wird es mein MJPEG-Codec unterstützen, dass man bei Wiederholung des vorigen Frames nicht das Frame nochmal speichern muss (bisher kann man schon die Hälfte weglassen - toll. oder?). Eventuell (wohl eher wahrscheinlich) werde ich ihn auch unterstützen lassen, auf ein beliebiges voriges Frame zurückzugreifen, das schonmal war. Wenn also am Ende des Films das Ausgangsbild (oder der Anfangsteil) wiederholt wird, muss das entsprechende Frame (bzw. die Frames) nurnoch auf das erste Vorkommnis desselben Bildes zeigen, damit es nochmal verwendet wird. Damit kann ich sicher nochmal bei einigen Videos ein paar kB einsparen.
Die Aufwärtskompatiblität wird auf jeden Fall erhalten bleiben, also Videos, die jetzt mit MJPEG komprimiert werden, können später abgespielt werden. Umgekehrt natürlich keine Garantie (ein jetzt schon MJPEG unterstützender Player muss später mit der neuen Version neu compiliert werden, um die zukünftigen Videos, welche eventuell Qualitätsmäßig identisch und trtotzdem einige kB kleiner sind, wiederrgeben zu können).
Mfg
FAlter
Hinweis zum Anhang: Dass die Datum-Uhrzeit-Angabe auf verschiedenen Frames unterschiedlich groß ist, ist beabsichtigt. Die Frames, wo sie kleiner ist, sind übrigens interlaced! Dass die Uhrzeit ungleichmäßig vergeht, liegt daran, dass Bereiche, bei denen der Unterschied zum vorigen Frame kleiner als 1 % ist, herausgeschnitten wurden. Das ist der Sinn des Programmes, mit dem das Video erstellt wurde.
Felix Alter
|