我一直在尝试使用ffmpeg转换整个文件夹.我搜索过网络,找到了各种答案,但没有一个能帮助我.目前我正在使用ffmpeg的多个实例一次转换多个文件.但即使使用复制/粘贴,一直输入所有内容也非常耗时且烦人.
为了简化我当前的代码,它看起来像这样.我指定输入文件和输出格式(+各种设置):
ffmpeg -i "EXAMPLE.avi" newEXAMPLE.mp4
Run Code Online (Sandbox Code Playgroud)
但我想要的是一个ffmpeg实例,可以将特定文件夹中的所有文件转换为新格式,并保存文件的原始名称.
example1.avi> example1.mp4
example2.avi> example2.mp4
example3.avi> example3.mp4
等等...
PS.我对这些事情有点新意,所以我非常感谢你的回答,所以我能理解和学习.谢谢!
如果文件名中有多个句点,则可以使用此方法:
for /r C:\path\ %a in (*.avi) do ffmpeg -i "%a" "%~pa%~na.mp4"
Run Code Online (Sandbox Code Playgroud)
只需根据需要编辑“C:\path\”即可。
for /f "tokens=1 delims=." %a in ('dir /B *.avi') do ffmpeg -i "%a.avi" "%a.mp4"
Run Code Online (Sandbox Code Playgroud)
这适用于cmd窗口用法,如果要在批处理脚本中使用它,则为双倍所有百分号.您已在视频所在的目录中运行它.
小智 7
为了让 Windows 用户更容易进行 ffmpeg 批量编码,我使用 .NET/C# 开发了这个免费的开源应用程序。我想将它包含在这里作为一个额外的选择,以使一些可能不太熟悉命令行操作的 Windows 用户更容易使用它。
https://sourceforge.net/projects/ffmpeg-batch