Правильный способ сделать это с недавним ffmpeg - использовать оверлейный фильтр. Следующая команда поместит watermark.png
поверх input.flv
, причем верхний левый угол водяного знака будет пятнадцать пикселей вправо и десять пикселей вниз от верхнего левого угла основного видео:
ffmpeg -i input.flv -i watermark.png -filter_complex \
'[0:v][1:v]overlay=15:10[outv]' -map [outv] -map 0:a \
-c:a copy -c:v libx264 -crf 22 -preset veryfast output.mp4
Очевидно, измените 15 или 10 на любые значения, которые вы хотите.
Есть также несколько констант, которые могут оказаться полезными, если вы размещаете водяные знаки на нескольких видео с разными разрешениями:
- W и H - ширина и высота основного видео (
input.flv
)
- w и h - ширина и высота оверлейного видео (
watermark.png
)
Это может пригодиться много раз. Например, чтобы разместить водяной знак над центром видео, вы можете использовать:
'[0:v][1:v]overlay=(W-w)/2:(H-h)/2[outv]'
Аналогично, чтобы расположить водяной знак по центру в верхней левой шестой части видео:
'[0:v][1:v]overlay=(W-w)/6:(H-h)/6[outv]'
Для нижней левой шестой части видео:
'[0:v][1:v]overlay=(W-w)/6:(H-h)/(6/5)[outv]'
Вы можете делать все, что вам нужно.
См. Документацию фильтра наложения для получения дополнительной информации.