如何编写脚本批量转码视频

我有一批视频需要进行转码处理,以前都是一个个复制下面这个命令然后在cmd中运行,但是如果要写成脚本.bat定时执行一批视频的转码的话要如何实现

ffmpeg -i D:\test\转码视频素材\非标准码率\1~5\3975d86c-188ff83b772-0005-0953-cad-356e4.wmv -c:v libx264 -pix_fmt yuv420p -bf 2 -c:a aac -b:a 256k -r:a 48000 -profile:v baseline -preset fast -crf:18 -movflags D:\test\转码视频素材\非标准码率\1~5\output.mp4

@echo off
setlocal enabledelayedexpansion

set INPUT_FOLDER=D:\test\转码视频素材\非标准码率\1~5
set OUTPUT_FOLDER=D:\test\转码视频素材\非标准码率\1~5\output

for %%F in ("%INPUT_FOLDER%\*.wmv") do (
    set "input_file=%%F"
    set "output_file=!input_file:%INPUT_FOLDER%=%OUTPUT_FOLDER%!"
    set "output_file=!output_file:.wmv=.mp4!"
    
    ffmpeg -i "!input_file!" -c:v libx264 -pix_fmt yuv420p -bf 2 -c:a aac -b:a 256k -r:a 48000 -profile:v baseline -preset fast -crf 18 -movflags +faststart "!output_file!"
)

echo All videos have been transcoded.
pause

请根据实际情况修改以下变量:

INPUT_FOLDER:输入视频文件所在的文件夹路径。
OUTPUT_FOLDER:转码后输出的文件夹路径。
在批处理脚本中,FOR 循环会遍历输入文件夹中的每个 .wmv 文件,并针对每个文件执行 ffmpeg 命令进行转码处理。转码后的文件将保存在指定的输出文件夹中,文件名将保持相同,只是扩展名会改为 .mp4。

将上述代码保存为 .bat 文件,然后双击运行即可进行批量转码处理。转码后的文件将保存在指定的输出文件夹中。

注意:在运行脚本之前,请确保已经安装了 ffmpeg 工具,并且将其路径添加到系统的环境变量中,以便能够在命令行中执行 ffmpeg 命令。