Versions Compared

Key

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

...

Code Block
languagebash
themeRDark
stream_record_policy_template=stream-{sessionId}-{mediaSessionId}mediaSessionId}-{login}

Доступны следующие элементы шаблона:

ЭлементОписаниеМаксимальный размер
{streamName}Имя потока
{startTime}Время начала записи20 символов
{sessionId}Идентификатор сессии в кодировке BASE6460 символов
{mediaSessionId}Идентификатор медиасессии36 символов
{login}Логин32 символа
{audioCodec}Аудиокодек4 символа
{videoCodec}Видеокодек4 символа

Если имя файла создается из имени потока, в нем могут быть символы, недопустимые к использованию в именах, например, прямой слэш '/'. В этом случае имя файла должно быть закодировано при помощи настройки

...

Настройка on_record_hook_script указывает на shell-скрипт в директории /usr/local/FlashphonerWebCallServer/bin, который вызывается по завершении записи потока.

По умолчанию скрипт располагается в каталоге /usr/local/FlashphonerWebCallServer/bin:

Code Block
languagebash
themeRDark
on_record_hook_script=/usr/local/FlashphonerWebCallServer/bin/on_record_hook.sh

но может быть размещен в любом другом месте под другим именем, например:

Code Block
languagebash
themeRDark
on_record_hook_script=/opt/on_record.sh

Этот скрипт можно использовать для копирования или перемещения записи потока из директории WCS_HOME/records в другое место по завершении записи.

...

  • $1 - имя потока
  • $2 - абсолютное имя файла записи потока
  • по завершении записи потока файл записи копируется в директорию /var/www/html/stream_records/

Необходимо учитывать длину абсолютного имени файла (с учетом имени каталога), которое будет получено при копировании. Если абсолютное имя целевого файла превышает 255 символов, команда копирования завершится с ошибкой, и скрипт не сработает в соответствии с ожиданиями.

Настройка частоты дискретизации аудио при записи

По умолчанию, запись звука ведется с частотой дискретизации 44.1 кГц. При необходимости, это значение можно изменить при помощи параметра

Code Block
languagebash
themeRDark
record_audio_codec_sample_rate=48000

В данном случае частота дискретизации будет установлена в 48 кГц.

Клиентская часть

При включении записи потоков на сервере, будет ли записан поток, или нет, зависит от значения параметра record, переданного функции createStream в скрипте публикующего клиента:

...

В некоторых случаях, необходимо записать поток, который уже транслируется сервером, например, выходной поток микшера. Это можно сделать при помощи REST API. Обратите внимание, что только потоки в статусе "PUBLISHING" могут быть записаны.

REST-запрос должен быть HTTP/HTTPS POST запросом в таком виде:

  • HTTP: http://streaming.flashphoner.com:90918081/rest-api/stream/startRecording
  • HTTPS: https://streaming.flashphoner.com:88888444/rest-api/stream/startRecording

...

  • streaming.flashphoner.com - адрес WCS-сервера
  • 9091 8081 - стандартный REST / HTTP порт WCS-сервера
  • 88888444 - стандартный HTTPS порт
  • rest-api - обязательный префикс
  • /stream/startRecording - используемый REST-вызов

REST-методы и статусы ответа

REST-метод

Пример тела REST-запроса

Пример тела REST-ответа

Статусы ответа

Описание

/stream/startRecording


Code Block
languagejs
themeRDark
{
 "mediaSessionId": "5a072377-73c1-4caf-abd3"
}

404 - Not found

500 - Internal error


Начать запись потока в указанной медиасессии


/stream/stopRecording
Code Block
languagejs
themeRDark
{
 "mediaSessionId": "5a072377-73c1-4caf-abd3"
}

404 - Not found

500 - Internal error

Завершить запись потока в указанной медиасессии

Параметры

Имя параметра

Описание

Пример

mediaSessionId

Идентификатор сессии

5a072377-73c1-4caf-abd3

Известные проблемы

1. Максимальная длина имени файла во всех актуальных файловых системах Linux ограничена 255 символами. При создании файла записи, имя будет сокращено до данного предела, включая расширение и номер части, если включена ротация.

2. При записи потоков, опубликованных в конференции, ротация будет автоматически отключена, в противном случае полученные файлы будет невозможно объединить.

3. Скрипт обработки записанных файлов требует повышения прав для копирования и других операций над файлами записей на виртуальных машинах Amazon

Симптомы: операции над записанными файлами не выполняются

Решение: использовать sudo для файловых операций и вызова внешних скриптов, если WCS установлен на виртуальной машине Amazon, например

Code Block
languagebash
themeRDark
sudo cp $SRC_FILE $DST_FILE