微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何批量淡入淡出多个视频ffmpeg?

如何解决如何批量淡入淡出多个视频ffmpeg?

我发现了一些关于如何使用 ffprobe 批量淡入和淡出单个视频的技巧。 我找不到的是如何使用批处理脚本制作多个视频。我什至尝试使用我在这里找到的代码

ffmpeg -i 123.mp4 -filter_complex "fade=d=3.5,reverse,fade=d=3.5,reverse" output.mp4

这仅适用于不使用 ffprobe 的单个视频。当我尝试将它用于 for .mp4 批处理文件中的多个视频时,出现了可怕的错误,我收到一个错误无法将帧注入过滤器网络:无法分配内存 ffmpeg 转换后的文件大小约为 1MB,笔记本电脑死机。

谁能指出我正确的方向?谢谢...

编辑:

这是我使用的代码...

@echo off
if not exist "faded" mkdir faded
for %%f in ("*.mp4") do ffmpeg -i "%%f" -filter_complex "fade=d=3.5,reverse" "faded\%%~nf.mp4"

编辑_2:

这是我试图操纵以使用 ffprobe 和 FADE 而不是 TRIM 的方法

@Echo Off
SetLocal
Set "ext=mp4"
Set "opts=-v quiet"
Set "opts=%opts% -print_format "compact=print_section=0:nokey=1:escape=csv""
Set "opts=%opts% -show_entries "format=duration""
If Exist *.%ext% (If Not Exist "Trimmed\" MD Trimmed)
For %%a In (*.%ext%) Do Call :Sub "%%~a"
Exit/B

:Sub
For /f "Tokens=1* Delims=." %%a In (
    'FFProbe %opts% %1') Do (Set/A "ws=%%a-8.25" & Set "ps=%%b")
rem If %ws% Lss 20 GoTo :EOF
Set/A hh=ws/(60*60),lo=ws%%(60*60),mm=lo/60,ss=lo%%60
If %hh% Lss 10 Set hh=0%hh%
If %mm% Lss 10 Set mm=0%mm%
If %ss% Lss 10 Set ss=0%ss%
FFMpeg -i %1 -ss 00:00:04.2500 -to %hh%:%mm%:%ss%.%ps:~,3% -c:v copy -c:a copy "Trimmed\%~1"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。