Programm um Videos automatisch zu schneiden

  • Hallo liebes Doom9 Forum, :winken:

    Ich habe um die 100 Video aufnahmen (XVID) bei denen ich gerne immer das Intro wegschneiden möchte.
    Sind also immer so ca 1:10min (oder beim Frame 1848) die weg müssten.

    Wollte es erst mit einem AVS versuchen:

    AviSource("Capture001.avi")
    Trim(1848,0)

    Aber dann muss ich glaube jedes video neu encoden ? :grübeln:

    Kann ich sowas auch mit Virtualdub via Jobcontrol machen ?
    Habe leider keine Ahnung :nein:


    Danke im Voraus :)

    MFG
    Joe

  • ja, Du kannst Vdub öffnen, Video und Audio auf DirectstreamCopy stellen, dann die Jobcontrol öffnen. Dort unter Edit>Prozess Directory den Quell-Ordner wählen, in den Du deine Videos am Besten extra legst. Danach den Zielordner wählen, am Besten ein leeres Verzeichnis, auf keinen Fall den Quellordner. Die JobControl mit OK schliessen. Jetzt öffnest Du die Datei "VirtualDub.jobs" im VDub-Installationsordner mit einem Editor und kopierst in jeden Job folgende Zeile:

    Code
    VirtualDub.subset.AddRange(1848,1000000);


    unter die Zeile:

    Code
    VirtualDub.subset.Clear();


    Das Ganze sollte dann ungefähr so aussehen:


    Der Schnitt ist dann eventuell nicht framegenau, da im Directstreamcopy-Modus nur an Keyframes geschnitten werden kann. Den zweiten Wert in der hinzugefügten Zeile setze ich einfach so hoch (1 Million) an, da er ruhig höher sein darf, als die Framezahl des zu bearbeitenden Videos, aber auf keinen Fall kleiner, so würde man ja auch am Ende was abschneiden.

    Zum Editieren muss VDub geschlossen werden, da die Änderungen sonst nicht in der Jobliste gespeichert werden.

    Edit: Ich habe das mal mit einem einzige Video probiert, hat geklappt.

    mawi2006

    Intel Q9550@2500 MHz / Motherboard Name Asus P5N-VM WS / Grafikkarte NVIDIA Quattro FX470 / 4x2 GB 800 MHz / DVD-RAM DVR-216DBK / LiteOn IHas 322 / HDD: 500 GB HD502HJ / SSD: Solidata K5 64GB

  • Hallo mawi2006, :)

    Danke für deine schnelle und gute Antwort :daumen:

    Habe alles so eingestellt wie du gesagt hast.
    Würde auch super klappen jedoch setzt er bei mir dann die endmarkierung auf diesen hohen Wert (10000000).
    Wenn ich das Video mit MPC öffne ist das Intro zwar weg :) aber leider zeigt er mir auch eine Filmlänge von 111 Stunden an :hm:

    Das endframe Liegt so bei ~ 34.950

    Kann man auch irgendwie die Keyframes ansteuern ? Damit ich die kompletten schwarzen frames am ende wegschneiden könnte ?
    Macht auch nix wenn ich das in 2 durchgängen machen müsste.

    Danke für deine Hilfe :)

    MFG

    Joe

  • Ähm, stimmt leider, darauf hatte ich beim betrachten des geschnittenen Videos nicht geachtet.

    Wenn die Folgen deiner Serie? immer die gleiche Länge plusminus ein paar Frames haben, könntest Du statt dem Wert "1000000" den Wert eintragen, den deine längste Folge hat, dann hättest Du bei einigen Folgen zwar ein paar Sekunden Standbild am Ende, das kostet alllerdings ja kaum Speicherplatz, da Framekopien so gut wie keine Daten benötigen.

    Wenn mir noch was besseres einfällt, poste ich es hier noch rein.

    mawi2006

    Intel Q9550@2500 MHz / Motherboard Name Asus P5N-VM WS / Grafikkarte NVIDIA Quattro FX470 / 4x2 GB 800 MHz / DVD-RAM DVR-216DBK / LiteOn IHas 322 / HDD: 500 GB HD502HJ / SSD: Solidata K5 64GB

  • Hallo mawi2006,

    Danke für deine Hilfe :)
    Zur not kann ich ja noch den endframe setzen.
    Das Problem ist das das Intor dieser Serie (wie so oft) viel lauter ist als die Stimmen in der Serie selbst.

    Ich habe in einem andern Forum folgenden Code endeckt.
    Kann nicht wirklich was damit anfangen aber vieleicht hilft er dir.

    Code
    VirtualDub.Open(VirtualDub.params[0], "");
    VirtualDub.subset.Delete();
    VirtualDub.subset.Add(1800, VirtualDub.video.length - 1800);
    VirtualDub.SaveAVI(VirtualDub.params[1]);

    MFG

  • Zitat

    VirtualDub.subset.Add(1800, VirtualDub.video.length - 1800);

    Das sollte das Problem lösen, scheint mir folgendes zu bedeuten:
    Starte mit Frame 1800, kodiere gesamte Framezahl des Videos - 1800 Frames.

    Du müsstest also nur statt 1800 deine 1848 benutzen.

    mawi2006

    Intel Q9550@2500 MHz / Motherboard Name Asus P5N-VM WS / Grafikkarte NVIDIA Quattro FX470 / 4x2 GB 800 MHz / DVD-RAM DVR-216DBK / LiteOn IHas 322 / HDD: 500 GB HD502HJ / SSD: Solidata K5 64GB

  • Habe das Problem erkannt, die Zeile muss richtig heissen:

    VirtualDub.subset.Addrange(1800, VirtualDub.video.length - 1800);

    mawi2006

    Intel Q9550@2500 MHz / Motherboard Name Asus P5N-VM WS / Grafikkarte NVIDIA Quattro FX470 / 4x2 GB 800 MHz / DVD-RAM DVR-216DBK / LiteOn IHas 322 / HDD: 500 GB HD502HJ / SSD: Solidata K5 64GB

  • Ok, mencoder kenne ich mich nicht aus, müsste aber funktionieren.

    Wenn nicht, poste doch mal einen Ausschnitt der Joblist, die nicht funktioniert.

    mawi2006

    Intel Q9550@2500 MHz / Motherboard Name Asus P5N-VM WS / Grafikkarte NVIDIA Quattro FX470 / 4x2 GB 800 MHz / DVD-RAM DVR-216DBK / LiteOn IHas 322 / HDD: 500 GB HD502HJ / SSD: Solidata K5 64GB

  • Probiere mal Mencoder.

    mencoder.exe e:\input.avi -oac copy -ovc copy -ss 0:1:10 -o e:\output.avi

    wie wäre denn die syntax um einfach x-sekunden aus dem file zu entnehmen?

    scheint ja einfacher zu gehen als mit vdubmod
    hab per google jetzt nix zur syntax gefunden :( aber vielleicht ist es auch einfach nur zu spät

    nimmt der mencoder immer die keyframes? nicht das dann ein kaputtes avifile herauskommt

    gn8

    EDIT

    Zitat

    Z:\>mencoder.exe z:\input.avi -oac copy -ovc copy -ss 0:1:10 -endpos 0:0:30 -o z:\output.avi

    glaub das ist schon alles, kann das sein?

    Einmal editiert, zuletzt von Karl Heinz (28. März 2009 um 01:24)

  • Die Zeile würde an bei 1min 10 Sekunden starten und dann bis ca. 1min 40 Sekunde alles in die Datei output.avi weiterleiten. Man beachte, dass hier Start- und Endposition leicht Variieren können, da mencoder sich an den I-Frames des Inputmaterials orientieren wird/muss.

    Cu Selur

  • hab jetzt mal versucht das ganze in ne dos batch zu packen

    Zitat

    FOR %%F IN ("*.avi") DO mencoder -oac copy -ovc copy -ss 0:1:10 -endpos 0:0:30 %%F -o final/%%F

    konnte leider im netz und in der doshilfe nicht finden was %%F genau macht
    die fertige datei soll anders heißen als die ausgangsdatei

    input.avi ist die ausgangsdatei
    %-neu war ein ergebnis
    input.avi-neu ein weiteres
    %-neuF noch eins

    ich weis nicht wie ich das "-neu" an den bestehenden dateinamen anhängen kann

  • Mein Beispiel war für drag&drop, probiers mal so.

    Code
    For %%1 In (e:\Video\*.AVI) Do mencoder.exe %%1 -oac copy -ovc copy -ss 0:0:10 -endpos 0:0:20 -o "%%~dpn1-neu.avi"
  • danke MegaDeath das geht soweit ;)
    werde mal versuchen in den pfad noch einen unterordner mit einzubauen damit er mit das neue file in nem ordner ablegt. denke aber nicht das ich das hinbekommen werde

    mfg

Jetzt mitmachen!

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