Re: Fragen zu xvid

David Haller <[email protected]>
Newsgroups gmane.linux.suse.multimedia.german
Message-ID <[email protected]>
Hallo,

Am Sam, 27 Feb 2010, Al Bogner schrieb:
>Welche Möglichkeiten gibt es mit mencoder einen lossless codec zu verwenden, 
>zB corePNG, FFV1 und yuv4mpeg2. Ich würde damit gerne testen. Es geht darum 
>eine Basis zum Video editieren zu erzeugen und dann wieder lossless 
>auszugeben. Dieses File wird dann entsprechend umkodiert in DVD, xvid oder 
>x264.

    -ovc lavc -lavcopts vcodec=ffv1

>> >WIe muxe ich Bild und Ton? Mit avimerge komme ich nicht weiter?
>> 
>> avimerge -o AUSGABE.avi -i MOVIE-video.avi -p MOVIE-aidNN.avi
>
>Damit bin ich wegen der falschen Kodierung gescheitert und habe mich zu Tode 
>gesucht ;-)

*g* ist auch nicht gerade "intuitiv". mkvmerge ist da flexibler, da
ich nur für auf dem Rechner backe verwende ich inzwischen nur noch
mkvmerge. Und ggfs. kann man immer noch in nen AVI-Container
"umpacken".
 
>> Wobei: du mußt Video/Audio nicht getrennt kodieren, wenn's nur um eine
>> Tonspur geht.
>
>Das habe ich mit mittlerweile angewöhnt. In seltenen Fällen ist das die 
>einzige Lösung und ich kann sie den Dualcore besser nutzen, wenn die Audio-
>Kodierung im Hintergrund läuft.

Das mp3 kodieren geht doch im Rauschen der CPU-Last unter ... Grad
wenn du x264 kodierst. mp3 geht hier auf der ollen Kiste in Echtzeit!
x264/PAL kommt auf vielleicht 1-2fps. Die neue Kiste kodiert ne ganze
Audio-CD in 1-2min oder so (kommt's mir vor ;) und die ist ja noch
langsamer als deine Kiste.

>> Meine Parameter für Divx, die in >90% meiner Fälle passen:
>
>Vielen Dank! Ich habe gehofft, dass du dich meldest. X264 dauert für manche 
>Dinge zu lange, längere als 1 Nacht mit dem 5050e ist schon sehr lang. Ich 
>will daher mit xvid vergleichen. Außerdem bkeibt der Popcorn manchmal hängen, 
>d.h. stop und play drücken und Rückspulen geht auch nicht mit x264.

BTW: wg. den anderen Mails hier und in opensuse-de: ich hab die Tage
einfach nicht die Zeit gehabt da rumzutesten. Ist aber alles markiert
und nicht vergessen.

>> Pass1:
>> mencoder -aspect 4/3 -ovc lavc -lavcopts \
>>    
>>  vcodec=mpeg4:trell:vqmin=2:mbd=2:cmp=3:vqscale=3:vbitrate=24000000:vb_stra
>> tegy=1:b_sensitivity=4:vpass=1:turbo \ -vf
>>  yadif=0,softskip,harddup,unsharp=l:5x5:0.5,dsize=4/3 -sws 9 \ -nosound -o
>>  /dev/null -passlogfile AUSGABE.passlog "$EINGABE"
>> 
>> Pass2:
>> mencoder -aspect 4/3 -ovc lavc -lavcopts \
>>    
>>  vcodec=mpeg4:trell:vqmin=2:mbd=2:cmp=3:vqscale=3:vbitrate=24000000:vb_stra
>> tegy=1:b_sensitivity=4:vpass=2 \ -vf
>>  yadif=0,softskip,harddup,unsharp=l:5x5:0.5,dsize=4/3 -sws 9 \ -oac mp3lame
>>  -lameopts preset=standard \
>>     -o AUSGABE.avi -passlogfile AUSGABE.passlog EINGABE.avi
>> 
>> [-sws 9 brauchst du nur mit nem skalierenden Filter]
>
>schadet -sws 9, wenn es dabei ist? AFAIR hast du mal geschrieben, dass es 
>ignoriert wird. Ich öchte mir ein Script basteln, das möglichst universell 
>ist. Der Befehl wird mehrzeilig und ich nehme dann einfach Zeilen raus oder 
>editiere sie.

-sws ist nur relevant wenn auch ein Filter verwendet wird, der
skaliert, konkret also v.a. '-vf scale='. Wenn du lustig bis: kodier
mal ne Datei (groß genug, so 10min sollte es dauern) mit und ohne -sws
(und beide ohne -vf scale). Und beides per 'time mencoder ...'
natürlich benchmarken (und guck die 'fps' am Ende an). Der Rechner
sollte derweil nix anderes machen. Dann "weißt" du, ob -sws
bremst. Mit '-msglevel' kannst du auch noch "hochdrehen"

>Wärst du so nett und schreibst das getrennt für Audio und Video, damit ich auf 
>der sicheren Seite bin?

Pass 1 wie oben.

Pass 2:

mencoder -aspect 4/3 -ovc lavc -nosound \
  -lavcopts vcodec=mpeg4:trell:vqmin=2:mbd=2:cmp=3:vqscale=3 \
  -lavcopts vbitrate=24000000:vb_stra tegy=1:b_sensitivity=4:vpass=2 \
  -vf yadif=0,softskip,harddup,unsharp=l:5x5:0.5,dsize=4/3 -sws 9 \
  -o AUSGABE.avi -passlogfile AUSGABE.passlog EINGABE.avi

Audio:

mencoder -ovc frameno -oac mp3lame -lameopts preset=standard \
    -o MP3FILE.avi EINGABE.avi

und ggfs.:

mplayer -dumpaudio -dumpfile MP3FILE.mp3 MP3FILE.avi

>Wann macht 3-pass Sinn?

Wenn du auf jedes zehntel-% PSNR o.ä. Wert legst (wobei du da schon
mit den codec-Optionen deutlich mehr verändern kannst, schon ein
bisserl mehr Bitrate z.B. wenn man nach Bitrate kodiert o.ä. bringt
mehr als ein 3-pass).

>> das 'vbitrate=' braucht's übrigens nur, wenn der codec per vqscale
>> über IIRC 1800kbps landet, und um die obere Grenze anzuheben eben
>> diese Option.
>> 
>> Im Grunde reicht übrigens, von der Quali/Dateigröße passt das i.d.R.:
>> 
>>     -lavcopts vcodec=mpeg4:trell:vqscale=3:vpass=2
>> 
>> trellis-quantization ist halt schon besser und nicht default.
>
>Die Auswirkung der Optionen verstehe ich noch nicht.

trell wählt "trellis-quantization" aus.

[bei -lavcopts]
       trell
              Trellis searched quantization.  This will find  the
              optimal  encoding  for  each  8x8  block.   Trellis
              searched quantization is quite  simply  an  optimal
              quantization  in the PSNR versus bitrate sense (As­
              suming that there would be no rounding  errors  in­
              troduced  by  the  IDCT, which is obviously not the
              case.).  It simply finds a block for the minimum of
              error and lambda*bits.

[bei -x264encopts]
       (no)trellis
              Trellis Quantization is a kind of adaptive  quanti­
              zation  method  that  saves bits by modifying quan­
              tized coefficients to make them  more  compressible
              by  the  entropy encoder.  Its impact on quality is
              good, and if VHQ uses too much CPU  for  you,  this
              setting  can  be  a  good alternative to save a few
              bits (and gain quality at fixed bitrate) at a less­
              er cost than with VHQ (default: on).

So wie ich's in der Doku (nicht nur manpage) gelesen habe bekommst du
mit trellis eben eine bessere Qualität bei gleicher Bitrate (oder bei
gleicher Qualität braucht's halt weniger Bits). Achso, bei Interesse:

http://de.wikipedia.org/wiki/Quantisierung
http://en.wikipedia.org/wiki/Quantization
http://en.wikipedia.org/wiki/Quantization_(image_processing)

ungelesen:
http://kb-bmts.rz.tu-ilmenau.de/gcg/html/Vortr_03_pdf/vollbeding.pdf

vqscale wählt die Quantizer Stufe (qp= bei x264).

>Bei x264 bin ich übrigens meistens mit qp=29 zufrieden.

Das müßte ungefähr vqscale=5 entsprechen (evtl. vqscale=4.5 oder so).

HTH,
-dnh

-- 
> <examines mouse> Buttons?  What is this 'buttons'?         -- R. P. Grant
<examines mouse> I see 4 legs, a tail, and a head with two beady eyes that are
kind of bugged out from having its neck broken by a spring-loaded arm coming
down on it rather forcibly. But no buttons, you're right.    -- G. Reed
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.