我不确定这种情况什么时候开始发生在我身上,但我认为是随着 6.0 版本的出现,当我使用“tpad”过滤器时,如下所示:
-filter_complex "[0:0]tpad=start_duration=1:stop_duration=5:color=black[v0]" -map "[v0]"
无论我指定什么颜色,填充的框架都是绿色的。我已尝试使用 mp4、mkv 和 avi 进行此操作,并得到了相同的结果。如果我使用来自 rpm-fusion-updates 的构建(6.0-11.fc38,libavfilter 9.3.100 / 9.8.101),或者如果我自己从源代码构建它(当前为 N-111066-gd26ea03f60,libavfilter 9.8.101 / 9.8.101),结果也是相同的。
这种情况也发生在几台不同的机器上。还有人看到这个吗?我想在提交错误之前确认这不是我一个人的问题。我没有看到有人为此打开。
答案1
我注意到 Windows 10 下也存在同样的问题。切换到以下版本的 Ubuntu - 没有问题,没有绿屏,自动应用了默认黑色。所以,这种解决方法有效。
描述:Ubuntu 20.04.6 LTS,发布版本:20.04
使用Windows10 ffmpeg版本:N-111283-g9b6d191a66-20230628
使用的Ubuntu ffmpeg版本:4.2.7-0ubuntu0.1
问候——Pawel。
答案2
这是 FFmpeg 提交的回归86b252ea9dee18006910e30646ad1067f2d1323f这是我之前做的。此回归的错误报告位于https://trac.ffmpeg.org/ticket/10621。
我有已提交修复到邮件列表,它可能很快就会被合并。
start
您可以通过使用虚拟值(如)指定and/orstop
选项(取决于您需要)来解决该问题1
,同时仍然指定优先的start_duration
and/or 。stop_duration
因此,根据上面的例子,以下方法应该可以解决这个问题:
-filter_complex "[0:0]tpad=start=1:start_duration=1:stop_duration=5:color=black[v0]" -map "[v0]"
(当同时使用start_duration
和时,只需给出或带有虚拟值就足以使空支支票满意。)stop_duration
start
stop
抱歉,这次退步了!