die einfachste lösung wäre natürlich wenn qt endlich h264 in einem ausreichenden maße unterstützen würde
Wenn 'pasp' doch Teil des MPEG Standards wird, wäre es ja ausreichend diesen Wert zu verwenden. Prinzipiell verstehe ich auch wie das funktioniert, nur fällt es mir schwer das auf mp4box zu übertragen. Ich habe mir den Quellcode mal näher angesehen; ich glaube nicht, dass es ein großer Aufwand wäre das zu implementieren. Mir fehlt bisher leider noch der Durchblick bei dieser doch etwas komplizierten Software
Die Codebeispiele aus dem von Drachir verlinkten Dokument sehen nach C++ aus, es wird z.B. die Klasse "PixelAspectRatioBox" definiert. mp4box ist aber C und kennt keine Klassen. Wenn "pasp" nur als float oder sowas gespeichert würde, dann könnte ich es vielleicht selbst hinbekommen, nur leider ist "pasp" vom Typ "PixelAspectRatioBox", der wiederum so aussieht:
class PixelAspectRatioBox extends Box(‘pasp’){
unsigned int(32) hSpacing;
unsigned int(32) vSpacing;
}
Keine Ahnung wie man das dann in mp4box implementiert.
Alles andere wie "clap" könnte man auch fürs Erste weglassen, da die Eigenschaften sowieso optional sind. Somit muss man lediglich sowas wie die Klasse "PixelAspectRatioBox" implementieren, und "VisualSampleEntry" um die Eigenschaft "pasp" vom Typ "PixelAspectRatioBox" erweitern.
Dann muss man ein "PixelAspectRatioBox" Objekt erzeugen und die Eigenschaften "hSpacing" und "vSpacing" mit entsprechenden Werten (PAR) belegen. Das muss man dann nur noch an geeigneten Stelle (die ich allerdings noch nicht gefunden habe) in der "pasp" Eigenschaft von "VisualSampleEntry" speichern, und theoretisch müsste es dann auch in Quicktime 7.1 mit anamorphen MP4 Videos funktionieren, ganz ohne Transformations-Matrix...
mp4box verwendet halt an Stelle der Klassen Structs und ggfs. Konstanten, aber wie ich das jetzt genau übertrage habe ich leider noch nicht herausfinden können.