【发布时间】:2021-12-02 19:49:45
【问题描述】:
我能够在一个命令中将图像高度缩放到视频高度的十分之一,将水印添加到视频的 2 个位置(左上角和右下角)
ffmpeg -hide_banner -i /path/to/input.mp4 -i /path/to/watermark.jpg -filter_complex "[1:v][0:v]scale2ref=oh*mdar:ih/10[logo-out][video-out];[video-out][logo-out]overlay=10:10[flag];[1:v][flag]scale2ref=oh*mdar:ih/10[logo-out2][video-out2];[video-out2][logo-out2]overlay=W-w-10:H-h-10" -c:a copy /path/to/output.mp4
但是上面的命令太多余了,所以我去掉了第二个scale2ref
ffmpeg -hide_banner -i /path/to/input.mp4 -i /path/to/watermark.jpg -filter_complex "[1:v][0:v]scale2ref=oh*mdar:ih/10[logo-out][video-out];[video-out][logo-out]overlay=10:10[flag];[flag][logo-out]overlay=W-w-10:H-h-10" -c:a copy /path/to/output.mp4
但遗憾的是,发生了错误
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb195013c00] Invalid stream specifier: logo-out.
Last message repeated 1 times
Stream specifier 'logo-out' in filtergraph description [1:v][0:v]scale2ref=oh*mdar:ih/10[logo-out][video-out];[video-out][logo-out]overlay=10:10[flag];[flag][logo-out]overlay=W-w-10:H-h-10 matches no streams
我知道发生错误是因为第一个叠加层没有设置图像输出说明符,但似乎我们不能这样做?我只知道overlay可以设置视频流说明符。
如何在第二个叠加层中使用从 scale2ref 输出的 [logo-out] 说明符?
【问题讨论】:
标签: ffmpeg watermark video-editing video-watermarking