Beiträge von osirus

    Es geht dabei um eine Capture-Anwendung. Und weil die Geschwindigkeit des WM-Enkoders um einiges langsamer ist wie bei manchen anderen Enkodern, würde es mich reizen, einen anderen Kompressor zu verwenden.
    Kann man in einem WM-Profil (.prx) einen "fremden" Kompressor definieren?
    Ich müsste mir mal den prx-Standard durchlesen, aber wenn mir vorher jemand sagen könnte, ob der Standard sowas vorsieht oder nicht, dann könnte mich das vor einem möglichen Übel bewahren ;)

    Hallo,

    ich würde gerne anhand einer xy-Koordinatenliste, die ich z.B. als txt- od. csv-Datei habe, ein Overlaybild auf einem Video herumbewegen lassen.
    Dabei sollte jedem Frame ein Koordinatenpaar aus der Liste zugeordet werden.
    Für eine Koordinatenliste wie hier:
    500, 350, 600, 357, 333, 444, usw.
    sollte das Ergebnisvideo also so aussehen, dass das Overlaybild im 1. Frame bei 500, 350 Pixel liegt, im 2. Frame bei 600, 357, im 3. bei 333, 444, usw.

    Die Koordinaten sind nicht regelmäßig oder irgendwie prozedural zu berechnen, das heißt ich muss sie aus der Liste entnehmen und könnte sie nicht im Script durch eine Funktion berechnen lassen.

    Gibt es eine Möglichkeit eine csv Datei oder was ähnliches einzulesen und im Script zu verarbeiten?
    Falls es die nicht gibt, gibt es irgendeinen Trick wie man sowas trotzdem hinbekommen kann?

    Falls es keine Möglichkeit gibt und ich mir ein Programm schreiben würde, dass mir ein avs-Skript generiert, müsste ich dabei auf irgendwelche Beschränkungen achten?
    Ich könnte mir beispielsweise vorstellen, ein Skript mit einem Array mit allen Koordinaten generieren zu lassen (also etwa meineKoordinaten = ArrayCreate(500, 350, 600, 357, 333, 444, usw.)). Der Doku zu AVSLib habe ich entnommen, dass ich im Array auf alle Fälle genug Elemente unterbringen kann um meine Liste unterzubringen. Aber was meint ihr, wie es bei sowas mit der Performanz aussehen wird?

    Vielen Dank und viele Grüße
    oSIRus

    Hallo,

    herzlichen Dank für Deine Ausdauer!!!

    Das wars, was ich wissen wollte ;D

    Zitat

    Sicherlich eine Art Intro, so nach dem Motto: "Dieser selbstgedrehte Urlaubsfilm wird Ihnen präsentiert von ..." auf ein paar Best-of-Ausschnitten? Na, wenn du das unbedingt brauchst...


    ganz weit gefehlt... es geht eigentlich um wissenschaftliche Videoanalyse... aber das würde jetzt zu weit führen...

    abcAVI bringt mich der Sache schon näher, ist aber noch nicht optimal. Es zeigt zumindest an, wieviel bit Farbtiefe -> das reduziert die verbleibenden Möglichkeiten in den meisten Fällen zumindest schon mal erheblich.

    Danke nochmal und viele Grüße

    osirus

    Ich krieg schon direkt ein schlechtes Gewissen, weil ich Dir nicht begreiflich machen kann, was ich will.

    Zitat

    Also noch mal von vorn: Deine Ausgangslage sind Videos verschiedener Formate. Daraus willst du jeweils Stückchen ausschneiden, und am Ende alle Stückchen hintereinander als ein Video haben?


    Das will ich eben nicht.

    Eigentlich will ich ein Programm, das mir den Farbraum eines Videos verrät (siehe meine ersten beiden Posts).

    In alles andere haben wir uns verrannt.
    Nochmal:
    Avisynth, dekomprimieren, komprimieren, direct stream copy usw. klappt eigentlich alles, da hab ich doch eigentlich kein Problem mit.

    Ich will doch gar kein riesiges Video aus vielen Stückchen. Ich will aus zb 100-Ausgangsvideos einfach 100 Videos machen, die immer aus folgendem bestehen sollen:
    Schnippsel aus Ausgangsvideo 1 + Ausgangsvideo 1 = Zielvideo1
    Schnippsel aus Ausgangsvideo 2 + Ausgangsvideo 2 = Zielvideo2
    ...
    Schnippsel aus Ausgangsvideo x ist dabei immer ein durch avisynth erzeugter Schnippsel aus Ausgangsvideo x, den ich mit VDub wieder ins das vermeintliche Ausgangsformat von Ausgangsvideo x enkodieren will. Das Ausgangsformat ist dabei nur nicht bei allen 100 Videos das gleiche, obwohl alle in DivX 4.12 komprimiert sind. Manche der Videos sind z.B. RGB32.

    Dieses Ausgangsformat möchte ich identifizieren, um dieses Format beim enkodieren von "Schnippsel von Ausgangsvideo x" mit VDub einstellen zu können. Da ich ja nur dann "Schnippsel von Ausgangsvideo x" mit Ausgangsvideo x für eine direct stream copy zusammenhängen kann.

    Auf die Einstellung von RGB32 für manche der Videos bin ich halt nur durch brute-force try and error gekommen. Sprich ich hab den Schnippsel halt mal in alle möglichen Formate enkodiert und dann der Reihe nach versucht, welcher davon sich an das Ausgangsvideo anhängen lässt. Da dann der in RGB32 komrimierte Schnippsel sich anhängen lies, habe ich daraus gefolgert, dass dieses Ausgangsvideo auch in RGB32 kodiert sein musste (oder eben RGB32 nur fälschlicherweise im header stand? - weis nicht?)

    Deshalb hätte ich gerne ein Programm, das mir diese Info gibt.

    Vielen Dank nochmal und bitte nicht verzweifeln
    osirus

    Hallo.

    AviSynth dekomprimiert immer.

    Danach wirst du immer neu komprimieren müssen.

    Ja, das ist ja klar uns soll ja auch so sein. Aber damit erzeuge ich ja nur einen kleinen Schnippsel aus dem Ausgangsvideo neu (um ihn zB mit irgendeinem Filter zu verändern) und komprimiere den dann wieder nach divx um ihn anschließend wieder an das Ausgangsvideo anzuhängen.
    Dieses Anhängen erfolgt dann mit direct stream copy (kein avisynth mehr beteiligt und keine Neukompression).

    Zitat

    Deshalb verstehe ich nicht, warum du erst mal mit Verlusten nach DivX komprimierst, dann durch AviSynth die DivX-Schnipsel wieder dekomprimierst, und zum Schluss noch mal neu komprimierst.


    Verstehst Du mich jetzt?

    Zitat

    Wenn du Video aus einem AviSynth-Skript mit Direct Stream Copy in ein AVI kopierst, dann wird in dem AVI unkomprimiertes Video sein - in dem Farbraum, der im AviSynth-Skript verwendet wurde (also bei ehemaligen DivX-AVIs meist ein neues riesiges YV12-AVI


    Das mach ich ja nicht.

    Viele Grüße
    osirus

    Hallo.

    Danke nochmal für die schnelle Antwort.
    Nur leider hast Du mich scheinbar falsch verstanden und die Antwort geht total an meinem Problem vorbei. Deshalb nochmal:
    - ich habe bereits diverse Videos aus diversen Quellen (unterschiedliche Captureprogramme) und die sind bereits in divX
    - diese will ich (ohne neukompression) folgendermaßen schneiden:
    -- ich habe ein avisynthskript das ein stück daraus herausschneidet (dieses Stück will ich später wieder an den Anfang des Ausgangsvideos hängen -->
    dazu öffne ich zunächst das avs in VDub und lasse es durch VDub nach divX enkodieren (nur diesen Schnippsel) --> dann öffne ich dieses Schnippsel in VDub und hänge das Ausgangsvideo dahinter (direct stream copy) --> dann speichere ich es und fertig
    - eigentlich keine komplizierte Sache und eigentlich kein Problem nur
    ... und jetzt nochmal die eigentliche Frage aus meinen vorherigen Postings, die aufkam, weil die direct stream copy anfänglich nicht klappte, weil sich der Schnippsel und das Ausgangsvideo im Farbraum unterschieden:
    Gibt es ein Tool um den Farbraum des Ausgangsvideos zu identifizieren? (den kann ich bisher nur vermuten, da ich nicht weiß, was die verschiedenen Capturetools ausgegeben haben)
    Kann es sein, dass der Farbraum bei DivX (4.12, Project Mayo) eigentlich immer yv12 ist und im Video nur der header einen anderen Farbraum angibt (zb RGB32) und VDub bei der direct stream copy deshalb zickt?
    (PS: lies vielleicht bitte nochmal das vorherige Posting von mir, da hab ich ein bisschen ausführlicher geschrieben, warum sich mir diese Fragen aufdrangen)

    Vielen Dank nochmal
    osirus

    Hi.

    Danke für Deine schnelle Antwort und sorry, dass es bei mir dann etwas länger gedauert hat.

    :grübeln: Worum geht es dir da überhaupt?


    Ist leider eine längere Geschichte:
    Ich möchte Skript gesteuert ein paar Videos "schneiden". Ich hab als Ausgangsmaterial diverse Videos aus unterschiedlichen Quellen, die zwar alle mit DivX 4 komprimiert sind, aber (widererwarten) scheinbar nicht den gleichen Farbraum haben (erwartet hätte ich eigentlich yv12, weil ich dumpf im Hinterkopf hatte, dass der Codec intern diesen Farbraum verwendet?).
    Zum "schneiden" will ich mit avisynth ein Schnippsel aus einem Video erzeugen um es später mit direct stream copy wieder ans Ausgangsmaterial anzuhängen.
    Zunächst lasse ich das avisynth Skript dazu von VDub nach DivX 4 enkodieren, danach will ich das Ausgangsvideo und den Schnippsel aneinanderhängen - und an der Stelle zickt es dann, weil die Dateien lt. VDub ein unterschiedliches Format haben sollen. Einige "Untersuchungen" später habe ich feststellen müssen, dass das Format sich absolut nicht unterscheidet, außer offensichtlich im Farbraum.
    Try and error brachte mich schließlich soweit, dass es für die Videos aus einer Quelle nun klappt, wobei ich das Outputformat zum Enkodieren der Schnippsel auf XRGB32 einstelle (VirtualDub.video.SetOutputFormat(8)).
    Daraus schließe ich, dass der Farbraum des so erzeugten Videoschnippsels auch RGB32 ist? und wenn ich dieses und das Ausgangsvideo auch aneinanderhängen kann folglich das Ausgangsvideo auch RGB32 ist?:grübeln:
    (oder könnte es sein, dass sie eigentlich yv12 sind und nur im header fälschlicherweise rgb32 eingetragen ist???) -> um dem nachzugehen, wäre ich eben auf der Suche nach einem Programm, das den Farbraum analysiert oder identifiziert.

    Zitat

    Der "Farbraum" des Videos hängt von der Kompression durch den beim Erzeugen verwendeten Codec ab, sowie von der Anfrage, die das decodierende Programm an den Codec beim Decodieren meldet.
    ...
    Beispielsweise wird VirtualDub, wenn du den Modus "Full Processing" einstellst, den Codec immer anweisen, das AVI als RGB24 zu decodieren. Bei "Fast Recompress" dagegen wird VirtualDub dem encodierenden Codec erlauben, dem decodierenden Codec erwünschte Farbräume vorzuschlagen -- das wird bei MPEG4 als Zielformat meist eine YUV-Variante sein.


    :grübeln:
    Versteh ich nicht ganz. Bzw. betrifft mein Problem doch nur indirekt? -da bei direct stream copy ja nichts de/enkodiert wird. Außerdem kann ich doch auch bei full processing das decompression format festlegen (oder ist das nur eine pseudo Einstellung und VDub verwendet trotz anderer Einstellung einfach RGB24)?
    Dennoch wäre das bei meinem Problem doch irrelevant, da es doch eigentlich nur darum geht, beim direct stream copy die gleichen Formate bei den aneinandergehängten Videos zu haben und da ist doch in meinem Fall lediglich das Outputformat beim Schnippselenkodieren wichtig. (Am decompression format zu drehen, brächte mir doch höchstens einen kleinen Performanzvorteil, wenn ich in avisynth eine Konvertierung nach yuy bzw. yv12 anwiese und dann in VDub dieses direkt an den Codec geben würde statt es erst nach RGB24 zu konvertieren?)

    Danke nochmal für Deine Hilfe und viele Grüße

    osirus


    PS:

    Zitat


    Danke, genau das habe ich gesucht!

    Hallo und einen guten Morgen!

    Ich bin verzweifelt auf der Suche nach einem Programm oder einer Möglichkeit um den Farbraum von Videos zu identifizieren.
    Ferner wäre ich auf der Suche nach einer Dokumentation von VirtualDub.video.SetInputFormat() und VirtualDub.video.SetOuputFormat().

    Vielen Dank

    osirus

    Hallo.

    Am Ton lags nicht. (AlignedSplice fügt doch wenn nötig ein entsprechendes Audio ("leere Tonspur sozusagen") hinzu?)
    Habs aber hinbekommen - es lag tatsächlich am Farbraum. Ich habe in VDub explizit ein entsprechendes Forat als "output format to compressor" eingestellt und dann hats geklappt. Folglich lag der Fehler nicht am AviSynth-Skript.

    Trotzdem vielen Dank.
    Greets
    osirus

    Hallo.

    Bin noch ein Neuling mit AviSynth und steh gerade vor einem Problem, für das ich keine Lösung finde und bin mir auch nicht 100% sicher, ob ich hier ins richtige Unterforum poste, also Sorry falls ich hier falsch bin.

    Ich möchte in DivX4.12 gecaptchurete Videos von einer Kamera um ein paar schwarze Frames am Anfang verlängern und zwar ohne ein Reencode (mit Hilfe vom VirtualDub).

    Zuerst erzeuge ich mit AviSynth die "passenden" Blackvideo-Frames:

    Code
    Vid=AviSource("Kamera.avi")
    Schwarz=BlankClip(Vid, length=10)
    AlignedSplice(Schwarz,Vid)
    Trim(0,9)


    (Hier dachte ich, ich nehme AlignedSplice um die richtige Größe, Framerate, etc. zu erhalten und trimme dann das Kameravideo raus.)

    Dann enkodiere ich die 10 schwarzen Frames mit VDub nach DivX.
    Nun möchte ich mit VDub das schwarze Video und das Kamera.avi aneinanderhängen (Append Avi Segment) um es schließlich als "direct stream copy" (also ohne Reencode) wieder speichern zu können.

    Allerdings kann ich die beiden Videos nicht zusammenhängen da sie laut VDub Fehlermeldung ein unterschiedliches Format haben sollen. Ich habe die beiden Videos mit GSpot und den "Video Infos" aus VDub und BSPlay verglichen, kann aber keinen Unterschied erkennen.

    Hat jemand eine Idee, woran es scheitern könnte?
    Könnte es evtl. an unterschiedlichen Farbräumen liegen? (Hier bin ich nicht 100%ig sicher ob die Infos die mir BSPlay dazu liefert (YUY2 DR-Overlay) wirklich auf die Quelle bezogen sind und nicht darauf, wie er sie garade darstellt. Weiß aber nicht wie ich das sonst prüfen könnte.)

    Vielen Dank für Eure Hilfe und viele Grüße

    Osirus

    PS: wenn es für das was ich machen will eine viel einfachere Lösung gibt, wäre ich daran natürlich ebenso interessiert

    Hallo.

    Gibt es im avi-Container "etwas" das für die Frames des Videostreams eine genaue Zeitangabe (Systemzeit in Millisekunden) enthält?

    Ich müsste irgendwie herausfinden, wann der erste Frame eines Videos erstellt wurde. Wenn der avi-Container dazu eine Angabe enthält wäre das ziemlich hilfreich. Vielleicht enthält ja der index eine solche Angabe?

    Könnt Ihr mir ein Tool empfehlen, das den index aus der avi-Datei extrahiert und lesbar (also in Textformat) ausgibt?

    Danke und viele Grüße

    Michi