java使用FFmpeg给视频加水印
时间: 2023-09-18 16:05:42 浏览: 142
要给视频加水印,可以使用FFmpeg的overlay过滤器。下面是一个Java代码示例,说明如何使用FFmpeg给视频加水印。
```
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class AddWatermark {
public static void main(String[] args) throws IOException {
String inputVideo = "input.mp4";
String outputVideo = "output.mp4";
String watermarkImage = "watermark.png";
String filter = "overlay=10:10";
String[] cmd = {"ffmpeg", "-i", inputVideo, "-i", watermarkImage, "-filter_complex", filter, "-codec:a", "copy", outputVideo};
ProcessBuilder pb = new ProcessBuilder(cmd);
Process process = pb.start();
//读取输出流
InputStream inputStream = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
//等待子进程结束
try {
int exitCode = process.waitFor();
System.out.println("FFmpeg执行完成,退出码:" + exitCode);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
```
在这个示例中,我们使用了ProcessBuilder启动FFmpeg进程,并将输入视频文件、水印图片、过滤器和输出视频文件作为参数传递给FFmpeg。过滤器`overlay=10:10`表示将水印图片添加到视频的左上角。
注意,如果你没有安装FFmpeg,需要先在系统上安装它。
阅读全文