Serie de marcos FFmpeg: agregue múltiples marcas de agua a los videos

1. Escenario empresarial

Requisitos: agrega una imagen de marca de agua específica al video subido.

2. Instale el marco FFmpeg

Les enseñaré en este código JAVA de cinco minutos: La demostración en video de implementación de FFmpeg (versión de ventana) es muy detallada , instale FFmepg en Windows / Linux, no daré más detalles aquí.

3. Agrega una sola marca de agua al video.

Marca de agua en la esquina superior izquierda:

ffmpeg -i xxx.mp4 -i  shuiyin.png -filter_complex overlay=10:10 -codec:a copy  end.mp4

Marca de agua en la esquina inferior izquierda:

ffmpeg -i xxx.mp4 -i shuiyin.png -filter_complex overlay=10:main_h-overlay_h-10  -codec:a copy end.mp4

Marca de agua en la esquina superior derecha:

ffmpeg -i xxx.mp4 -i shuiyin.png -filter_complex overlay=main_w-overlay_w-10:10  -codec:a copy end.mp4

Marca de agua en la esquina inferior derecha:

ffmpeg -i xxx.mp4 -i shuiyin.png -filter_complex  overlay=main_w-overlay_w-10:main_h-overlay_h-10  -codec:a copy end.mp4

Marca de agua en el medio:

ffmpeg -i xxx.mp4 -i shuiyin.png -filter_complex overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2  -codec:a copy end.mp4

3. Agrega varias marcas de agua al video.

Agregue varias imágenes, la siguiente línea de comando:

F:\\ffmpegDemo\\ffmpeg\\bin\\ffmpeg.exe  -i F:\\ffmpegDemo\\aaa.mp4 -i F:\\ffmpegDemo\\logo.png -i F:\\ffmpegDemo\\logo.png -i F:\\ffmpegDemo\\logo.png -i F:\\ffmpegDemo\\logo.png -i F:\\ffmpegDemo\\logo.png  -filter_complex  overlay=10:10,overlay=10:main_h-overlay_h-10,overlay=main_w-overlay_w-10:10,overlay=main_w-overlay_w-10:main_h-overlay_h-10,overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2  F:\\ffmpegDemo\\aaa1.mp4";

Pase varias imágenes de marca de agua y especifique la posición donde se muestra la marca de agua.

4. Código fuente completo

4.1 Efecto de marca de agua

Inserte la descripción de la imagen aquí

4.2 Código fuente completo

public class ExecWindowCMD {
    
    

    public static void main(String[] args) {
    
    

    
        //单个水印
        AddWaterMark();
        //多个水印
        /*AddWaterMarkMore();*/
     }
    //添加单个水印
    public static void AddWaterMark(){
    
    

        String cmdStr = "F:\\ffmpegDemo\\ffmpeg\\bin\\ffmpeg.exe  -i F:\\ffmpegDemo\\test.mp4 -i F:\\ffmpegDemo\\logo.png -filter_complex overlay=main_w-overlay_w-10:main_h-overlay_h-10  F:\\ffmpegDemo\\output1.mp4";
        Runtime run = Runtime.getRuntime();
        try {
    
    
            Process process = run.exec("c:/nircmd.exe elevate  " + cmdStr);
            InputStream in = process.getInputStream();
            while (in.read() != -1) {
    
    
                System.out.println(in.read());
            }
            in.close();
            process.waitFor();
        } catch (Exception e) {
    
    
            e.printStackTrace();
        }
        System.out.println("----添加水印视频生成成功----");
    }


 //添加多个水印(左上角,左下角,右上角,右下角,正中间)
    public static void AddWaterMarkMore(){
    
    

        String cmdStr = "F:\\ffmpegDemo\\ffmpeg\\bin\\ffmpeg.exe  -i F:\\ffmpegDemo\\aaa.mp4 -i F:\\ffmpegDemo\\logo.png -i F:\\ffmpegDemo\\logo.png -i F:\\ffmpegDemo\\logo.png -i F:\\ffmpegDemo\\logo.png -i F:\\ffmpegDemo\\logo.png  -filter_complex  overlay=10:10,overlay=10:main_h-overlay_h-10,overlay=main_w-overlay_w-10:10,overlay=main_w-overlay_w-10:main_h-overlay_h-10,overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2  F:\\ffmpegDemo\\aaa1.mp4";
        Runtime run = Runtime.getRuntime();
        try {
    
    
            Process process = run.exec("c:/nircmd.exe elevate  " + cmdStr);
            InputStream in = process.getInputStream();
            while (in.read() != -1) {
    
    
                System.out.println(in.read());
            }
            in.close();
            process.waitFor();
        } catch (Exception e) {
    
    
            e.printStackTrace();
        }
        System.out.println("----添加水印视频生成成功----");
    }
 }

Supongo que te gusta

Origin blog.csdn.net/u010312671/article/details/108739115
Recomendado
Clasificación