由于vhook子系统已经从最新版本的FFMPEG中移除,如何在视频中添加水印?
我需要能够覆盖一个背景透明的PNG。
发布于 2009-11-23 16:41:53
在java中,我们可以使用Xuggler来做到这一点。在使用IMediaTool对视频进行编码时,您将获得一系列图像。使用这些图像在每个图像上放置水印并生成输出视频。以下是代码块
BufferedImage imageB = event.getImage();
/*....................... water mark .........................*/
Graphics2D g2d = (Graphics2D) imageB.getGraphics();
g2d.drawImage(imageB, 0, 0, null);
//Create an alpha composite of 50%
AlphaComposite alpha = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1.0f);
g2d.setComposite(alpha);
g2d.setColor(Color.YELLOW);
g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
g2d.setFont(new Font("Arial", Font.BOLD, 30));
String watermark = "Sample water mark";
FontMetrics fontMetrics = g2d.getFontMetrics();
Rectangle2D rect = fontMetrics.getStringBounds(watermark, g2d);
yScrolling = imageB.getHeight() - (int) rect.getHeight() / 2;
g2d.drawString(watermark, (imageB.getWidth() - (int) rect.getWidth()) / 2,
(imageB.getHeight() - (int) rect.getHeight()) / 2);
g2d.drawString(watermark, xScrolling,yScrolling);
//Free graphic resources
g2d.dispose();
/*....................... water mark .........................*/发布于 2012-04-04 04:48:43
如果你从官方git资源库编译ffmpeg,你可能需要注意语法,因为它在新版本中有一些变化。
年长的
ffmpeg -i input.mp4 -acodec copy -vf "movie=0:png:watermark.png [wm];[in][wm] overlay=5:5:1 [out]" -f mp4 -b 2500k -vcodec libx264 -vpre fast -ac 1 -y output.mp4新的
ffmpeg -i input.mp4 -acodec copy -vf "movie=watermark.png [wm];[in][wm] overlay=5:5 [out]" -f mp4 -b 2500k -vcodec libx264 -vpre fast -ac 1 -y output.mp4发布于 2010-08-28 19:28:36
我能联系到的最好的是http://www.corbellconsulting.com/2010/07/using-ffmpeg-to-add-and-watermark-overlay-on-a-video-2/
但是,我无法让它与ffmpeg 0.6.2一起工作。
祝好运。
https://stackoverflow.com/questions/1559691
复制相似问题