4:3 => 16:9

04/12/2012 - 16:16 von spamfalle2 | Report spam
Wenn man bei Onlinetvrecorder Filme runterlàdt, ist ja noch Vorlauf und
Nachlauf drumrum. Ich schneide das derzeit mit Quicktime Player 7 weg,
weil MPEG Streamclip mit den AVI-Dateien von OTR nicht klarkommt.

Ich habe gerade einen Film, der eigentlich 16:9 (1024*576, anamorph,
also 720*576 nichtquadratische Pixel) sein sollte. Leider war davor (im
Vorlauf) ein 4:3-Film, und somit denkt QT-Player dass die ganze Datei
720*576 sei.
Ist sie de-facto ja auch, jedenfalls sind nur 720*576 Pixel drin, aber
die sollen beim Abspielen eben zu 1024*576 aufgeblasen werden.

Bei VLC kann ich das beim Abspielen manuell einstellen - aber wie bzw.
womit kann man direkt im Film das Flag "anamorph 1024*576" setzen,
natürlich ohne den Film selber zu Re-encoden, sondern nur ein paar Bytes
richtigstellen?

In a world without walls and fences,
who needs windows and gates?
 

Lesen sie die antworten

#1 Marcus Jodorf
05/12/2012 - 00:22 | Warnen spam
Marc Stibane schrieb:

Ich habe gerade einen Film, der eigentlich 16:9 (1024*576, anamorph,
also 720*576 nichtquadratische Pixel) sein sollte. Leider war davor
(im Vorlauf) ein 4:3-Film, und somit denkt QT-Player dass die ganze
Datei 720*576 sei. Ist sie de-facto ja auch, jedenfalls sind nur
720*576 Pixel drin, aber die sollen beim Abspielen eben zu 1024*576
aufgeblasen werden.



Also wir reden von AVI? Das ist simpel und wieder nicht. Man kann die
aspect ratio im Container (also AVI selbst) hinterlegen. Geht z.B. mit
mencoder, ffmpeg und vielen Artverwandten, die libavformat (aka ffmpeg
libs verwenden). Einfach Streamcopy, passende Flags und fertig.
Nachteil: Außer den ffmpeg Ablegern wertet das AFAIK sonst kaum ein Player
aus.

In h.264 kann man auch im Stream selber aspect ratio informationen
hinterlegen. Das geht wieder mit den üblichen Verdàchtigen auch ohne
recodieren, also z.B. mit ffmpeg und bei mp4 auch mit gpac/MP4Box.

so in der Art (ungetestet):
ffmpeg -i infile -vcodec copy -acodec copy -vbsf \
h264_changesps=arg1[/arg2[/arg3]] outfile
dabei u.a.:
sar=x:y - Set sar to x:y, 0:0 will remove sar info

Aber mit Quicktime als Player ist das alles Glücksspiel. Als Player war
das schon immer Schrott und wird es wohl auch bleiben.
Da gab es z.B. lange Zeit ziemlich willkürliche Wechsel zwischen den
Versionen, bei denen z.B. im Falle von mp4/mov mal die Informationen im
Container und mal die im h.264 Stream bezüglich aspect verwendet wurden.
Also stàndiges Glückspiel was beim Abspielen wirklich dargestellt wurde.

Bei VLC kann ich das beim Abspielen manuell einstellen - aber wie bzw.
womit kann man direkt im Film das Flag "anamorph 1024*576" setzen,
natürlich ohne den Film selber zu Re-encoden, sondern nur ein paar
Bytes richtigstellen?



Das ist nicht nur ein Flag. Im Falle von im Avi Container hinterlegten
Infos (die halt leider eher wenige nutzen) ist das easy weil man da im
Grunde einfach nur 16/9 reinschreiben muß.

Stream ist manchmal fieser, weil man das teilweise verschieden
(DAR,PAR, etc) angeben muß, je nachdem, was erwartet wird.

Grundsàtzlich:
DAR = SAR x PAR:
display aspect ratio = frame (sample) aspect ratio x pixel aspect ratio

bei z.b. PAL (720x576), das anamorph als 1024x576 (also DAR 16/9)
wiedergegeben werden soll, würde man PAR auf 64/45 setzen, für 4/3 wàre
16/15 passend. Je nachdem, ob gecropt wird àndert sich gegebenenfalls
noch DAR und man darf nochmal neu rechnen.


Gruß,

Marcus
⚂⚃

Ähnliche fragen