Описание
В захваченный поток при трансляции его зрителям может быть вставлен водяной знак. Для этого необходимо добавить в файл flashphoner.properties параметр, указывающий имя PNG-файла водяного знака:
custom_watermark_filename=watermark.png
Сам файл необходимо разместить в каталоге /usr/local/FlashphonerWebCallServer/conf.
Водяной знак может быть добавлен только при условии использования коммерческой лицензии, поскольку в ознакомительной во все потоки добавляется водяной знак Flashphoner.
Если водяной знак содержит области черного цвета, эти области не будут отображаться, поскольку черный цвет является цветом фона при воспроизведении видео.
Водяной знак добавляется только при транскодинге, поскольку, чтобы наложить на поток картинку, поток должен быть декодирован, затем закодирован с наложенной картинкой для дальнейшей трансляции. Для включения транскодинга можно явно указать разрешение при публикации
session.createStream({name:'stream1',constraints:{audio:true,video:{width:640,height:480}}}).publish();
и при воспроизведении потока
session.createStream({name:'stream1',constraints:{audio:true,video:{width:320,height:240}}}).play();
В данном случае все потоки публикуются на сервере в разрешении 640x480, а воспроизводятся в 320x240. Это автоматически вызовет транскодинг, масштабирование из 640x480 в 320x240 и наложение водяного знака.
Наложение водяного знака вызовет повышенную нагрузку на сервер, из расчета примерно 0.5-1 ядро на каждый входящий видеопоток, в зависимости от разрешения транскодируемого видео. Таким образом, чтобы обработать 16 входящих видеопотоков, может потребоваться 8-16 ядерный сервер. В связи с этим, рекомендуется при наличии технической возможности добавлять водяной знак на источнике публикуемого видеопотока.
Микширование картинки с поддержкой альфа-каналов
При добавлении водяного знака часть цветов может быть искажена или становиться прозрачными. Это зависит от значения альфа-канала в применяемом изображении. Чтобы микшировать картинку водяного знака с учетом альфа-каналов, в сборке 5.2.1064 добавлена настройка
custom_watermark_mix=true
Отметим, что в настоящее время реализация поддержки альфа-каналов выполняет много операций последовательно, что может приводить к повышению нагрузки на процессор и снижению качества изображения. В будущем планируется реализовать ее с использованием параллельного микширования на графическом процессоре.
Скачивание картинки водяного знака из внешнего источника
В сборке 5.2.2087 добавлена возможность скачать картинку водяного знака из внешнего источника по URL
custom_watermark_filename=https://server/pics/watermark.png
Если сервер недоступен, или файла нет на сервере, в выходном потоке транскодера будет черный экран, в логе сервера будет сообщение
09:41:01,342 WARN CustomWatermark - API-ASYNC-pool-7-thread-3 Can't read custom watermark file - https://server/pics/watermark.png java.net.ConnectException: Connection refused (Connection refused)
или
09:43:36,235 WARN CustomWatermark - API-ASYNC-pool-7-thread-3 Can't read custom watermark file - https://server/pics/watermark.png java.io.FileNotFoundException: https://server/pics/watermark.png
Известные проблемы
1. Если файл водяного знака поврежден, либо файл отсутствует, используется водяной знак по умолчанию (черная картинка)
Симптомы: при добавлении водяного знака в выходном потоке черный экран, в серверном логе сообщение
Wrong watermark file format. Should be PNG.
Решение: использовать только PNG файл с корректной структурой для добавления водяного знака.