在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")
即使直接通过Windows批处理文件而不是通过Python运行它,也会将视频编码所需的时间减少10秒,这样可以节省数小时。
只是想一想,使用Cygwin上的bash命令会更好吗?
答案 0 :(得分:2)
这应该让你接近。我并不是真正理解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