Versions Compared

Key

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

...

В сборке 5.2.724 добавлена возможность указать имя, под которым захваченный поток будет опубликован на сервере, при помощи параметра localStreamName. Если имя не указано, поток будет опубликован под именем, совпадающим с uri, как в предыдущих сборках.

Повторный захват потока с тем же URI

При попытке повторного захвата потока с тем же URI запрос /pull/rtmp/pull вернет 409 Conflict. Если поток уже опубликован на сервере, необходимо подключаться к этому потоку.

Настройка

В каталоге /usr/local/FlashphonerWebCallServer/conf может располагаться файл описания SDP для RTMP-агента rtmp_agent.sdp:

...

Ниже приводится последовательность выполнения операций при захвате RTMP-потока с другого сервера

Авторизация на сервере-источнике

WCS поддерживает авторизацию на RTMP сервере при захвате с него потока при помощи параметров в RTMP URL:

Code Block
themeRDark
rtmp://username:password@server:1935/live/streamKey

Отметим, что, если поток запрашивается с другого WCS сервера по RTMP, такая авторизация не поддерживается.

В сборке 5.2.1069 также добавлена возможность передать параметры после имени потока

Code Block
themeRDark
rtmp://server:1935/live/streamKey?user=username&password=password

В этом случае параметры будут переданы на сервер в RTMP сообщении connect.

При необходимости, параметры могут быть указаны и после имени приложения

Code Block
themeRDark
rtmp://server:1935/live?user=username&password=password/streamKey

В этом случае параметры также будут переданы на сервер в RTMP сообщении connect. Если поток запрашивается с другого WCS сервера по RTMP, параметры авторизации будут доступны в REST hook /connect.

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


Excerpt

1. Поток, содержащий B-фреймы, не воспроизводится либо воспроизводится с артефактами (задержки, подергивания)

Симптомы: 

  • поток не проигрывается, дает задержки видео или подергивания
  • предупреждения в клиентском логе:
Code Block
languagebash
themeRDark
09:32:31,238 WARN 4BitstreamNormalizer - RTMP-pool-10-thread-5 It is B-frame!

Решение:

  • изменить настройки кодировщика таким образом, чтобы исключить использование B-фреймов (понизить профиль кодирования, указать в командной строке и т.п.).
  • транскодировать поток, в этом случае в выходном потоке транскодера B-фреймов не будет

2. AAC фреймы типа 0 не поддерживаются декодером FFmpeg и будут игнорироваться при воспроизведении захваченного потока

При этом в клиентском логе будут выведены предупреждения:

Code Block
languagebash
themeRDark
10:13:06,815 WARN AAC - AudioProcessor-c6c22de8-a129-43b2-bf67-1f433a814ba9 Dropping AAC frame that starts with 0, 119056e500

Решение: использовать кодек Fraunhofer при помощи настройки в файле flashphoner.properties

Code Block
themeRDark
use_fdk_aac=true

3. При публикации и последующем воспроизведении и записи H264 + AAC потока возможна рассинхронизация видео и звука, либо полное отсутствие звука.

Симптомы: при воспроизведении H264 + AAC потока, опубликованного на сервере, а также в записи потока, звук не синхронизирован с видео или отсутствует

Решение:

а) установить настройку в файле flashphoner.properties

Code Block
languagebash
themeRDark
disable_drop_aac_frame=true

Эта настройка, в том числе, отключает игнорирование AAC фреймов.

б) использовать кодек Fraunhofer при помощи настройки

Code Block
themeRDark
use_fdk_aac=true

4. При преобразовании звуковой дорожки AAC к частоте дискретизации 11025 Гц звук искажен или отсутствует

Симптомы: при публикации H264 + AAC потока на WCS сервере и воспроизведении его как H264 + AAC c частотой дискретизации звука 11025 Гц звук искажен или отсутствует

Решение: не использовать частоту дискретизации звука 11025 Гц, либо избегать преобразования звука к данной частоте, например, не указывать данную частоту в файлах настроек SDP.

...