我需要在视频的子部分设置叠加层(image.png
带alpha通道)。在整个视频中设置它非常有效。但是我需要在开始时和视频结尾处制作没有PNG的10秒间隙。
因此叠加层应该在开始后的第10秒出现,并在(长度 - 10)秒后自动消失。我花了一天时间试图让它工作,但似乎trim
视频过滤器根本不支持修剪"单PNG图像视频流"。
在此命令中
ffmpeg -y -i "$INPUT" -i "$PNG" -c:v libx264 -preset ultrafast -filter_complex \
"[0:v]setpts=0.5*PTS,fps=25[vm]; [1:0]trim=10:190[vo]; [vm][vo]overlay=x=0:y=0:overlay=eof_action=pass[v]; [0:a]atempo=2.0[a]" \
-map "[v]" -map "[a]" qtest_AVUP.avi
190应该用一些功能/计算代替,但真正的问题是覆盖层根本不应用。结果我们得到了没有叠加层的普通视频。 你能帮我解决这个问题吗?
答案 0 :(得分:1)
请尝试使用此代码来覆盖代码:
-filter_complex "[0:v][1:v] overlay=25:25:enable='between(t,20,40)'"
这会使你的叠加层在20到40秒之间。您必须进行计算才能获得EOF-10。以下是获取视频时长的一些代码:
DURATION=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 $INPUT )