使用Avisynth创建多个视频

Ian*_*nao 7 video batch-file batch-processing avisynth

我有一堆个人文件,我想通过Avisynth运行.但是,AVS文件只能创建一个视频.据我所知,没有办法从命令行声明变量的值.

我知道您可以创建一个生成一堆AVS文件的脚本,然后以某种方式将每个AVS文件转换为视频.但是,由于Avisynth是一个脚本系统,这看起来有点复杂.必须有某种方式通过脚本运行不同的视频,对吗?

做这个的最好方式是什么?提前致谢.

mar*_*pet 4

我从未找到将命令行参数直接传递给 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
Run Code Online (Sandbox Code Playgroud)

这使我可以简单地将多个源视频拖放到批次中。

进口

使用导入指令,可以将所有变量声明外部化到其自己的脚本中。

Import("variables.avs")
Run Code Online (Sandbox Code Playgroud)

当模板 AVS 脚本需要多个变量时,这非常有用。