...
REST-метод | Пример тела REST-запроса | Пример ответа | Статусы ответа | Описание |
---|
/mixer/startup | Code Block |
---|
| {
"uri": "mixer://mixer1",
"localStreamName": "stream3",
"hasVideo": "true",
"hasAudio": "true",
"watermark": "watermark.png",
"background": "background.png",
"mixerLayoutClass": "com.flashphoner.mixerlayout.TestLayout"
} |
|
| 200 - OK 400 - Bad request 409 - Conflict 500 - Internal error | Создает микшер, для которого публикуется поток с указанным именем |
/mixer/add | Code Block |
---|
| {
"uri": "mixer://mixer1",
"remoteStreamName": "stream1",
"hasVideo": "true",
"hasAudio": "true"
} |
|
| 200 - OK 404 - Mixer not found 404 - Stream not found 500 - Internal error | Добавить RTMP-поток в микшер |
/mixer/remove | Code Block |
---|
| {
"uri": "mixer://mixer1",
"remoteStreamName": "stream1"
} |
|
| 200 - OK 404 - Mixer not found 404 - Stream not found 500 - Internal error | Убрать RTMP-поток из микшера |
/mixer/find_all |
| Code Block |
---|
| {
"localMediaSessionId": "ce92b134-2468-4460-8d06-1ea3c5aabace",
"remoteMediaSessionId": null,
"localStreamName": "mixer1",
"remoteStreamName": null,
"uri": "mixer://mixer1",
"status": "PROCESSED_LOCAL",
"mediaSessions": [
"95bf2be8-f459-4f62-9a7f-c588f33e0ad3",
"693781de-cada-4589-abe1-c3ee55c66901"
]
} |
| 200 - OK 404 - Not found 500 - Internal error | Найти все микшеры |
/mixer/terminate | Code Block |
---|
| {
"uri": "mixer://mixer1"
} |
|
| 200 - OK 404 - Not found 500 - Internal error | Завершить работу микшера |
/stream/startRecording | Code Block |
---|
| {
"mediaSessionId": "23d07fa1-3c74-4d6f-a0de-9b4bf83ce665"
} |
|
| 200 - OK 404 - Not found 500 - Internal error | Начать запись потока в указанной медиасессии |
/stream/stopRecording | Code Block |
---|
| {
"mediaSessionId": "23d07fa1-3c74-4d6f-a0de-9b4bf83ce665"
} |
|
| 200 - OK 404 - Not found 500 - Internal error | Завершить запись потока в указанной медиасессии |
/mixer/setAudioVideo | Code Block |
---|
| {
"uri": "mixer://m1",
"streams": "^stream.*",
"audioLevel": 0,
"videoMuted" true
} |
|
| 200 - OK 400 - Bad request 404 - Not found 500 - Internal error | Заглушить/возобновить аудио и/или видео видео или изменить уровень громкости аудио входного потока микшера |
Параметры
...
Входные потоки управляются при помощи REST API запроса /mixer/setAudioVideo.
Например, создаем микшер и добавляем туда три потока: два потока участников и один поток ведущего
...
Code Block |
---|
|
POST /rest-api/mixer/setAudioVideo HTTP/1.1
User-Agent: curl/7.29.0
Host: localhost:8081
Accept: */*
Content-Type: application/json
Content-Length: 62
{
"uri": "mixer://m1",
"streams": "^stream.*",
"audioLevel": 0
} |
Параметр streams может streams
может быть задан либо как регулярное выражение для поиска потоков по имени, либо как список потоков. Синтаксис регулярных выражении соответствует поддерживаемому в языке Java, примеры приведены здесь.
...
Проверим состояние потоков запросом /mixer/find_all
Code Block |
---|
| POST /rest-api/mixer/find_all HTTP/1.1
User-Agent: curl/7.29.0
Host: localhost:8081
Accept: */*
Content-Type: application/json |
| Code Block |
---|
| HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Content-Type: application/json
Content-Length: 574
[
{
"localMediaSessionId": "e2fa5c8b-16f3-4917-9d5f-557dde75db07",
"localStreamName": "m1",
"uri": "mixer://m1",
"status": "PROCESSED_LOCAL",
"hasAudio": true,
"hasVideo": true,
"record": false,
"mediaSessions": [
{
"localMediaSessionId": "3dd763b0-2ae7-11eb-aa72-37b2cbcbf6b9",
"audioLevel": 0,
"videoMuted": true,
"localStreamName": "stream1"
},
{
"localMediaSessionId": "8af64760-2ae7-11eb-b086-cdf035231b9d",
"audioLevel": 100,
"videoMuted": false,
"localStreamName": "desktop"
},
{
"localMediaSessionId": "7cc4b410-2ae7-11eb-b34c-a5240fe9f151",
"audioLevel": 0,
"videoMuted": false,
"localStreamName": "stream2"
}
]
}
] |
|
Краткое руководство по тестированию
...