Eine Funktion um mehrere Clips zu öffnen/bearbeiten?

  • Servus ihr Avisynth Kenner und Programmierer!

    Wie würde eine Avisynth Funktion aussehen um mehrere Clips hintereinander zu öffnen,
    zu bearbeiten und hinterher zusammen zu fügen ohne alle einzeln ins Script einhämmern zu müssen?
    Ist sowas realisierbar, gibt es vieleicht schon irgendwo was vergleichbares?


    Der Hintergrund:

    Ich habe hin und wieder einige Kurzclips von meiner DigiCam die ich ins DVD Format umwandle.
    Das bearbeiten für sich stellt kein Problemm dar, da es aber immer so an die 50 (mal mehr mal weniger)
    Clips sind, ist das Schreiben des Scriptes doch recht langwierig und mühsam, da habe ich mich gefragt
    ob man das nicht vieleicht mit einigen Funktionen mehr oder weniger automatisieren kann.

    Gruß
    LR

  • Nicht ganz das was mir vorschwebte, aber so wie es aussieht muss ich mich wohl auch noch in die Batch Programierung einarbeiten.

  • Hab mir jetzt ne kleine Batch geschrieben.
    Nach vielem Lesen und Probieren, funktioniert es einigermassen, aber
    falls jemand noch Tipps hat wie man es besser machen kann, bin ich offen für Vorschläge.

  • Ich habe gadacht, daß da dann ein durchgehender Clip daraus wird, denn man wieder trimmen müsste um die Clips einzeln bearbeiten zu können. Ist doch so oder nicht?

  • Persönlich komme ich mit diesen komischen Batch-Dateien nicht zurecht- da nehme ich lieber Perl.

    Ich habe den folgenden Perl-Script "MoreClips.pl" zusammengebastellt, der (sofern ich beurteilen kann) in etwa das Gleiche wie die Batch erledigt:

    Perl
    #!/usr/bin/perl##		1.0.0	22.09.2005	original version#use strict;use Cwd;my $Version = '1.0.0 (22.09.2005)';#		----------------#		Usage subroutine#		----------------sub usage {	die <<"END_USAGE";Perl-Script MoreClips.pl, Version $VersionErzeugt ein AVISynth-Script fuer die in der Eingabeliste genannten Dateienum diese per Avisynth bearbeiten zu können.Der Script wird auf STDOUT geschrieben.Usage: MoreClips.pl Optionen <filenamen>Beispiel:	MoreClips.pl g:\\capture\\*.avi > MoreClips.avs	MoreClips.pl name*.avi > MoreClips.avs	MoreClips.pl f1.avi f2.avi f88.avi > MoreClips.avsEND_USAGE}usage() if (0 == @ARGV);#		----------------------#		Dateiliste sortieren#		----------------------my @files =	map  {$_->[0]}			# Name zurueckgeben	sort { $b->[1] <=> $a->[1]}	# Nach abnehmenden Alter sortieren	map  {[$_, -M $_]}		# Name und Alter in Array	map {glob($_)} @ARGV;		# Platzhalter aufloesen#		------------------------#		Vorspann auf Scriptdatei#		------------------------print << "END_HEAD";# Diese Datei wurde automatisch erzeugt durch $0 Vers. $Version:#--------------Import--------------#Import("TxtAni.avs")###--------------Quellen-------------#END_HEAD#		----------------------#		Dateiliste verarbeiten#		----------------------my ($file, $fulfile);my $count = 0;my $cwd = cwd();my @all = ();foreach $file (@files) {    if ($file =~ /:/) {	$fulfile = $file;    }    else {	$fulfile = "$cwd\\$file";    }    $count++;    my $date = scalar localtime ($^T-86400*(-M $fulfile));    $date = substr($date, 4);		# Wochentag entfernen    my $fn = "f$count";    print qq($fn=AviSource("$fulfile", pixel_type="rgb32")\n),	  qq($fn=$fn.FadeIO(25).TxtAni("$date")\n\n);    push @all, $fn;}print join("++",@all), "\n";print STDERR "$count Dateien im Script eingetragen\n";


    Zugegeben, das sieht wohl nur in meinen Augen übersichtlicher und einleuchtender aus, :rolleyes: zumal Perl manchmal etwas Ähnlichkeit mit Zeichensalat aufweist wenn man es erstmals begegnet. Aber es ist ein unheimlich mächtiges Werkzeug, dass die Umformung von Texten und die Verbindung verschiedener Programme erleichtert. Und es ist gratis zu haben, z.B. bei http://www.activestate.com/Products/Downl…x?id=ActivePerl.

    Meiner Meinung nach gehört Perl auf jeden Rechner!!! :D

    Das Ergebnis vom Aufruf "MoreClips.pl g:\capture\*.avi > MoreClips.avs" dürfte vertrauter aussehen. Bei mir kamm folgendes raus:

    G

  • Hehe, das gute, alte DOS:

    DIR /B /ON > file.txt
    Das öffnen wir in Word und machen eine Aufzählung draus (mit "Dötzchen", nicht mit Zahlen).
    Alles markieren, kopieren und rein damit in Notepad.
    Alles markieren, kopieren und rein damit in Word.
    Suchen und ersetzen:
    Alle Punkte durch AVISource("
    Alle Returns (kodiert als "^a") durch ")^a
    Als Textdatei mit der Endung .AVS speichern.
    Fertig!
    Dauert nur Sekunden. ;)

  • "DOS" als Kommandozeile ist OK!

    Aber Word? Ihgitt. Dafür gib'ts Textpad. Damit geht's natürlich auch (ein Mal) wesentlich schneller, als etwas zu programmieren.

    Aber: wenn sowass immer wieder vorkommt, dann hilft etwas Automation. Und er wollte ja das Datum im Script integrieren, obwohl das natürlich auch geht mit editieren der DIR-Liste.

    G

  • Sicher, macht man sowas häufiger, dann ist es mit Hilfe eines Programms natürlich viel bequemer. Aber bei einer Einzelaktion geht's imho in Ordnung, es so zu machen.

    Und Word..., hab's benutzt, weil ich's gerade zur Hand hatte und da das "Dötzchenmachen" - die Aufzählung - so schön einfach ist.

    Das mit dem (Datei) Datum ist ja mit dem DIR-Befehl ebenfalls möglich. Parameter hat er ja genug. ;)

  • MediumRare
    Sieht nicht schlecht aus, muss ich mir mal angucken.

    Kika
    im prinzip sehr einfach, hast recht, aber es müssen mehrere Verzeichnisse
    mit dutzenden von Dateien abgearbeitet werden und es kommt immer wieder.

    Inzwischen habe ich mir mit meinen derzeit bescheidenen Kentnissen eine erweiterte Version zusammen gefriemelt, sie ist bei weitem nicht perfekt
    und einige dinge weis ich immer noch nicht zu lösen, aber es entspricht schon eher meinen Vorstellungen.

    Optionsmäßig kann entweder eine Verzeichnissliste angelegt werden, eine vorhandene verwendet werden oder ganz ohne liste, wobei hier die verzeichnisse Alphabetisch genommen werden, was nicht unbedingt von Vorteil ist.

  • Das wird so langsam genauso lang, wie mein Perl-Script.

    Probiere es doch mal aus- da kannst Du (ohne Änderung) auch verschiedene Verzeichnisse auf einmal bearbeiten:

    Code
    MoreClips.pl dir1\*.avi dir2\*.avi ... > MoreClips.avs


    Die werden dann allerdings ohne Rücksicht auf dem Verzeichnis nach Datum sortiert und verarbeitet.

    Es ist auch relativ einfach, weitere Optionen einzubauen. Als Kommandozeilen-Freak arbeite ich allerdings lieber mit Unix-Stil Option (z.B. -v -out=filename ...). Selbstgestrickte Dialoge habe ich irrgendwo als Modul weggehamstert..

    G

Jetzt mitmachen!

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