...
REST-метод | Пример тела REST-запроса | Пример тела REST-ответа | Статусы ответа | Описание | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|
/pull/rtmp/pull |
| 409 - Conflict 500 - Internal error | Извлечь RTMP-поток по указанному URL | ||||||||
/pull/rtmp/find_all |
| 200 – потоки найдены 404 – потоки не найдены | Найти все извлеченные RTMP-потоки | ||||||||
/pull/rtmp/terminate |
| 200 - поток завершен 404 - поток не найден | Завершить извлеченный RTMP-поток |
...
Имя параметра | Описание | Пример |
---|---|---|
uri | URL RTMP-потока | rtmp://myserver.com/live/myStream |
record | Записывать ли захваченный поток | truefalse |
localMediaSessionId | Идентификатор сессии | 5a072377-73c1-4caf-abd3 |
localStreamName | Локальное имя, присвоенное захваченному потоку. По данному имени поток может быть запрошен с WCS сервера | |
status | Текущий статус потока | PROCESSED_REMOTE |
hasAudio | Есть ли аудио в потоке | true |
hasVideo | Есть ли видео в потоке | true |
Публикация потока под заданным именем
В сборке 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 | ||
---|---|---|
| ||
rtmp://username:password@server:1935/live/streamKey |
Отметим, что, если поток запрашивается с другого WCS сервера по RTMP, такая авторизация не поддерживается.
В сборке 5.2.1069 также добавлена возможность передать параметры после имени потока
Code Block | ||
---|---|---|
| ||
rtmp://server:1935/live/streamKey?user=username&password=password |
В этом случае параметры будут переданы на сервер в RTMP сообщении connect
.
При необходимости, параметры могут быть указаны и после имени приложения
Code Block | ||
---|---|---|
| ||
rtmp://server:1935/live?user=username&password=password/streamKey |
В этом случае параметры также будут переданы на сервер в RTMP сообщении connect
. Если поток запрашивается с другого WCS сервера по RTMP, параметры авторизации будут доступны в REST hook /connect.
Известные проблемы
Excerpt | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1. Поток, содержащий B-фреймы, не воспроизводится либо воспроизводится с артефактами (задержки, подергивания) Симптомы:
Решение:
2. AAC фреймы типа 0 не поддерживаются декодером FFmpeg и будут игнорироваться при воспроизведении захваченного потока При этом в клиентском логе будут выведены предупреждения:
Решение: использовать кодек Fraunhofer при помощи настройки в файле flashphoner.properties
3. При публикации и последующем воспроизведении и записи H264 + AAC потока возможна рассинхронизация видео и звука, либо полное отсутствие звука. Симптомы: при воспроизведении H264 + AAC потока, опубликованного на сервере, а также в записи потока, звук не синхронизирован с видео или отсутствует Решение: а) установить настройку в файле flashphoner.properties
Эта настройка, в том числе, отключает игнорирование AAC фреймов. б) использовать кодек Fraunhofer при помощи настройки
4. При преобразовании звуковой дорожки AAC к частоте дискретизации 11025 Гц звук искажен или отсутствует Симптомы: при публикации H264 + AAC потока на WCS сервере и воспроизведении его как H264 + AAC c частотой дискретизации звука 11025 Гц звук искажен или отсутствует Решение: не использовать частоту дискретизации звука 11025 Гц, либо избегать преобразования звука к данной частоте, например, не указывать данную частоту в файлах настроек SDP. |
...