我正在尝试使用 ffmpeg 将 fadin 和 fadeout 添加到几个 mp4 文件中。我认为问题在于 ffprobe 得到的持续时间带有 3 位小数,例如 36,217。
我收到一条错误消息:没有这样的过滤器:“217:d”,我认为这是因为三位小数,有什么办法可以去掉它们吗?这是我尝试使用的批处理:
@echo off
mkdir faded
setlocal ENABLEDELAYEDEXPANSION
for %%f in (*.mp4) do (
ffprobe -i "%%f" -show_entries format=duration -v quiet -of csv="p=0" >dur.txt
set /p dur=<dur.txt
del dur.txt
for /f "delims=" %%g in ('powershell !dur!-1') do set fadetime=%%g
ffmpeg -i "%%f" -filter:v "fade=t=in:st=0:d=1, fade=t=out:st=!fadetime!:d=1" -filter:a "afade=t=in:st=0:d=1, afade=t=out:st=!fadetime!:d=1" -c:v libx264 -crf 18 "faded/%%~nf.mp4"
)
答案1
发现错误。必须在 Windows 10 格式设置中将“,”更改为“。”。