Agregue una marca de agua en la parte inferior derecha con espectro

Agregue una marca de agua en la parte inferior derecha con espectro

La imagen de salida debería verse así a continuación:

Mi comando es:

String[] command1211 = {"-i", inputPath_audio.mp3,
                "-preset", "ultrafast",
                "-filter_complex",
                "[0:a]showspectrum=s=1280x720,format=yuv420p[v]",
                "-map", "[v]", "-map", "0:a", "-c:v", "libx264", "-c:a",
                "copy", filePath.mp4};

Quiero agregar una marca de agua en la parte inferior derecha con este comando.

Y este es mi comando para la marca de agua:

"[1] escala=70:70 [tmp]; [0][tmp]overlay=main_w-overlay_w-10:main_h-overlay_h-10"

Lo logré con la siguiente consulta:

String[] command12111 = {
    "-i", inputPath_audio,
    "-i",imagepath.getAbsolutePath(),
    "-preset", "ultrafast",
    "-filter_complex",
    "[0:a]showspectrum=s=1280x720[spec]; 
    [1]scale=70:70[watermark];[spec][watermark]overlay=main_w- 
    overlay_w-10:main_h-overlay_h-10[output]",
    "-map", "[output]", "-map", "0:a", "-c:v", "libx264",  
    "-c:a",
    "copy", filePath
};

Respuesta1

A su comando original le faltan los elementos necesarios para superponer una marca de agua:

  1. La imagen de la marca de agua como entrada.
  2. El filtro de superposición para agregar la marca de agua.

Por lo tanto, necesita otro -ipara la entrada de la marca de agua y un overlayfiltro que conecte la salida del filtro de espectro con la entrada de la imagen.

ffmpeg \
    -i audio_path \
    -i image_path \
    -filter_complex \
    "[0:a]showspectrum=s=1280x720[spec];
    [1]scale=70:70[watermark];
    [spec][watermark]overlay=main_w-overlay_w-10:main_h-overlay_h-10[output]
    " \
    -map "[output]" -map 0:a \
    output.mp4

Aquí, es importante tener en cuenta las etiquetas de las entradas del filtro (0 y 1 para las dos entradas respectivas) y las salidas ( spec,, watermark...). Los utiliza para conectar los diferentes filtros.

información relacionada