2014-01-29 11 views
6

Ich habe eine Reihe von einzelnen Dateien, die ich jeweils durch Avisynth laufen soll. Eine AVS-Datei kann jedoch nur ein Video erstellen. Soweit ich weiß, gibt es keine Möglichkeit, den Wert einer Variablen über die Befehlszeile zu deklarieren.Erstellen mehrerer Videos mit Avisynth

Ich weiß, dass Sie wahrscheinlich ein Skript erstellen können, das eine Reihe von AVS-Dateien generiert und dann jede AVS-Datei irgendwie in ein Video konvertiert. Da es sich bei Avisynth um ein Skript-System handelt, scheint dies jedoch etwas kompliziert zu sein. Es muss eine Möglichkeit geben, verschiedene Videos über ein Skript zu starten, oder?

Was ist der beste Weg, dies zu tun? Danke im Voraus.

Antwort

3

Ich habe noch nie einen Weg gefunden, einen Befehlszeilenparameter direkt an ein AVS-Skript zu übergeben. Skripte im laufenden Betrieb zu erstellen war die einzige Möglichkeit, wie ich es funktionierte.

Ich weiß, das ist nicht die Antwort, die Sie suchen - doch zwei Ansätze zur Erzeugung von Skripten:

Template Skript

Ich benutze dies, wenn ich ein AVS-Skript, in dem der einzige Parameter, der sich ändert, ist die Quelleingabedatei. Ich habe ein Skript template.avs, das eine Variable (v) erwartet, die den vollständigen Pfad des Quellvideos enthält. Eine Batch-Skript dann prepends einfach die Zeile mit der Variable für jede Videodatei, die ähnlich wie diesen:

@echo off 
if "%1" == "" (
    echo No input video found 
    pause 
    GOTO :EOF 
) 
set pth=%~dp0 

:loop 
IF "%1"=="" GOTO :EOF 

echo v="%1">"%pth%_tmp.avs" 
type "%pth%template.avs">>"%pth%_tmp.avs" 

:: Do whatever you want with the script 
:: I use virtualdub... 
"%vdub%" /i "%pth%Template.vdscript" "%pth%_tmp.avs" 

del "%pth%_tmp" 

SHIFT 
GOTO loop 

Dies erlaubt es mir zu einfach per Drag-and-Drop mehrere Quellvideos auf den Stapel.

Import

Mit der Import Anweisung ist es möglich, alle Variablendeklarationen in ein eigenes Skript externalisieren.

Dies ist nützlich, wenn das Vorlagen-AVS-Skript mehrere Variablen erwartet.

+0

Danke, ich schrieb ein Python-Skript, um etwas sehr ähnliches zu tun. –

+0

Vergessen Sie nicht, varaible global zu deklarieren, wenn Sie in einer beliebigen Funktion in Ihrem Haupt-avisynth-Skript verwendet werden – NeronLeVelu