gpt4 book ai didi

batch-file - 如何使用批处理脚本转换特定目录中的所有文件

转载 作者:行者123 更新时间:2023-12-04 23:15:37 25 4
gpt4 key购买 nike

我有 .h264 格式的文件夹中的视频,我想将它们转换为 mp4。现在默认情况下我可以使用 ffmpeg 来做到这一点:
这是命令:

ffmpeg -i youtube.flv -c:v libx264 filename.mp4

但是,正在添加新的 h264 文件,我想继续转换视频以便将其用于我的 python 脚本。

我知道我可以用它来初始化变量
SET /A num=1

但是,即使添加了新视频,我如何编写一个批处理脚本来一个一个地从目录中获取所有视频?

我写了这个,但这不起作用:
@echo off
SET /A num=1

for file in E:\Records\1\*.h264
do
ffmpeg -i "$file" -c:v libx264 E:\Recods\1\converted\%num%.mp4
move E:\Records\1\"$file" E:\Records\1\done\
set /A num=%num%+1
done
PAUSE

我正在制作一个完成的文件夹并移动已转换的视频,并在转换后的文件夹中放置转换后的视频。现在我只需每小时运行一个任务计划程序,这样如果有新条目,它应该将其转换并将其移动到适当的文件夹。

最佳答案

您可以使用 for 循环批量遍历文件夹中的所有文件(即使应用过滤器),如下所示:

@echo off
setlocal EnableDelayedExpansion
set /a vid=0
cd /d "your_Folder\Goes here"
for %%f in (*.h264) do (
ffmpeg -i "%%~f" -c:v libx264 "!vid!.mp4"
set /a vid=!vid!+1
)

那么这里会发生什么?
第一行用于让程序在正确的目录中运行。
之后所有以 .h264 结尾的文件(在您的情况下可能是不同的结尾;只是从问题中取出)在该目录中使用您的命令进行处理。为此,文件路径与 .mp4 一起放置在输入文件和计数器的位置。被放置为输出文件。
计数器有点棘手,因为括号集是如何批量评估的,它是一个完整的 block 。作为解决方案,有很多关于 SO 的问题和答案。查找“延迟扩展批处理”,您会发现类似 this answer 的内容.

将其放置为定期运行的任务调度程序任务应该使您的文件夹保持更新。为了实际监控我找到的文件夹 this impressive code可以与 Task-Scheduler 结合使用以在启动时运行它。如果监控触发,您可以执行上面的批处理文件,每次添加文件时都应该运行它。您也可以使用文件过滤器调整 powershell 文件以使其适合您的需求。

关于batch-file - 如何使用批处理脚本转换特定目录中的所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43115443/

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