FB18 - Das Forum für Informatik

fb18.de / Off-Topic / Allgemeines

Croopping mit VirtualDub

Croopping mit VirtualDub 2003-09-14 16:25
Anonymer User
Hallo,

ich will bei eins von meinen Videos(AVI-Format, mit XviD-Codec enkodiert) einen Rand entfernen.
Habe auch schon bei Filters "null transform" ausgewählt und dann auf croopping geklickt, hat alles noch funktioniert. Habe auch bei compression den xvid-codec ausgewählt und die bitrate eingegeben. erst wenn ich auf "save as avi" klicke und nachdem ich den namen der datei angegeben hab sagt er:

Cannot start video compression:

The source image format is not acceptable
(error code -2)

wie bekomme ich es hin, dass die croopping-funktion funktioniert?

Re: Croopping mit VirtualDub 2003-09-14 16:27
Da:Sourcerer
Kann es sein, dass nach dem cropping die Dimensionen des Videos ungerade sind? Das würde ich mal korrigieren; es hört sich so an, als käme XviD nicht mit dem Format zurecht…

Re: Croopping mit VirtualDub 2003-09-14 16:28
Fred
ich will bei eins von meinen Videos(AVI-Format, mit XviD-Codec enkodiert) einen Rand entfernen.
Du weisst, dass dadurch die Qualität nur schlechter werden kann?

Re: Croopping mit VirtualDub 2003-09-14 16:36
BoTaS
Müssen die Werte nicht sogar durch 8 teilbar sein?

Re: Croopping mit VirtualDub 2003-09-14 16:36
Da:Sourcerer
Du weisst, dass dadurch die Qualität nur schlechter werden kann?
Beziehst du dich darauf, dass ein Video, dass mit einem verlustbehafteten Codec kodiert wurde und den selben Prozess nochmal durchläuft schlechter wird oder auf das Randwegschneiden?

Re: Croopping mit VirtualDub 2003-09-14 16:38
tankwarrior03
jo, danke da:sourcerer, genau die auflösung war ungerade, jetzt funkts.
nur die quali wird echt etwas schlechter. kann man bei virtualdub auch ohne qualitätsverlust etwas von einem video abschneiden oder halt einen rand entfernen?

Re: Croopping mit VirtualDub 2003-09-14 16:38
Da:Sourcerer
Müssen die Werte nicht sogar durch 8 teilbar sein?
Unterschiedlich. Ich glaube, bei DivX war's durch 4…

Re: Croopping mit VirtualDub 2003-09-14 16:39
Da:Sourcerer
[…]kann man bei virtualdub auch ohne qualitätsverlust etwas von einem video abschneiden oder halt einen rand entfernen?
Nein. Siehe oben.

Du kannst aber mit diversen Filtern etwas nachhelfen. z.B. etwas smoothen.

Originalqualität kriegst du nicht wieder hin, da du mit einem lossy Codec etwas kodierst, das vorher bereits einen lossy Codec durchlaufen ist.

Re: Croopping mit VirtualDub 2003-09-14 16:40
Fred
nur die quali wird echt etwas schlechter. kann man bei virtualdub auch ohne qualitätsverlust etwas von einem video abschneiden oder halt einen rand entfernen?
Du kannst auf der Zeitleiste ohne Qualitätsverlust schneiden, wenn Du Direct Stream Copy einstellst. Aber prinzipbedingt gibt es immer einen Qualitätsverlust, sobald Du Filter benutzt: das Video muss decodiert, gefiltert und neu encodet werden.
Ach ja wenn Du schon Filter benutzt, dann arbeite mit AVISynth und nimm bloss nicht die Filter von VirtualDub. Letzteres ist langsamer und verfälscht die Farben durch die Konvertierung YV12->RGB->YV12 ein bischen.

Re: Croopping mit VirtualDub 2003-09-14 16:41
Da:Sourcerer
Du kannst auf der Zeitleiste ohne Qualitätsverlust schneiden, wenn Du Direct Stream Copy einstellst.
Das geht? Das ist mir echt neu… Ich dachte immer, bei Formatänderungen muss alles neu kodiert werden[img]http://www.fb18.de/gfx/2.gif[/img]

Re: Croopping mit VirtualDub 2003-09-14 16:42
BoTaS
Aber eigentlich müsste es doch theoretisch gehen verlustfrei etwas abzuschneiden, wenn man eine ganze Reihe/Spalte der 4*4 oder 8*8 Kästchen abschneidet…

Re: Croopping mit VirtualDub 2003-09-14 16:44
tankwarrior03
schon, aber wenn man auf direct stream copy schaltet, kann man den rand nicht mehr entfernen, sprich die cropping-funktion nicht mehr aktivieren

Re: Croopping mit VirtualDub 2003-09-14 16:49
Da:Sourcerer
Aber eigentlich müsste es doch theoretisch gehen verlustfrei etwas abzuschneiden, wenn man eine ganze Reihe/Spalte der 4*4 oder 8*8 Kästchen abschneidet…
Eben nicht. MPEG speichert keine Vollbilder, sondern immer nur Veränderungen zwischen den Bildern ab (ich nehme jetzt die I- und B_Frames einfach mal aus dem Konzept raus[img]http://www.fb18.de/gfx/22.gif[/img]).
Ergo: Um den Rand zu entfernen, muss der gesammte MPEG-Stream neu übersetzt werden.

Re: Croopping mit VirtualDub 2003-09-14 16:50
Fred
Du kannst auf der Zeitleiste ohne Qualitätsverlust schneiden, wenn Du Direct Stream Copy einstellst.
Das geht? Das ist mir echt neu… Ich dachte immer, bei Formatänderungen muss alles neu kodiert werden[img]http://www.fb18.de/gfx/2.gif[/img]
Wenn man auf der Zeitleiste schneidet, gibts aber keine Formatänderungen :-)
Macht man doch z.B., wenn man ein 1400MB AVI auf zwei CDs aufsplitten will.

EDIT: natürlich kann man nicht beliebig schneiden, sondern nur auf den Keyframes

Re: Croopping mit VirtualDub 2003-09-14 16:52
BoTaS
Eben nicht. MPEG speichert keine Vollbilder, sondern immer nur Veränderungen zwischen den Bildern ab (ich nehme jetzt die I- und B_Frames einfach mal aus dem Konzept raus[img]http://www.fb18.de/gfx/22.gif[/img]).
Ergo: Um den Rand zu entfernen, muss der gesammte MPEG-Stream neu übersetzt werden.

Schon klar. Aber wenn sich eine Veränderung nicht gerdade auf den Rand bezieht könnte er doch die Alten Daten nehmen und nur die nötigen Teile neu comprimieren.

Re: Croopping mit VirtualDub 2003-09-14 16:53
tankwarrior03
ich will ja aber nicht die länge des videos verändern, sondern einen teil des bildes abschneiden.

und das geht nur im full compressing mode

Re: Croopping mit VirtualDub 2003-09-14 16:54
Da:Sourcerer
Wenn man auf der Zeitleiste schneidet, gibts aber keine Formatänderungen :-)
Macht man doch z.B., wenn man ein 1400MB AVI auf zwei CDs aufsplitten will.

Das ist aber auch etwas anderes: Hierbei bearbeitet man ja eigentlich nur das AVI-Containerformat, nicht den Inhalt.

Re: Croopping mit VirtualDub 2003-09-14 16:55
Da:Sourcerer
Eben nicht. MPEG speichert keine Vollbilder, sondern immer nur Veränderungen zwischen den Bildern ab (ich nehme jetzt die I- und B_Frames einfach mal aus dem Konzept raus[img]http://www.fb18.de/gfx/22.gif[/img]).
Ergo: Um den Rand zu entfernen, muss der gesammte MPEG-Stream neu übersetzt werden.
Schon klar. Aber wenn sich eine Veränderung nicht gerdade auf den Rand bezieht könnte er doch die Alten Daten nehmen und nur die nötigen Teile neu comprimieren.
Das macht er doch?

Re: Croopping mit VirtualDub 2003-09-14 16:56
BoTaS
Das macht er doch?
glaub nicht, denn die Quallität des ganzen Bildes läßt nach. Nicht nur die des Randes.

Re: Croopping mit VirtualDub 2003-09-14 16:58
Da:Sourcerer
Das macht er doch?
glaub nicht, denn die Quallität des ganzen Bildes läßt nach. Nicht nur die des Randes.
Ok, da haben wir gerade aneinander vorbeigesprochen[img]http://www.fb18.de/gfx/22.gif[/img]
Wäre aber ein schönes Feature Request: Der Codec soll Teile des Bildes einfach ignorieren.

Re: Croopping mit VirtualDub 2003-09-14 16:58
tankwarrior03
Nicht nur die des Randes.

ich will ja den rand wegmachen.

Re: Croopping mit VirtualDub 2003-09-14 16:59
Fred
Wäre aber ein schönes Feature Request: Der Codec soll Teile des Bildes einfach ignorieren.
Du meinst beim Decoden, damit der Rand nicht dargestellt wird? Nimm AVISynth.

Re: Croopping mit VirtualDub 2003-09-14 17:00
Fred
ich will ja den rand wegmachen.
Also am besten ist, wenn Du die Originalquelldatei, aus der Du das XviD erstellt hast, noch auftreiben kannst, damit Du VOR dem ersten Encoding den Rand wegschneiden kannst.

Re: Croopping mit VirtualDub 2003-09-14 17:00
tankwarrior03
Du meinst beim Decoden, damit der Rand nicht dargestellt wird? Nimm AVISynth.

ja genau, is das'n extra progam, wo kreig ichs her?

Re: Croopping mit VirtualDub 2003-09-14 17:01
tankwarrior03
Also am besten ist, wenn Du die Originalquelldatei, aus der Du das XviD erstellt hast, noch auftreiben kannst, damit Du VOR dem ersten Encoding den Rand wegschneiden kannst.

ne, ich hab nur die datei mit dem rand

Re: Croopping mit VirtualDub 2003-09-14 17:05
Fred
Du meinst beim Decoden, damit der Rand nicht dargestellt wird? Nimm AVISynth.
ja genau, is das'n extra progam, wo kreig ichs her?
www.avisynth.org

Damit kannst Du .avs Dateien erstellen (Textdateien), die sich wie AVI Files öffnen lassen. Du kannst croppen, resizen, filter anwenden… das sollte man auch z.B. beim DVD encoden machen (natürlich nur, wenn die DVD keinen CSS hat ;-))) Ist viel schneller, als wenn man die Filter von VirtualDub benutzt (bei mir ist das Encoden, seit ich AVISynth 2.5.2 benutze, doppelt so schnell).

EDIT: nicht vergessen, dann bei VirtualDub "Fast Recompress" einzustellen, damit auch wirklich im YV12 gearbeitet wird. Ausserdem braucht man imo VirtualDubMod.

Eine alternative, wenn Du nur den Rand nicht beim Abspielen sehen willst, ist natürlich ein vernünftiger Player, der Zoomen kann -> BSPlayer.

Re: Croopping mit VirtualDub 2003-09-14 17:06
tankwarrior03
is dann bei avisnyth auch kein qualitätsverlust, weil die eit beim encodieren kommt es mir net so an, ich will nur die best-möglichste quali

Re: Croopping mit VirtualDub 2003-09-14 17:11
Fred
is dann bei avisnyth auch kein qualitätsverlust, weil die eit beim encodieren kommt es mir net so an, ich will nur die best-möglichste quali
Encoden? Du sollst nix encoden. Du benutzt ein .avs Script, welches Dir die Ränder wegschneidet, beim Angucken. Das .avs läuft in jedem Player, der AVI unterstützt (also quasi jeder). Sobald Du neu encodest, ist ein Qualitätsverlust unvermeidbar.

Re: Croopping mit VirtualDub 2003-09-14 17:12
tankwarrior03
ok, ich hab jetzt avisynth installiert, sorry hab mit dem noch nie gearbeitet.

was muss ich jetzt mache?

Re: Croopping mit VirtualDub 2003-09-14 17:15
Da:Sourcerer
Doom9.org durchforsten.
IIRC, hatten die im Forum recht geile Links zu Tutorials…