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}

The following elements can be used in template:

ElementDescriptionMaximum size
{streamName}Stream name
{startTime}Rocording start time20 characters
{sessionId}Session ID in BASE64 encoding60 characters
{mediaSessionId}Media session ID36 characters
{login}Login32 characters
{audioCodec}Audiocodec4 characters
{videoCodec}Videocodec4 characters

When the file name matches the stream name, it may contain characters that are not allowed in file names, slash '/' for example. In that case, the file name should be encoded using the parameter

...

The on_record_hook_script setting points to the shell -script in script that is invoked when stream recording finishes.

The script is placed to the /usr/local/FlashphonerWebCallServer/bin directory that is invoked when stream recording finishes.By folder by default:

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

but it can be placed to any folder with any name, for example:

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

This script can be used to copy or move the stream record from the WCS_HOME/records directory to another location after recording completes.

...

  • $1 - stream name
  • $2 - absolute path and file name of the stream record
  • when stream recording ends, the record file is copied to /var/www/html/stream_records/

It is necessary to take into account the length of the absolute file name (including folder path) that will be formed when copying record file. If the absolute name of the target file exceeds 255 characters limit, copy command will fail with error, so the handling script will not work as expected.

Adjusting record audio sample rate

By default, audio track is recorded with sample rate 44.1 kHz. This value can be changed using the following parameter if necessary

Code Block
languagebash
themeRDark
record_audio_codec_sample_rate=48000

In this case, record audio sample rate will be set to 48 kHz.

Client side

If stream recording is enabled on the server, whether the stream is recorded or not is determined by the value of record parameter passed into the createStream function in the script of the publisher client:

...

Sometimes, it is necessary to record the stream that already exists on server, mixer output stream for example. This can be done with REST API. Note that only streams in "PUBLISHING" state can be recorded.

REST query must be HTTP/HTTPS POST query like this:

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

...

  • streaming.flashphoner.com is WCS server address
  • 9091 is 8081 is a standard WCS REST / HTTP port
  • 88888444 is a standard WCS REST / HTTPS port
  • rest-api is mandatory prefix
  • /stream/startRecording is REST method

REST methods and response statuses

REST method

Example of REST query

Example of REST response

Response statuses

Description

/stream/startRecording


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

404 - Not found

500 - Internal error


Start stream recording in specified mediasession


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

404 - Not found

500 - Internal error

Stop stream recording in specified mediasession

Parameters

Parameter name

Description

Example

mediaSessionId

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

Media session identificator

5a072377-73c1-4caf-abd3

Known issues

1. Maximum length of file name in all actual Linux file systems is limited to 255 characters. When record file is created, its name will be trimmed to this limit including extension and part number if rotation is enabled.

2. When stream published in chat room is recorded, file rotation will be automatically disabled, otherwise record files will not be merged.

3. In Amazon WCS instance, record files hook script requires sudo to execute any file operation.

Symptoms: record hook script does not perform any operation on record files

Solution: in Amazon WCS instance use sudo to make any file operation or call external script from record hook script, for example

Code Block
languagebash
themeRDark
sudo cp $SRC_FILE $DST_FILE