nwfmd
帖子: 4
注册: 2017-05-30 11:11

如何BAT批量X264挂AVS压MP4的命令行!

2017-05-30 11:13

我现在已批量建立了很多AVS,如1.AVS,2.AVS,3.AVS
我需要用X264批量把他们压成1.MP4,2.MP4,3.MP4

这个命令行,要怎么实现?最好是带完美的压制参数!
谢谢大神!

nwfmd
帖子: 4
注册: 2017-05-30 11:11

Re: 如何BAT批量X264挂AVS压MP4的命令行!

2017-05-30 11:14

我的AVS是1....100.AVS,想批量压1....100.MP4

myfreer
帖子: 5
注册: 2017-03-02 15:16

Re: 如何BAT批量X264挂AVS压MP4的命令行!

2017-06-03 18:59

for /?
对一组文件中的每一个文件执行某个特定命令。

FOR %variable IN (set) DO command [command-parameters]

%variable 指定一个单一字母可替换的参数。
(set) 指定一个或一组文件。可以使用通配符。
command 指定对每个文件执行的命令。
command-parameters
为特定命令指定参数或命令行开关。

在批处理程序中使用 FOR 命令时,指定变量请使用 %%variable
而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I.


如果启用命令扩展,则会支持下列 FOR 命令的其他格式:

FOR /D %variable IN (set) DO command [command-parameters]

如果集中包含通配符,则指定与目录名匹配,而不与文件名匹配。

FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]

检查以 [drive:]path 为根的目录树,指向每个目录中的 FOR 语句。
如果在 /R 后没有指定目录规范,则使用当前目录。如果集仅为一个单点(.)字符,
则枚举该目录树。

FOR /L %variable IN (start,step,end) DO command [command-parameters]

该集表示以增量形式从开始到结束的一个数字序列。因此,(1,1,5)将产生序列
1 2 3 4 5,(5,-1,1)将产生序列(5 4 3 2 1)

nwfmd
帖子: 4
注册: 2017-05-30 11:11

Re: 如何BAT批量X264挂AVS压MP4的命令行!

2017-06-08 13:10

myfreer 写了:for /?
对一组文件中的每一个文件执行某个特定命令。

FOR %variable IN (set) DO command [command-parameters]

%variable 指定一个单一字母可替换的参数。
(set) 指定一个或一组文件。可以使用通配符。
command 指定对每个文件执行的命令。
command-parameters
为特定命令指定参数或命令行开关。

在批处理程序中使用 FOR 命令时,指定变量请使用 %%variable
而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I.


如果启用命令扩展,则会支持下列 FOR 命令的其他格式:

FOR /D %variable IN (set) DO command [command-parameters]

如果集中包含通配符,则指定与目录名匹配,而不与文件名匹配。

FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]

检查以 [drive:]path 为根的目录树,指向每个目录中的 FOR 语句。
如果在 /R 后没有指定目录规范,则使用当前目录。如果集仅为一个单点(.)字符,
则枚举该目录树。

FOR /L %variable IN (start,step,end) DO command [command-parameters]

该集表示以增量形式从开始到结束的一个数字序列。因此,(1,1,5)将产生序列
1 2 3 4 5,(5,-1,1)将产生序列(5 4 3 2 1)



可以带参数,发个案例吗? 感觉有点复杂,看懵逼了。
而且,我突然发现一个问题,这个批量压出来的是H264吧,还得手动一个个去封装MP4?

myfreer
帖子: 5
注册: 2017-03-02 15:16

Re: 如何BAT批量X264挂AVS压MP4的命令行!

2017-06-10 21:19

nwfmd 写了:可以带参数,发个案例吗? 感觉有点复杂,看懵逼了。
而且,我突然发现一个问题,这个批量压出来的是H264吧,还得手动一个个去封装MP4?

for /l %%v in (1,1,100) do @echo x264 %%v.avs --output %%v.264
for /l %%v in (1,1,100) do @echo ffmpeg -i %%v.264 -c copy %%v.mp4

nwfmd
帖子: 4
注册: 2017-05-30 11:11

Re: 如何BAT批量X264挂AVS压MP4的命令行!

2017-06-16 11:43

myfreer 写了:
nwfmd 写了:可以带参数,发个案例吗? 感觉有点复杂,看懵逼了。
而且,我突然发现一个问题,这个批量压出来的是H264吧,还得手动一个个去封装MP4?

for /l %%v in (1,1,100) do @echo x264 %%v.avs --output %%v.264
for /l %%v in (1,1,100) do @echo ffmpeg -i %%v.264 -c copy %%v.mp4



谢谢大神,这样就看懂了。
但是这样好像并没有封装声音。
因为,我是打算批量加LOGO片头以及字幕,而我个人比较懒,想到了一个偷懒的办法:我建立好100个AVS模板,每个AVS对应好每个需要加并的MP4,这样,我每批视频,只需要批量改名,并拷贝到指定的目录后,通过bat批处理,就可以自动化批量生成至指定目录(想法是美好的)。

如1.AVS
LoadPlugin("C:\Program Files (x86)\Pure Codec\Codecs\VSFilter.dll")
A=DirectShowSource("C:\test\logo.mp4",audio=true,30,convertfps=true).lanczosresize(640,480).SSRC(44100)
B=DirectShowSource("C:\test\01.mp4",audio=true,30,convertfps=true).lanczosresize(640,480).Textsub("C:\test\sub.srt").SSRC(44100)
final=A+B
return final

myfreer
帖子: 5
注册: 2017-03-02 15:16

Re: 如何BAT批量X264挂AVS压MP4的命令行!

2017-06-16 22:00

nwfmd 写了:
myfreer 写了:
nwfmd 写了:可以带参数,发个案例吗? 感觉有点复杂,看懵逼了。
而且,我突然发现一个问题,这个批量压出来的是H264吧,还得手动一个个去封装MP4?

for /l %%v in (1,1,100) do @echo x264 %%v.avs --output %%v.264
for /l %%v in (1,1,100) do @echo ffmpeg -i %%v.264 -c copy %%v.mp4



谢谢大神,这样就看懂了。
但是这样好像并没有封装声音。
因为,我是打算批量加LOGO片头以及字幕,而我个人比较懒,想到了一个偷懒的办法:我建立好100个AVS模板,每个AVS对应好每个需要加并的MP4,这样,我每批视频,只需要批量改名,并拷贝到指定的目录后,通过bat批处理,就可以自动化批量生成至指定目录(想法是美好的)。

如1.AVS
LoadPlugin("C:\Program Files (x86)\Pure Codec\Codecs\VSFilter.dll")
A=DirectShowSource("C:\test\logo.mp4",audio=true,30,convertfps=true).lanczosresize(640,480).SSRC(44100)
B=DirectShowSource("C:\test\01.mp4",audio=true,30,convertfps=true).lanczosresize(640,480).Textsub("C:\test\sub.srt").SSRC(44100)
final=A+B
return final

for /l %%v in (1,1,100) do @echo ffmpeg -i %%v.avs -c :v libx264 -c:a aac %%v.mp4

回到 “视频编码器 / Video encoder discussion”