Некоторые комментарии здесь очень хороши.Использование libavfilter, вероятно, хорошее место для начала.Создание водяных знаков для каждого кадра будет очень дорогим, поскольку для каждого зрителя требуется декодирование и перекодирование всего видео.
Одна из идей, на которых я хотел бы остановиться, состоит в том, чтобы пометить водяными знаками только части видео.Я предполагаю, что вы работаете с видео h.264, которое требует гораздо больше циклов ЦП для декодирования и кодирования, чем старые кодеки.Я думаю, что на ядро процессора вы можете отметить 1 или 2 потока в режиме реального времени.Если вы можете уменьшить свои требования до 10 секунд из 100, то речь идет о 10-20 на ядро, то есть около 100 на сервер.Вероятно, это не та производительность, которую вы ищете.
Я думаю, что некоторые компании продают оборудование с водяными знаками для операторов телевидения, но я сомневаюсь, что оно дешевле, чем стойка серверов, и гораздо менее гибкое.