如何批量淡入淡出多个视频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 (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...