右下にスペクトルの透かしを追加

右下にスペクトルの透かしを追加

出力画像は以下のようになります。

私の命令は:

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

ここで、フィルター入力のラベル (それぞれ 2 つの入力に対して 0 と 1) と出力のラベル ( spec、、watermark…) に注意することが重要です。これらを使用して、さまざまなフィルターを接続します。

関連情報