我用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 裁剪