【发布时间】:2012-02-06 13:27:13
【问题描述】:
ffmpeg -i v.3gp -acodec copy -vf "movie=w.png [logo]; [in][logo] overlay=10:main_h-overlay_h-10 [out]" nv.3gp
它工作正常,但我只想要前 30 秒的水印。 有什么想法吗?
【问题讨论】:
标签: ffmpeg
ffmpeg -i v.3gp -acodec copy -vf "movie=w.png [logo]; [in][logo] overlay=10:main_h-overlay_h-10 [out]" nv.3gp
它工作正常,但我只想要前 30 秒的水印。 有什么想法吗?
【问题讨论】:
标签: ffmpeg
您可以将徽标转换为具有 png 编解码器和 Alpha 通道的 30 秒视频,并将视频应用为叠加层。
徽标视频的持续时间应通过以主视频的帧速率(在您的情况下为 v.3pg)的帧数来指定。例如,对于 30 fps 的主视频运行:
ffmpeg.exe -loop 1 -i w.png -vframes 901 -vf "fade=out:899:1:alpha=1"
-vcodec png -pix_fmt rgba w.mov
标志需要淡出;否则它不会消失。然后将徽标视频用作另一个视频的叠加层:
ffmpeg -i v.3gp -acodec copy -vf "movie=w.mov [logo]; [in][logo]
overlay=10:main_h-overlay_h-10 [out]" nv.3gp
或者,标志可以逐渐淡出,而不是突然结束,例如使用-vf "fade=out:870:30:alpha=1" 在 30 帧内。
【讨论】:
-loop-input,或者获取最新的
-pix_fmt rgba 选项。另外,试试最新的 ffmpeg。
overlay滤镜支持时间线编辑;您可以简单地从 png 文件中读取,然后 overlay=enable='lte(t,30)':...
【讨论】:
意识到已经很晚了,但是当我在研究一个类似的问题时,我设法解决了这个问题。 它从开始 0.5 秒开始淡入,然后在 30 秒后淡出
ffmpeg \
-i v.3gp \
-loop 1 -i w.png \
-acodec copy \
-filter_complex \
"[1:v] fade=in:st=0:d=0.5,fade=out:st=30:d=0.5 [logo]; [0:v][logo] overlay=10:main_h-overlay_h-10" \
nv.3gp
【讨论】:
-shortest 参数(参见advanced options documentation)。
你可以剪掉前 30 秒,给它加水印,然后把它和剩下的部分结合起来。
【讨论】: