dad*_*vil 3 cygwin ffmpeg batch-file
在Windows中,我想创建一个批处理文件,给定一个特定目录将循环遍历所有文件名并将它们传递给一个命令,在我的例子中是ffmpeg。我发现了两三个使用 ffmpeg 循环遍历文件夹的例子,但它们都是在 Linux 中。目前我使用 python 脚本来执行此操作:
import os
import subprocess
sourcedir = "G:\Animation\Anime\OnePiece\Episodes\Main"
outputdir = "G:\Animation\Anime\OnePiece\Episodes\Converted"
for file in os.listdir(sourcedir):
name = file[:file.rfind(".")]
subprocess.call("ffmpeg -i " + sourcedir + "\\" + name + ".mkv -s 640x480 -map 0 -vcodec libx265 "+ outputdir + "\\" + name + ".mkv")
Run Code Online (Sandbox Code Playgroud)
即使直接通过 Windows 批处理文件而不是通过 Python 运行它可以将视频编码所需的时间减少 10 秒,但实际上它会节省我几个小时。
想一想,在 Cygwin 上使用 bash 命令会更好吗?
这应该会让你接近。我不太理解 ffmpeg 的语法。
@echo off
set "sourcedir=G:\Animation\Anime\OnePiece\Episodes\Main"
set "outputdir=G:\Animation\Anime\OnePiece\Episodes\Converted"
PUSHD "%sourcedir%"
for %%F in (*.mkv) DO ffmpeg -i "%%F" -s 640x480 -map 0 -vcodec libx265 "%outputdir%\%%F"
POPD
Run Code Online (Sandbox Code Playgroud)