Re: [opensuse-multimedia -de] Re: [opensuse-multimedia-de] Verständnisfr age crop / scale - mencoder

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

Am Mit, 03 Feb 2010, Al Bogner schrieb:
>Am Dienstag, 2. Februar 2010 23:17:54 schrieb David Haller:
>ich antworte jetzt nur teilweise, mehr morgen.

dito *gähn*

>> Wenn du das Ergebnis konform auf DVD haben willst: auf 704x576 oder
>> 720x576.
>
>Mir ist nicht klar, ob das sinnvoll ist. Ergebnis ist ja x264 und
>beim Popcorn habe ich festgestellt, dass der auch
>"Nicht-DVD-Auflösungen" abspielt. Wann würde bei x264 eine
>DVD-Auflösung Sinn machen? Ziel sollte schon sein möglichst eine Norm
>zu verwenden. Nur welche? Die DVD-Norm ist schon fast Vergangenheit.

Äh, ich vergaß: wir reden über H.264. Da muß man sich wohl wirklich
nimmer an DVD-Norm (MPEG-2/720x576) halten müssen. Würde dann also
vorschlagen auf die "komplette" 4:3 Auflösung (=768x576) zu
skalieren. Ob mit Balken oder "aufgezogen" mußt du anhand des
Materials entscheiden.

>> Ah, dann sollte man schwarze Ränder draus machen. Um wenige
>> Zeilen/Spalten hochskalieren würde ich wg. dem Qualitätsverlust nicht.
>
>Theoretisch logisch. Ich bin mir aber in der Praxis nicht klar, ob die 
>Qualität merklich darunter leidet, da sie sowieso schon katastrophal ist.

s.o. Prinzipiell hast du bei "krummen" Änderungen immer mehr
Verlust. Offensichtlich wird's v.a. wenn du einen simplen
Skalierungsalgorithmus verwendest also z.B. gerade nicht Lanczos (-sws
9) sondern z.B. "nearest neighbour" (-sws 4) ;) Mit den prinzipiellen
Schwierigkeiten der "krummen" Skalierung kämpfen die guten Algos aber
natürlich ebenso.
 
>> Versuch mal folgendes (wenn's nicht passt: mail mir mal 30s oder so
>> vom Ausgangsmaterial, bis 5 MB geht gut auch ohne Vorwarnung).
>
>Wie kriege ich mencoder dazu von zB Position 12min50sec. 30sec zu encodieren?

    mencoder -ss 12:50 -endpos 30 ...

Das kodiert jew. von/bis zum naheliegendsten Keyframe. Für's
ausschnippeln aus dem Rohmaterial also:

    mencoder -oac copy -ovc copy -ss 12:50 -endpos 30 \
        -o svcd_bsp.avi stream.dump

[mendoder packt halt per default in .avi]

>Ich wollte sowieso schon ein Beispiel zum Download vorbereiten. Ich
>freue mich über dein Interesse. Ich denke meine Probleme sind ganz
>anders gelagert als beim Rippen von DVDs.

Aber schon ähnlich ;)
 
>> mencoder -ovc x264 -x264encopts qp=27:threads=auto:pass=1 \
>>     -vf yadif=0,softskip,harddup,hqdn3d \
>>     -vf crop=688:544:8:16,expand=704:576,dsize=4/3 \
>>     -sws 9 -nosound -of rawvideo -o /dev/null stream.dump
>> 
>> Nachschärfen nur, wenn's besser ausschaut, den unsharp=l:5x5:0.5 dann
>> am besten als letzten Filter.
>
>Ja, ich finde auch, dass man am Ende schärfen soll, allerdings denke ich 
>manchmal noch schärfer, wenn du dir das Beispiel ansiehst, das demnächst 
>folgt.

IIRC ist das der letzte Parameter des unsharp-Filters, setz den mal
von 0.5 auf z.B. 1.0 oder 1.5. Lt. Doku ist 1.5 IIRC das obere Ende
des sinnvollen Bereichs. Achso: IIRC beeinflußt der Filter so auch nur
die Helligkeit ('l' als erster Parameter), du solltest evtl. auch noch
auf Farbebene (leicht) nachschärfen, z.B. sowas:

    unsharp=l:5x5:1.0:c:5x5:0.5

Ich habe mit dem Filter bisher aber selber nicht rumgemacht, da mußt
du also selber ein bisserl rumprobieren (und die Doku dazu
angucken)...

==== man mencoder (MPlayer 1.0rc2) ====
       unsharp[=l|cWxH:amount[:l|cWxH:amount]]
              unsharp mask / gaussian blur

                 l
                      Apply effect on luma component.

                 c
                      Apply effect on chroma components.

                 <width>x<height>
                      width  and  height of the matrix, odd sized
                      in both directions (min = 3x3, max =  13x11
                      or 11x13, usually something between 3x3 and
                      7x7)

                 amount
                      Relative amount of sharpness/:blur  to  add
                      to  the  image  (a  sane  range  should  be
                      -1.5-1.5).
                         <0: blur
                         >0: sharpen
====

Der Algorithmus (Gaussian) ist AFAIR einer der "guten" Filter.

>> Achso, die Filter kannst du im pass=1 (zumindest teilweise
>> weglassen). Also:
>
>Habe ich mir auch schon gedacht, dass vermutlich nicht alles notwendig ist.

Im Zweifel laß die Parameter drin, 'turbo=1' sollte schonmal
beschleunigen / irrelevante Filter "entsorgen", hoffentlich ... Bei
lavc-mpeg4 (=Divx) hab ich mit allen Filtern fast 100% mehr fps ;)

>> mencoder -ovc x264 -x264encopts qp=27:threads=auto:pass=1:turbo=1 \
>>     -vf yadif=0,softskip,harddup \
>>     -vf crop=688:544:8:16,expand=704:576,dsize=4/3 \
>>     -sws 9 -nosound -of rawvideo -o /dev/null stream.dump
>> 
>> Ich schreib übrigens auch schon im pass1 auf Platte (und nicht nach
>> /dev/null, erstens kann ich dann direkt die Größe nachgucken und
>> zweitens werd' ich dann nicht erst beim pass=2 von ner vollgelaufenen
>> Platte "uberrascht".
>
>Die HD wird kaum voll. Nachdem ich aber auf der Partition mit 2 Dualcores 
>gleichzeitig 4 Filme erstelle, merke ich, dass die HD schon in die Knie geht, 
>wenn ich dann von dieser Partition noch einen 5. Film zur Kontrolle abspielen 
>will.

Geht nicht um den Speed, sondern den Platz ;) Meine Platten sind
generell "voll". Da passiert's immer mal wieder, das die Partition
dann komplett voll ist (df -h . liefert <= 4k Platz frei).
Merkst du mit mencoder an 2 Symptomen:
    1. Framerate von mencoder bricht massiv ein
    2. das ganze System wird lahm (auch auf dem Dualcore, wg. I/O Last)
Bei mir macht's da inzwischen: *ding* Du hast mal wieder vergessen,
daß auf der Partition nimmer genug Platz is ...

Dummerweise gibt's im Pass=2 (mind. bei divx) dann gern auch
Bildfehler an der jew. Stelle, selbst ein Strg+z, Platz-Schaffen und
'fg' hilft also nicht. Ergo: mind. Pass=2 nochmal von vorn...

>> Und grad bei x264 hat das wohl kaum Einfluß auf
>> die Kodiergeschwindigkeit, daß da was weggeschrieben wird. Bei 'copy'
>> komm ich auf der neuen Kiste auf selbst fast randvollen Platten noch
>> auf >2k fps ;)
>
>Wie 2k = 2000?

Jup. Spitze (je nach Platten- und sonstiger Auslastung is auch mal >3k
fps bei 'mencoder -oac copy -ovc copy' ;)

>Mit Filtern werkelt es gerade um die 3-5 fps, aber nachts ist mir das egal. 
>Der PC darf arbeiten, während ich schlafe ;-)

Meiner nicht. Gleiches Zimmer. Ich bin da eher der "morgens anwerfen"
Typ. Wobei ich hier ja eh eher nach Divx und in niedrigere Auflösungen
kodiere. Immerhin: wg. dem MoBo Defekt neulich bin ich gleich von AM2
auf AM2+ (GA-MA770-UD3) umgestiegen, und kann also nach Wunsch ne
nochmal schnellere CPU als zuvor mit dem alten MoBo möglich einbauen ;)
IIRC fast alle im aktuellen Athlons und Phenoms. Mit z.B. nem Athlon
II X2 250e oder so dürfte ich einige fps mehr erreichen ;)
Im Moment reicht mir die Leistung aber, aber ich werd vermutlich
zugreifen bevor diese CPUs aus dem Handel verschwinden.

>> mencoder -ovc x264 -x264encopts qp=27:threads=auto:pass=2 \
>>     -vf yadif=0,softskip,harddup,hqdn3d \
>>     -vf crop=688:544:8:16,expand=704:576,dsize=4/3 \
>>     -sws 9 -oac copy -of mpeg -o foo.mpeg stream.dump
>> 
>> Oder so. Weiß jetzt aber nicht so recht, inwieweit der Rauschfilter
>> auf die errechnete Bitrate Einfluß hat. Bei der Kodierung nach QP ist
>> aber generell eigentlich 1-pass ausreichend, 2-pass bringt da lt. Doku
>> eigentlich nix.
>
>2-pass bringt um 1/3 kleinere Ergebnisse. Ich habe mit qp und Bitrate 
>probiert.

Hätte ich jetzt so nicht gedacht :)) Hängt sicher auch vom Material
ab. Bei "gutem" Material wird "qp=" sicher weniger "überrascht" als
bei schlechtem, was qp= erst im 2ten Durchgang berücksichtigen kann ;)

Bei mir rödelt so'n typischer 90min Film im Pass=1/Divx mit ~60 fps
durch, und i.d.R. hab ich genug anderes auf der Kiste zu tun, da
leiste ich mir das 2-Pass einfach ;)

-dnh

PS: *grummel grumpf grumpf* Ich hoffe, daß ich mal wieder den Kopp
    dafür hab am Script weiterzubasteln ... Is ja auch für mich. Das
    alte Script ist inzwischen doch recht speziell ...

-- 
Any sufficiently advanced technology is indistinguishable from magic.
                                                 -- Arthur C. Clarke
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.