Parece que sua marca d'água é maior que o vídeo principal. Como você já usa filtros, a maneira mais fácil de corrigir isso é com o scale
filter . scale=25:20
irá escalá-lo para um quadrado de 25x20 pixels. Se você usasse scale=25:-1
, dimensionaria o vídeo (marca d'água nesse caso) para uma largura de 25 e reduziria a altura de forma que a proporção permanecesse a mesma (você também pode usar scale=-1:20
).
Aqui está um exemplo de uso:
ffmpeg -i test.mkv -i watermark.png -filter_complex \
"[1:v]scale=25:20[wat];[0:v][wat]overlay=10:main_h-overlay_h-10[outv]" \
-map "[outv]" -map 0:a output.mkv
Com um filtro gráfico complexo, eu pessoalmente sempre rotulo minhas entradas e saídas para aumentar a legibilidade. Se você não tiver nenhum áudio ou não quiser obter áudio do test.mkv, recorte o -map 0:a
.
Dentro do filtro, [1:v]
refere-se a 'o vídeo da entrada 1' (watermark.png neste caso, pois o ffmpeg começa a contar a partir de 0). Você poderia igualmente usar [1:0]
para 'o fluxo zeroth da entrada 1', ou apenas [1]
, já que neste caso existe somente um fluxo na entrada. Consulte a documentação dos especificadores de fluxo para obter mais informações.
O [wat]
no final do filtro de escala permite que o restante do filtro se refira à saída do filtro de escala - como definir uma variável em um script. O [outv]
no final do filtro serve uma função similar, mas aqui eu estou usando fora do filtro também ( todos rótulos definidos dentro de um filtro gráfico são similarmente acessíveis fora do filtro gráfico, com a opção -map
).
Para obter vídeos de qualidade decente, você precisará definir várias outras opções. confira este primer de codificação geral , ou um dos mais em - guias de profundidade no wiki do FFmpeg .