Erstmal, hallo forum
Ich hab so eine kleine cam die 640x480 mjpeg filmchen aufnimmt. Alles schön und gut, nur die files sind halt riesig - ergo ich konvertiere sie in h264+aac um sie online zu stellen.
installiert habe ich dazu mplayer-1.0_rc2_p26753-r1 und x264-0.0.20080406
Habe mir in den letzten tagen die mencoder manpage und die dokumentation auf https://localhost/www.mplayerhq.hu durchgelesen und da steht an etlichen stellen immer wieder "Für gute ergebnisse bei wenig bitrate -> multipass. immer. ausser vllt wenn man realtime encoding macht, aber ansonsten, immer, definitiv, die entwicker empfehlen ausdrücklich multipass, usw. usf. " - ich habe jetzt etliches ausprobiert, mit den mencoder einstellungen rumgespielt - und singlepass bringt die besten ergebnisse, d.h. für meinen fall: die kleinsten dateien bei (fast) gleicher qualität wie das ausgangsmaterial.
Aktuell bin ich bei dieser zeile für ausreichende quali bei minimaler dateigröße:
mencoder $1 -vf hqdn3d=1:2:1 -ovc x264 -x264encopts crf=30:frameref=16:keyint=1500:bframes=16:b_adapt:b_pyramid:deblock:cabac:direct_pred=auto:weight_b:partitions=all:8x8dct:me=umh:me_range=64:subq=7:chroma_me:mixed_refs:brdo:bime:trellis=2:nofast_pskip -oac faac -faacopts quality=30 -o x264-encoded16-MAXQUALI-nopass-$1
Das stampft z.b. diese 10 minütige 236mb mjpeg datei auf 22mb ein (258.3 kbit/s).(Vorsicht, upload der files läuft noch bis ca 24uhr)
Jetzt kommen in dem video viel himmel und langsame bewegungen vor, deswegen ist die bitrate so gering. Bei anderen videos sinds nach dem encoding auch mal 400kbit/sek, je nachdem was da drin vorkommt.
Wie bekomm ich das jetzt mit multipass encoding hin? ich bin ja gezwungen da direkt eine bitrate anzugeben, bevor er zu enkodieren anfängt - aber die weiss ich doch gar nicht! Gebe ich z.b. 300 an, wird die resultierende datei im beispiel oben größer als nötig, und bei actionreichen filmen wird sie kleiner als eigentlich nötig und siehts bescheiden aus. Ich müsste also etliche male enkodieren, mir das ergebnis anschauen und die bitrate anpassen bis es passt - das kann nicht sinn der sache sein.
Die einzige verwendung für multipass encoding die ich sehe ist dass man sagt: hier, ich hab 100min video, mach mal eine 700mb datei draus mit der besten qualität die du hinbekommst. Das macht vllt sinn wenn man cds brennt aber fürs internet sind die vorraussetzungen meist anders gelegen, eher nach dem motto:
Mach mir ein video in einer qualität die ich brauche, und mach die datei so klein wie möglich.
Wie passt das zum multipass encoding? Garnicht, oder? Oder verpeile ich mal wieder irgendwas?