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 Die, 02 Feb 2010, Al Bogner schrieb:
>Am Dienstag, 2. Februar 2010 19:13:12 schrieb David Haller:
>> Am Mon, 01 Feb 2010, Al Bogner schrieb:
>> >mencoder stream.dump -ovc x264 -x264encopts qp=27:threads=auto:pass=1 -vf
>> >crop=688:544:8:16,yadif=0,softskip,harddup,hqdn3d,unsharp=l:5x5:0.5
>> > -nosound - of rawvideo -o /dev/null
>>
>> Du mußt noch skalieren. Und den aspect-ratio setzen wenn's anamorph ist.
>
>Habe ich alles probiert, vermutlich falsch oder die Optionen waren
>wirkungslos. Es waren keine extremen Eierköpfe und es sah eher nach einer
>Schlankheitskur aus ;-)
>
>Zuerst eine Verständnisfrage:
>
>Was bedeutet das:
>VO: [vdpau] 704x576 => 768x576 Planar YV12
Dein Monitor hat quadratische Pixel, um die nicht-quadratischen
korrekt wiederzugeben wird die DVD-Auflösung auf die passende 4:3
Monitorauflösung skaliert.
$ echo 'scale=5;704/576;768/576;' | bc
1.22222
1.33333
>Welchen Wert verwendet man beim Skalieren?
>
>http://de.wikipedia.org/wiki/DVD-Video
>PAL-DVDs (z. B. in Europa verwendet) bieten eine Auflösung von 704×576/720×576
>Bildpunkten mit einer Bildfrequenz von 25 Hz
>http://de.wikipedia.org/wiki/Pixelseitenverhältnis
>Bei der digitalen Speicherung von PAL oder NTSC kommen nichtquadratische Pixel
>zum Einsatz. Ein 4:3-Bild entspricht hier einer Auflösung von 702×576 (PAL)
>bzw. 702×480 (NTSC) Pixeln, wobei allerdings typischerweise 720×576 bzw.
>720×480 Pixel-Bilder gespeichert werden. Auf Video-DVDs sind unter anderem die
>Formate 720×576 und 704×576 (wegen der Teilbarkeit durch 16) erlaubt.
>
>Auf welchen Wert skaliert man nun mit mencoder, auf den quadratischen oder den
>rechteckigen?
Wenn du das Ergebnis konform auf DVD haben willst: auf 704x576 oder
720x576.
>> >Wie skaliere ich richtig, sodass sich ein DVD-kompatibles Format ergibt,
>> > also 704 oder /20 x 576?
>>
>> Croppe nicht wenn du eh wieder raufskalieren mußt, zumal du bei so nem
>> krummen Faktor eh nochmal Qualität verlierst.
>
>Leicht gesagt. An den Kanten beschädigte VHS-Bänder und / oder Spurlagenfehler
>will ich korrigieren. Man kann darüber diskutieren ob ein paar Pixel mehr
>weggeschnitten werden sollen. Ich achte darauf, dass es ein Vielfaches von 8
>ist.
Ah, dann sollte man schwarze Ränder draus machen. Um wenige
Zeilen/Spalten hochskalieren würde ich wg. dem Qualitätsverlust nicht.
>Mit scaling fiel mir auf, dass es egal ist, ob ich auf 704x576 oder 720x576
>rechnen lasse. In _beiden_ Fällen ergab sich:
>VO: [vdpau] 704x576 => 794x576 Planar YV12
>Ich habe es mit und ohne aspect 4/3 probiert. Mit aspect war es noch mehr in
>die Breite gedehnt. Da passiert irgendeine automatische Korrektur.
>
>Warum 794x576?
Fehler in der Reihenfolge, denke ich.
>Ich würde also gern bei diesem Beispiel bleiben und dazu die richtige
>Skalierung finden oder eine Alternative mit ähnlichem Ergebnis.
>
>Ich kann mir 2 Varianten vorstellen:
>
>1)
>Es wird ein Rand weggeschnitten und auf 704x576 die Auflösung hochgerechnet.
>Das Ergebnis sollte so aussehen:
>VO: [vdpau] 704x576 => 768x576 Planar YV12 [zoom]
Am Rechner: ja.
>2)
>Es wird der Rand weggeschnitten und der fehlende Teil mit einem schwarzen
>Balken ersetzt, d.h. es wird nicht skaliert.
>Das Ergebnis sollte wieder so aussehen:
>VO: [vdpau] 704x576 => 768x576 Planar YV12 [zoom]
>
>_Wo_ setze ich die Skalierung ein. IMHO ist ja die Reihenfolge entscheidend.
Müßte ich jetzt auch ausprobieren.
>Ich hatte folgendes mit einem 4:3 Original probiert:
>
>mencoder stream.dump -ovc x264 -x264encopts qp=27:threads=auto:pass=1 -vf
>crop=688:544:8:16,scale=704:576,yadif=0,softskip,harddup,hqdn3d,unsharp=l:5x5:0.5
>-sws 9 -nosound - of rawvideo -o /dev/null
>
>Also zuerst crop, dann scale, dann Deinterlace, dann entrauschen, dann
>schärfen. Ist sws an der richtigen Position? Der Befehl läuft durch.
Flasche Reihenfolge denke ich.
>Es wäre nett, wenn du einen kompletten Befehl anführen könntest, damit die
>Reihenfolge dann sicher passt.
Versuch mal folgendes (wenn's nicht passt: mail mir mal 30s oder so
vom Ausgangsmaterial, bis 5 MB geht gut auch ohne Vorwarnung).
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.
Achso, die Filter kannst du im pass=1 (zumindest teilweise
weglassen). Also:
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". 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 ;)
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.
HTH,
-dnh
--
$max = [$a => $b] -> [ $a <= $b ]; ## Simon Cozens