gpt4 book ai didi

Java/JSP : How to add WaterMark on Video

转载 作者:太空宇宙 更新时间:2023-11-04 12:31:54 25 4
gpt4 key购买 nike

我正在尝试在图像和视频上添加水印。对于图像我得到了如下的解决方案

图片水印代码

方法

static void addWatermarkOnImage(String text, File sourceImageFile, File destImageFile) {
try {
BufferedImage sourceImage = ImageIO.read(sourceImageFile);
Graphics2D g2d = (Graphics2D) sourceImage.getGraphics();

// initializes necessary graphic properties
AlphaComposite alphaChannel = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.1f);
g2d.setComposite(alphaChannel);
g2d.setColor(Color.BLUE);
g2d.setFont(new Font("Arial", Font.BOLD, 64));
FontMetrics fontMetrics = g2d.getFontMetrics();
Rectangle2D rect = fontMetrics.getStringBounds(text, g2d);

// calculates the coordinate where the String is painted
int centerX = (sourceImage.getWidth() - (int) rect.getWidth()) / 2;
int centerY = sourceImage.getHeight() / 2;

// paints the textual watermark
g2d.drawString(text, centerX, centerY);

ImageIO.write(sourceImage, "png", destImageFile);
g2d.dispose();

//System.out.println("The tex watermark is added to the image.");

} catch (IOException ex) {
System.err.println(ex);
}
}

方法调用

File sourceImageFile = new File("e:/Test/Watermark/SwingEmailSender.png");
File destImageFile = new File("e:/Test/Watermark/text_watermarked.png");

addTextWatermark("CodeJava", sourceImageFile, destImageFile);

通过上面的代码图像 WaterMarking 非常适合我。对于视频水印,我在网上尝试了很多示例,但没有任何对我有帮助。所以,请有人帮助我在 java/jsp 中进行视频水印

最佳答案

在视频(或刚刚出现的另一个问题中的文本)中添加水印的最常见和流行的开源工具可能是 ffmpeg:

ffmpeg 可以在命令行中使用,也可以作为应用程序的一部分以编程方式使用(如果您想分发等,请仔细查看许可以确保它满足您的需求)。

要以编程方式使用它,您可以在包装器中使用命令行工具,也可以直接使用它所构建的库。

直接使用库(libavcodec、libavutil、libavformat、libavfilter、libavdevice、libswscale 和 libswresample - 请参阅上面链接中的“关于”页面)应该更高效,并允许更好的控制等,但包装器方法仍然很受欢迎,因为它首先实现起来更简单,并且有大量有关命令行语法的在线信息来实现您可能想做的几乎任何事情,您可以通过这种方法利用这些信息。

这些库也是基于 C 的,因此无论如何您都需要一些接口(interface)(例如 JNI)。

围绕 ffmpeg 的 Java 包装器的示例是:

网上有很多使用 ffmpeg 工具向视频添加水印的示例 - 这里有一个示例,但值得通过谷歌搜索来查找语法随时间变化的最新广告:

关于Java/JSP : How to add WaterMark on Video,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37789476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com