我有一批视频需要进行转码处理,以前都是一个个复制下面这个命令然后在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 命令。