Video 如何将水印添加到这个巨大的ffmpeg命令的视频部分,该命令使用crossfade添加了intro和outro?
我编写了一个命令,将一个介绍、一个输出与一个视频合并: 这个庞大的命令运行良好 但现在我想做的是在视频部分添加水印:Video 如何将水印添加到这个巨大的ffmpeg命令的视频部分,该命令使用crossfade添加了intro和outro?,video,ffmpeg,Video,Ffmpeg,我编写了一个命令,将一个介绍、一个输出与一个视频合并: 这个庞大的命令运行良好 但现在我想做的是在视频部分添加水印: [1:v]trim=start=1:end=24,setpts=PTS-STARTPTS,scale=480x360,setsar=sar=16/9[video]; 我想将此命令(水印)合并到上面的命令中: ffmpeg -i "1080p.mp4" -filter_complex " movie=logo-wm.png[watermark]; [watermark][0:V
[1:v]trim=start=1:end=24,setpts=PTS-STARTPTS,scale=480x360,setsar=sar=16/9[video];
我想将此命令(水印)合并到上面的命令中:
ffmpeg -i "1080p.mp4" -filter_complex "
movie=logo-wm.png[watermark];
[watermark][0:V]scale2ref=(1917*iw/1920)/3.5:(322*iw/1920)/3.5[wm][v];
[v][logo]overlay=main_w-overlay_w-20:20" "output.mp4"
整个(1917*iw/1920)/3.5:(322*iw/1920)/3.5
使用scale2ref=
过滤器按比例缩放水印。1917
是我的水印图像的宽度,322
是高度
它在右上角与main\u w-overlay\u w-20:20
但是我无法使它工作,我试图通过将参数复制到[1:v]
输入的过滤器来添加它。通过为水印添加另一个输入,如果我是对的,它将是[3:v]
,而不是使用电影=
过滤器。但我不能
我知道我可以分两步完成,但我想一次完成,只需一个命令
有人能帮我合并吗?提前谢谢你 使用
ffmpeg -i intro.mp4 -i video.mp4 -i outro.mp4 -i watermark.png -filter_complex "
[0:v]trim=start=0:end=9,setpts=PTS-STARTPTS,scale=480x360,setsar=sar=16/9[intro];
[0:v]trim=start=9:end=10,setpts=PTS-STARTPTS,scale=480x360,setsar=sar=16/9[firstfadeoutclip];
[3:v][1:v]scale2ref=(1917*iw/1920)/3.5:(322*iw/1920)/3.5[wm][v1ol];
[v1ol]trim=0:25[v1];[v1][wm]overlay=W-w-20:20,split=3[1va][1vb][1vc];
[1va]trim=start=0:end=1,setpts=PTS-STARTPTS,scale=480x360,setsar=sar=16/9[firstfadeinclip];
[1vb]trim=start=1:end=24,setpts=PTS-STARTPTS,scale=480x360,setsar=sar=16/9[video];
[1vc]trim=start=24:end=25,setpts=PTS-STARTPTS,scale=480x360,setsar=sar=16/9[secondfadeoutclip];
[2:v]trim=start=0:end=1,setpts=PTS-STARTPTS,scale=480x360,setsar=sar=16/9[secondfadeinclip];
[2:v]trim=start=1:end=10,setpts=PTS-STARTPTS,scale=480x360,setsar=sar=16/9[outro];
[firstfadeoutclip]format=pix_fmts=yuva420p, fade=t=out:st=0:d=1:alpha=1[firstfadeoutalpha];
[firstfadeinclip]format=pix_fmts=yuva420p, fade=t=in:st=0:d=1:alpha=1[firstfadeinalpha];
[secondfadeoutclip]format=pix_fmts=yuva420p, fade=t=in:st=0:d=1:alpha=1[secondfadeoutalpha];
[secondfadeinclip]format=pix_fmts=yuva420p, fade=t=in:st=0:d=1:alpha=1[secondfadeinalpha];
[firstfadeoutalpha]fifo[firstfadeoutfifo];
[firstfadeinalpha]fifo[firstfadeinfifo];
[secondfadeoutalpha]fifo[secondfadeoutfifo];
[secondfadeinalpha]fifo[secondfadeoinfifo];
[firstfadeoutfifo][firstfadeinfifo]overlay[firstcrossfade];
[secondfadeoutfifo][secondfadeoinfifo]overlay[secondcrossfade];
[intro][firstcrossfade][video][secondcrossfade][outro]concat=n=5[output];
[0:a][1:a] acrossfade=d=1 [audio]"
-vcodec libx264 -map "[output]" -map "[audio]" "output.mp4"
(我没有检查命令的其余部分,但可能您打算使用
setdar=16/9
)该命令有效,但水印在1或2秒后消失。。。看起来好像修剪持续时间没有正确应用。我使用setsar是因为在文档中我读到它也设置了dar。如果我在所有流中都使用了setsar,我不应该在流中使用相同的水印吗?我认为水印只应用于[firstfadeinclip]
,而不是[video]
和[secondfadeoclip
]我正在尝试…更正。与源流不同,生成的流需要复制以供重用。
ffmpeg -i intro.mp4 -i video.mp4 -i outro.mp4 -i watermark.png -filter_complex "
[0:v]trim=start=0:end=9,setpts=PTS-STARTPTS,scale=480x360,setsar=sar=16/9[intro];
[0:v]trim=start=9:end=10,setpts=PTS-STARTPTS,scale=480x360,setsar=sar=16/9[firstfadeoutclip];
[3:v][1:v]scale2ref=(1917*iw/1920)/3.5:(322*iw/1920)/3.5[wm][v1ol];
[v1ol]trim=0:25[v1];[v1][wm]overlay=W-w-20:20,split=3[1va][1vb][1vc];
[1va]trim=start=0:end=1,setpts=PTS-STARTPTS,scale=480x360,setsar=sar=16/9[firstfadeinclip];
[1vb]trim=start=1:end=24,setpts=PTS-STARTPTS,scale=480x360,setsar=sar=16/9[video];
[1vc]trim=start=24:end=25,setpts=PTS-STARTPTS,scale=480x360,setsar=sar=16/9[secondfadeoutclip];
[2:v]trim=start=0:end=1,setpts=PTS-STARTPTS,scale=480x360,setsar=sar=16/9[secondfadeinclip];
[2:v]trim=start=1:end=10,setpts=PTS-STARTPTS,scale=480x360,setsar=sar=16/9[outro];
[firstfadeoutclip]format=pix_fmts=yuva420p, fade=t=out:st=0:d=1:alpha=1[firstfadeoutalpha];
[firstfadeinclip]format=pix_fmts=yuva420p, fade=t=in:st=0:d=1:alpha=1[firstfadeinalpha];
[secondfadeoutclip]format=pix_fmts=yuva420p, fade=t=in:st=0:d=1:alpha=1[secondfadeoutalpha];
[secondfadeinclip]format=pix_fmts=yuva420p, fade=t=in:st=0:d=1:alpha=1[secondfadeinalpha];
[firstfadeoutalpha]fifo[firstfadeoutfifo];
[firstfadeinalpha]fifo[firstfadeinfifo];
[secondfadeoutalpha]fifo[secondfadeoutfifo];
[secondfadeinalpha]fifo[secondfadeoinfifo];
[firstfadeoutfifo][firstfadeinfifo]overlay[firstcrossfade];
[secondfadeoutfifo][secondfadeoinfifo]overlay[secondcrossfade];
[intro][firstcrossfade][video][secondcrossfade][outro]concat=n=5[output];
[0:a][1:a] acrossfade=d=1 [audio]"
-vcodec libx264 -map "[output]" -map "[audio]" "output.mp4"