我正在尝试在多个文件夹中运行相同的 cmd 代码:
ffmpeg -i "00.mkv" -codec copy "00.mp4"
所以我有几个文件夹.mkv
,我想将它们转换为 mp4,但仍将它们保存在自己的文件夹中。
我已经将它们重命名为相同的名称,认为这会有所帮助,但我还应该尝试其他什么来使该过程正常工作吗?
或者除了 cmd 之外还有其他选项吗?
答案1
或者除了 cmd 之外还有其他选项吗?
您可以在cmd中执行此操作!
@echo off && cd /d "%~dpn0"
set "_ffmpeg=C:\Program Files\FFmpeg\bin\ffmpeg.exe"
set "_ffmpeg=2^>^&1 "%_ffmpeg%" -hide_banner -nostats -y -i"
for /r %%i in (*.mkv)do %_ffmpeg% "%%~fi" -codec copy "%%~dpni.mp4"
答案2
虽然你的问题没有完整的例子,但我想我可以帮上忙
你可以使用 python 来自动执行此任务
import glob
all_folders = glob.glob("*")
OUTPUT_FOLDER_NAME = "converted"
INPUT_FILE_EXTENSION_ = ".mkv"
OUTPUT_FILE_EXTENSION = ".mp4"
for folder_name in folder_names:
out_path = pathlib.Path(folder_name) / OUTPUT_FOLDER_NAME
out_path.mkdir(exist_ok=True)
print(list(pathlib.Path(folder_name).glob(f"*{INPUT_FILE_EXTENSION}")))
for file in pathlib.Path(folder_name).glob(f"*{INPUT_FILE_EXTENSION}"):
out_file = pathlib.Path(out_path) / pathlib.Path(file.stem + file.suffix.replace(INPUT_FILE_EXTENSION, OUTPUT_FILE_EXTENSION))
if not out_file.exists():
print(f"Processing: {file}")
os.system(f"ffmpeg -i \"{file}\" -coded copy \"{out_file}\"")
print(f"Outputed {out_file}")
else:
print(f"Skipping {file}...")
确保将此脚本另存为batch_ffmpeg_converter.py
(或任何你想要的)所有文件夹所在的同一目录 inc,并且该目录仅包含文件夹(无文件),然后使用以下命令运行它
python batch_ffmpeg_converter.py