向批处理添加变量

向批处理添加变量

我用ffmpeg它来翻录一些视频文件。我希望将每个视频翻录成大约 的大小500 MB。为此,我需要选择输入我为每个单独文件选择的视频比特率。

这是我目前正在使用的批处理文件:

ffmpeg -i "%%g" -c:v libx264 -b:v 1400k -vf "scale=720:-2" -c:a copy "converted\%%~ng.mp4"

我想做类似的事情,但我很难确定要写什么:

ffmpeg -i "%%g" -c:v libx264 -b:v %variable%k -vf "scale=720:-2" -c:a copy "converted\%%~ng.mp4" 

如果有人知道其中的选项ffmpeg,那就太好了,但如果这样更容易的话,我也可以将其插入脚本以使其工作。

非常感谢您的帮助!

答案1

CMD 批量 ffmpeg 处理视频:重新缩放、裁剪和重新混合目录中的所有 .mkv 和 .mp4。创建一个名为已转换。将视频处理为 .mp4为ie
添加扩展名 不适用于子目录。 用户输入:视频比特率、裁剪顶部和裁剪底部。 测试模式或处理整个视频。'dir *.mp4 *.mkv /A-D /B''dir *.mp4 *.mkv *.mv4 /A-D /B'



如何编写批处理文件

您可能需要下载、安装和使用手刹对于 Windows 64 位和温控器了解要使用什么设置。

Windows 用户使用 NUL 代替 /dev/null,使用 ^ 代替 \
非 Windows 用户使用 /dev/null 代替 NUL,使用 \ 代替 ^

@echo off 
ECHO. 
ECHO What video bitrate do you want to encode at?
SET /p zrate="Enter = 700 or Your own number: "
IF /i not defined zrate SET zrate=700 
ECHO How many pixels do you want to crop from the top? 
SET /p ztop="Enter = 0 or Your own number: "
IF /i not defined ztop SET ztop=0
ECHO How many pixels do you want to crop from the bottom? 
SET /p zbottom="Enter = 0 or Your own number: "
IF /i not defined zbottom SET zbottom=0
if not exist converted (md converted)
for /f %%g in ('dir *.mp4 *.mkv /A-D /B 2^>nul') do (
rem process entire video
rem ffmpeg.exe -y -i "%%g" -crf 20.0 -vcodec libx264 -b:v %zrate%k -vf scale=768:432,crop=iw-0-0:ih-%ztop%-%zbottom%:0:%ztop% -preset veryfast -c:a copy "converted\%%~ng.mp4" 
rem process second 0 through 6
ffmpeg.exe -y -i "%%g" -crf 20.0 -vcodec libx264 -b:v %zrate%k -vf scale=768:432,crop=iw-0-0:ih-%ztop%-%zbottom%:0:%ztop% -preset veryfast -c:a copy -t 00:00:06 "converted\%%~ng.mp4"
)
exit /b 

裁剪顶部的 150px:

"ffmpeg.exe" -y -i "%%g" -crf 20.0 -vcodec libx264 -vf scale=768:432,crop=iw-0-0:ih-150-0:0:150

裁剪底部的 150px:

"ffmpeg.exe" -y -i "%%g" -crf 20.0 -vcodec libx264 -vf scale=768:432,crop=iw-0-0:ih-0-150:0:0

处理第300秒到第320秒的视频:

"ffmpeg.exe" -ss 00:05:00 -y -i "1.mkv" -t 00:00:20 "2.mkv"
  

Bing 搜索 -ffmpeg 重新编译

Bing 搜索 -ffmpeg 重新缩放

Bing 搜索 -ffmpeg 裁剪

相关内容