Erste Schritte Video schneiden mit AviSynth - einfach Teil rausschneiden

  • Hi!

    Situation:
    Ich habe massig aufzeichnungen von 'guten Stellen/Ausschnitte' die ich aus größeren videos rausschneiden will.

    zb: videofile1
    2:00- 2:40
    245-640
    642-804
    1010-1320
    1325-1640
    1641-1817
    1920-2000
    2055-2245

    -> ich habe immer die minuten aufgezeichnet der stellen, eben zb minute 2:00 bis 2:40. Diese 40sek möcht ich gerne 'rausschneiden'.

    Ich habe das video schon mit einer .avs-datei geladen. Jetzt will ich eben nur diese abschnitte haben.
    Dachte wohl 'trim' ist der Befehl den ich brauche. Aber ich habe nicht die frame-anzahl die ich wohl für diesen befehl brauche sondern nur die zeit. Wie kann ich das lösen?

    lieben Dank für Hilfe!
    mike

  • dank!

    dass heißt ich muss die fps wissen von dem video, wie krieg ich das raus?

    Grundsätzlich habe ich eben so eine liste von zeiten, zb
    2:00- 2:40
    245-640
    642-804
    1010-1320

    Ich habe da so um die 30 * 2h-videos, mit je 25 zeitabschnitten. Und in Zukunft noch mehr - also einen Haufen.

    Bisher habe ich verwendet: SolveigMM AVI Trimmer
    Da muss ich aber händisch beim Gui einen zeitraum eingeben, dann paarmal klicken, dann nächsten zeitraum.. -> unbefriedigend für so eine masse von zeiträumen.

    Ich frage mich - gibt es auf dieser Welt eine Software mit der ich schnell
    von A. videofiles + aufgezeichnete Zeiträume in Minuten:Sekunden laufzeit
    nach B. ausgeschnittene Teile nach den Aufzeichnungen komme?

    Auf einem anderem Forum wurde mir avisynth empfohlen, jetzt stehe ich aber wie gesagt wieder an. Zb jede Minuten:Sekunden zeit in frames umrechnen händisch, da kann ich solveigmm avi trimmer auch verwenden, weil dauert auch lang bei 1000 zeiten zum umrechnen

    Hilfe wär supi, obs da eine lösung gibt, mit avisynth oder irgendeinem anderen programm - eben dass das programm min:sek verwenden kann und gleichzeitig man mehrere zeitabstände eingeben kann (wo er zb lauter einzelne kleine video-files daraus macht).
    lg! mike

  • Ja, wie ... die Framerate wissen?! Wo hast du denn die Videos her, dass du das nicht weißt?! ;)

    Falls es TV-Capture, DVB oder DVD ist: In Europa und Japan ist PAL üblich, das hat 25 fps. Ansonsten - v.a. in den USA - ist NTSC verbreitet, das hätte 30000/1001 fps. Und Kinofilme (oder NTSC mit Soft-Telecine) hätten 24000/1001 fps. Manche Handkameras haben auch exakt 24 fps, und bei HD-Videos sind auch andere runde Frameraten möglich...

    Es gibt allerdings auch Videos, die keine konstante Framerate haben. Das kann z.B. bei ASF / WMV, FLV oder bei RM vorkommen.

    MediaInfo wird im Allgemeinen in der Lage sein, darüber Auskünfte zu erteilen.
    __

    Mit verschiedenen Skriptsprachen (PHP / Perl / Python / Ruby / AutoIt /...) oder Hochsprachen ließe sich problemlos ein Programm schreiben, welches aus einer Datei mit Zeitbereichen vollautomatisch eine AviSynth-Skript-Datei generiert, die aus der Source-Funktion und einer Liste von Trim-Befehlen besteht.

  • dank


    also die einzigen optionen scheinen demnach mir einen programmierer zu zahlen oder selber eine programmiersprache zu lernen.
    na hui.

    Ein Programm wo man eine Liste von Zeiten eingeben kann wär fein.

    hmmm.. schauma mal

    lg

  • Zitat

    Ich frage mich - gibt es auf dieser Welt eine Software mit der ich schnell
    von A. videofiles + aufgezeichnete Zeiträume in Minuten:Sekunden laufzeit
    nach B. ausgeschnittene Teile nach den Aufzeichnungen komme?

    Eine Software.......da gibs Mehrere.

    Für uns prof.Cutter und Videobearbeiter ist das täglich Brot.
    Entweder legen wir die Zeitcodeanzeige in das Vorschaubild im Videobearb.Programm oder wir habens auf dem Kontrollmonitor.
    Im Allgemeinen geht die Cutterei in einem enormen Tempo vonstatten.
    Ein "Schnittpunkt" wird ganz einfach mit einem Shortcut betätigt.
    Genauigkeit Framegenau.
    Hier mal ein Beispielscreen.
    [Blockierte Grafik: http://img801.imageshack.us/img801/2503/cutp.jpg]

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

  • Ich arbeite hauptsächlich mit Edius,da ich von allen Kisten jeweils eine Bildanzeige auf ext.Kontr.Moni oder per HDMI an den Plasma geben kann.
    In Vegas und anderen Tools habe ich keine Echtzeitausgabe.

    Ev.reicht für Deine Arbeit die kleinere Version NEO oder Du besorgst Dir eine 30 Tage Demo im Netz.

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

    Einmal editiert, zuletzt von Goldwingfahrer (11. September 2010 um 10:00)

  • Also mit avisynth geht das schon, sogar ohne großartig selbst rechnen zu müssen.

    Und zwar lässt sich die fps des Videos aktuellen Inputs durchaus abfragen.

    Wenn mein Quellvideo z.B. A = mpeg2source("D:\video1.d2v") heißt, dann kann ich mit framerate(A) die Bildrate abfragen.

    Aus deinem Beispiel oben: Sekunde 245 bis Sekunde 640 konstruiert man dann den Trim-Befehl

    trim((245*framerate(A)),(640*framerate(A)))

    Man kann auch für framerate(A) eine eigene Variable festlegen

    MyFPS = framerate(A)

    MyFPS lässt sich dann Anstelle von framerate(A) ins Script schreiben.

    2:00-2:40 wäre dann sowas

    trim((MyFPS*((2*60)+0)),MyFPS*((2*60)+40))

    Machbar ist mit Avisynth eigentlich alles, man muss allerdings die Doku etwas wälzen.

    (Oben genannte Befehle enthalten ggf. Fehler und repräsentieren nur die grundsätzliche Logik.)

  • genial! danke danke danke!


    gleich bissi ausprobiert:

    folgendes funktioniert:

    Zitat


    film = AviSource("DVD1 - Escalation Why Faster is Better.avi")
    fps = framerate(film)
    trim(film,2*500,2*10000)


    Folgende sachen funktionieren nicht:

    Zitat


    trim(film,fps*120,fps*160)

    Zitat


    trim(film,(fps*120),(fps*160))

    schau später mal weiter
    lg! mike

  • Eventuell wäre Runden etwas exakter, denn int() rundet immer ab, soweit ich mich erinnere - könnte also im Fall von NTSC wegen nicht-ganzzahliger Frameraten bis zu 1/fps Sekunden zu früh sein. Mit round() wäre es halt abwechselnd bis zu einer halben Framedauer mal früher, mal später. Kann aber auch egal sein - je nach persönlichem Anspruch. Bei PAL mit 25,0 fps und anderen ganzzahligen Frameraten wäre es egal (bis auf mögliche Fließkomma-Rundungsfehler).

    Und wer sich das skripten lassen will, der kann auch Formeln benutzen, die Minuten und Sekunden sichtbar lassen:

    Code
    film = AviSource("DVD1 - Escalation Why Faster is Better.avi")
    fps = film.Framerate
    clip01 = trim(film, round(fps*(60*[COLOR='#008080'][i]startmin01[/i][/COLOR]+[COLOR='#008000'][i]startsec01[/i][/COLOR])), round(fps*(60*[COLOR='#800080'][i]endmin01[/i][/COLOR]+[COLOR='#800000'][i]endsec01[/i][/COLOR])))
    clip02 = trim(film, round(fps*(60*[COLOR='#008080'][i]startmin02[/i][/COLOR]+[COLOR='#008000'][i]startsec02[/i][/COLOR])), round(fps*(60*[COLOR='#800080'][i]endmin02[/i][/COLOR]+[COLOR='#800000'][i]endsec02[/i][/COLOR])))
    clip03 = trim(film, round(fps*(60*[COLOR='#008080'][i]startmin03[/i][/COLOR]+[COLOR='#008000'][i]startsec03[/i][/COLOR])), round(fps*(60*[COLOR='#800080'][i]endmin03[/i][/COLOR]+[COLOR='#800000'][i]endsec03[/i][/COLOR])))
    return clip01 ++ clip02 ++ clip03

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!