스펙트럼과 함께 오른쪽 하단에 워터마크 추가

스펙트럼과 함께 오른쪽 하단에 워터마크 추가

출력 이미지는 아래와 같아야 합니다.

내 명령은 다음과 같습니다

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]overlay=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, …)의 레이블을 기록하는 것이 중요합니다. 이를 사용하여 다양한 필터를 연결합니다.

관련 정보