使用 ffmpeg 在多个具有不同持续时间的 mp4 文件上添加淡出效果

使用 ffmpeg 在多个具有不同持续时间的 mp4 文件上添加淡出效果

我正在尝试使用 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 格式设置中将“,”更改为“。”。

相关内容