Ian*_*nao 7 video batch-file batch-processing avisynth
我有一堆个人文件,我想通过Avisynth运行.但是,AVS文件只能创建一个视频.据我所知,没有办法从命令行声明变量的值.
我知道您可以创建一个生成一堆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
Run Code Online (Sandbox Code Playgroud)
这使我可以简单地将多个源视频拖放到批次中。
使用导入指令,可以将所有变量声明外部化到其自己的脚本中。
Import("variables.avs")
Run Code Online (Sandbox Code Playgroud)
当模板 AVS 脚本需要多个变量时,这非常有用。