Добавить водяной знак в правом нижнем углу со спектром

Добавить водяной знак в правом нижнем углу со спектром

Выходное изображение должно выглядеть следующим образом:

Моя команда:

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};

С помощью этой команды я хочу добавить водяной знак в правом нижнем углу.

А это моя команда для водяного знака:

"[1] масштаб=70:70 [tmp]; [0][tmp]наложение=main_w-overlay_w-10:main_h-overlay_h-10"

Я добился этого с помощью следующего запроса:

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
};

решение1

В вашей исходной команде отсутствуют необходимые элементы для наложения водяного знака:

  1. Изображение водяного знака в качестве входных данных
  2. Фильтр наложения для добавления водяного знака

Итак, вам понадобится еще один -iдля входа водяного знака и overlayфильтр, который соединяет выход спектрального фильтра с входом изображения.

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

Здесь важно отметить метки входов фильтра (0 и 1 для соответствующих двух входов) и выходов ( spec, watermark, …). Вы используете их для подключения различных фильтров.

Связанный контент