A imagem de saída deve ficar assim abaixo:
Meu comando é:
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};
Quero adicionar marca d’água no canto inferior direito com este comando.
E este é o meu comando para a marca d'água:
"[1] escala=70:70 [tmp]; [0][tmp]overlay=main_w-overlay_w-10:main_h- overlay_h-10"
Consegui isso com a seguinte 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
};
Responder1
Seu comando original não contém os elementos necessários para sobrepor uma marca d'água:
- A imagem da marca d’água como entrada
- O filtro de sobreposição para adicionar a marca d'água
Então, você precisa de outro -i
para a entrada da marca d'água e de um overlay
filtro que conecte a saída do filtro de espectro com a entrada da imagem.
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
Aqui, é importante observar os rótulos das entradas do filtro (0 e 1 para as respectivas duas entradas) e saídas ( spec
, watermark
,…). Você os usa para conectar os diferentes filtros.