6
我有一堆我想通過Avisynth運行的單個文件。但是,AVS文件只能創建一個視頻。據我所知,沒有辦法從命令行聲明一個變量的值。使用Avisynth創建多個視頻
我知道你可以創建一個腳本來生成一堆AVS文件,然後以某種方式將每個AVS文件轉換爲視頻。但是,由於Avisynth是一個腳本系統,這看起來很複雜。必須有某種方式通過腳本運行不同的視頻,對吧?
這樣做的最好方法是什麼?提前致謝。
我有一堆我想通過Avisynth運行的單個文件。但是,AVS文件只能創建一個視頻。據我所知,沒有辦法從命令行聲明一個變量的值。使用Avisynth創建多個視頻
我知道你可以創建一個腳本來生成一堆AVS文件,然後以某種方式將每個AVS文件轉換爲視頻。但是,由於Avisynth是一個腳本系統,這看起來很複雜。必須有某種方式通過腳本運行不同的視頻,對吧?
這樣做的最好方法是什麼?提前致謝。
我從來沒有找到一種方法將命令行參數直接傳遞給AVS腳本。 動態生成腳本是我能夠正常工作的唯一方法。
我知道這是不是你要找的答案 - 生成腳本,但兩種方法:
我用這個當我有一個AVS腳本,這改變的唯一參數是源輸入文件。
我有一個腳本template.avs
,它需要一個變量(v
)包含源視頻的完整路徑。批處理腳本則只需預先考慮與變量的行爲每個視頻文件,與此類似:
@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
這讓我只需拖動和拖放多個源的視頻上傳到該批次。
使用Import指令,它可以將所有的變量聲明外部化到自己的腳本。
Import("variables.avs")
當模板AVS腳本需要多個變量時,這很有用。
謝謝,我寫了一個Python腳本來做一些非常相似的事情。 –
如果在主要avisynth腳本的任何函數中使用,請不要忘記聲明可變的全局變量 – NeronLeVelu