Водяной знак

Discussion in 'Web Call Server 5' started by Ras2607, Mar 31, 2017.

  1. Ras2607

    Ras2607 New Member

    Здравствуйте. Как можно встроить в трансляцию водяной знак? И насколько им можно управлять? Имеется ввиду перемещением например в реальном времени, изменением размера итд итп
  2. Max

    Max Administrator Staff Member

    Добрый день.

    Watermark можно вставить двумя способами.
    1. Статический.
    Для этого нужно добавить в flashphoner.properties настройку, указывающую на PNG-файл водянного знака.
    Code:
    custom_watermark_filename=watermark.png
    А сам файл положить в папку conf
    Эта настройка не работает с триальными лицензиями, т.к. в триальных лицензиях накладывается наш вотермарк вне зависимости от того, какой там указан.
    2. Динамический.
    В этом случае на стороне сервера нужно написать код на Java, который перехватывает декодированные видео фреймы.
    Watermark можно отрисовать на Java по пикселям по координатам. В этом случае можно отрисовывать его по-новому на каждый фрейм: с увеличением размера, с изменением координат, и т.д. Но придется это делать на языке Java и вручную по пикселям. Хотя можно и заранее подготовить графику в виде массивов байт. В общем сложный формат и требует программирования.

    Watermark добавляется только при транскодинге видеопотоков.
    Поэтому чтобы наложить картинку, поток должен быть декодирован, потом добавлена картинка, потом закодирован и отправлен дальше.
    Т.е. чтобы добавить watermark на все потоки, вам нужно транскодировать все входящие видеопотоки.
    Это можно сделать например так:
    При публикации видеопотока задаем разрешение:
    Code:
    session.createStream({name:'stream1',constraints:{audio:true,video:{width:640,height:480}}}).publish();
    При воспроизведении видеопотока задаем другое разрешение:
    Code:
    session.createStream({name:'stream1',constraints:{audio:true,video:{width:320,height:240}}}).play();
    Т.е. все видеопотоки публикуются на сервер в разрешении 640x480, а воспроизводятся в 320x240. Это автоматически вызовет транскодинг, рескейлинг из 640x480 в 320x240 и наложение вотермарка.

    Наложение Watermark вызовет повышенную нагрузку на сервер, из расчета примерно 0.5-1 ядро на каждый входящий видеопоток, в зависимости от разрешения транскодируемого видео. Т.е. чтобы обработать 16 входящих видеопотоков может потребоваться 8-16 ядерный сервер.
  3. Max

    Max Administrator Staff Member

    Проще установить Watermark прямо на источнике вещаемого видеопотока, если есть такая возможность.
    Но для этого придется установить десктопный софт, перехватывающий видео с вебкамеры, например manycam, который может накладывать фильтры (добавлять wm) сразу после захвата.

Share This Page