Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagexml
themeRDark
<?xml version="1.0" encoding="utf-8"?>
<body xsi:noNamespaceSchemaLocation="schema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <div width="320" height="180" padding-left="0" padding-right="0" padding-bottom="0" align="TOP_CENTER">
    <video>test1.*</video>
  </div>
  <div width="320" height="180" padding-left="0" padding-right="0" padding-bottom="0" align="BOTTOM_CENTER">
    <video>test2.*</video>
  </div>
  <div width="160" height="90" padding-left="0" padding-right="0" padding-bottom="0" align="RIGHT">
    <video><<video>.*</video>
  </div>
</body>

В этом случае поток test3 будет отображен в последнем video элементе.

...

Рассмотрим вариант размещения в микшере с выходным потоком 640x360 до трех участников. Обратите внимание, что размеры картинок для всех потоков должны быть заданы явным образом, и не должны превышать размеров холста микшера.

Описание на одного участника:

...

Code Block
languagexml
themeRDark
title3_test.mix
<?xml version="1.0" encoding="utf-8"?>
<body xsi:noNamespaceSchemaLocation="schema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <div width="320" height="180" padding-left="0" padding-right="0" padding-bottom="0" xalign="0" y="0LEFT">
    <video crop="false">test1.*</video>
  </div>
  <div width="320" height="180" padding-left="0" padding-right="0" padding-bottom="0" xalign="320" y="0"RIGHT">
    <video crop="false">test2.*</video>
  </div>
  <div <div width="320" height="180" padding-left="0" padding-right="0" padding-bottom="0" align="BOTTOM_CENTER">
    <video crop="faslefalse">test3.*</video>
  </div>
</body>

...

Пример отображения потоков test1, test2 и test3

Инструмент для отображения размещения картинок

В сборке 5.2.1035 добавлен инструмент для отображения вариантов размещения картинок, запускаемый из командной строки

Code Block
languagebash
themeRDark
cd /usr/local/FlashphonerWebCallServer/tools
bash ./mixer_layout_tool.sh /path/to/mixer_layout -o=/path/to/output

Инструмент выводит в указанный каталог одну картинку в формате PNG на один файл описания количества участников.

Поддерживаются следующие параметры:

  • /path/to/mixer_layout - путь к каталогу варианта размещения картинок, обязательный параметр
  • -o=/path/to/output - путь к каталогу для вывода картинок
  • -n=1 - количество участников в микшере, для которого должна быть выведена картинка; если не задано, будут выведены картинки для всех файлов описаний в данном варианте размещения
  • -N=test1,test2,test3 - список имен потоков, используемых при формировании картинок: если имен потоков в списке меньше, чем заданное количество участников, будут автоматически сгенерированы имена stream0, stream1 и т.д.
  • -p=test - префикс для генерации имен потоков, используемых при формировании картинок; имена генерируются последовательно, начиная с 0, например test0, test1, test2 и т.д.
  • -a - отрисовка рамок индикатора речи вокруг всех картинок

Инструмент использует текущие настройки микшера из файла flashphoner.properties

Примеры отображения

Рассмотрим примеры отображения варианта расположения картинок, приведенного выше

1. Картинка для одного участника с отображением рамки индикатора речи, имена потоков задаются явно

Code Block
languagebash
themeRDark
bash ./mixer_layout_tool.sh /opt/mixer_layout -o=/tmp -N=test1,test2,test3 -n=1 -a

Файл /tmp/1_test.png

Image Added

2. Картинка для трех участников с указанием префикса и автоматическим формированием имен потоков

Code Block
languagebash
themeRDark
bash ./mixer_layout_tool.sh /opt/mixer_layouts -o=/tmp -p=test -n=3

Файл /tmp/3_test.png

Image Added

Шаблоны имен потоков в описаниях данного варианта заданы явным образом как test1.*, test2.*, test3.*. При автоматической генерации имен потоков отсчет начинается с 0, поэтому для данного количества участников были созданы имена test0, test1, test2. В этом случае для недостающего потока test3 имя отображается как No stream for: test3.*

Обработка ошибок

Если размер картинки в описании варианта размещения картинок превышает размеры холста микшера, инструмент выведет сообщение об ошибке, файл PNG не будет сгенерирован:

Code Block
themeRDark
13:54:49,232 INFO  toryLayoutController - Mixer got 2 frames. Using 2_test.mix descriptor
Computed layout would produce exception: java.lang.RuntimeException: Computed layout element: Layout{point=java.awt.Point[x=-106,y=0], dimension=java.awt.Dimension[width=852,height=478], frame:true} out of bounds
Please check configuration for this set of participants: [test1, test2]

Если создать микшер с таким вариантом размещения картинок, микшер будет закрыт с таким же сообщением об ошибке.