gpt4 book ai didi

batch-file - 创建递归 ffmpeg 转换器

转载 作者:行者123 更新时间:2023-12-04 23:29:07 26 4
gpt4 key购买 nike

我正在尝试创建某种脚本,它将它在文件夹中检测到的任何视频文件(也扫描子文件夹)转换为同名的 .avi 文件,在同一个地方,然后删除原始文件。我并没有真正将 cmd 用于任何编程/脚本,所以我对我怀疑是一些非常简单的语法问题感到困惑。

如果有人熟悉编码和ffmpeg,请指出编码选项是否错误(我现在在黑暗中磕磕绊绊)。

使用 this thread ,我正在使用目前类似的东西:

dir/b/s *.(mkv|mp4|m4v|wmv) >listing.txt  #Make a list of all the files with certain extensions, for reading.
for /F "delims=;" %%F in (listing.txt) do ffmpeg.exe -i "%%F" -c:v libx264 -preset slow -crf 20 -c:a libvo_aacenc -b:a 128k "%%~na.avi"
#Then to delete original files
for /F "delims=;" %%F in (listing.txt) do del %%F
del listing.txt

我遇到的第一个问题是我希望能够用所有常见的视频类型填充列表。我在想象 cmd 有一些类似于 perl 字符串匹配的语法,例如 A(B|C)将匹配我可以模仿匹配任何视频文件扩展名的 AB 和 AC? (我已经在上面的代码中编写了它来说明这一点,但我知道它不起作用)。

我希望这足以说明我正在尝试的内容。

最佳答案

目录 *.ext1 *.ext2

但是,如果期望名称中有空格,最好指定完整路径并使用引号。

Dir "%userprofile%\documents\*.avi" "%userprofile%\documents\*.mp4" /a /s /b

For 更简单是 forfiles命令。但不适合多种文件类型。

也可以是一行
@for /f "usebackq delims=" %A in (`dir "%Userprofile%\documents\*.avi" "%Userprofile%\documents\*.mp4" /a /s /b`)  do @echo %A

在批处理文件中使用 %%A,如果键入命令则使用 %A。

关于batch-file - 创建递归 ffmpeg 转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27093129/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com