...
На изображении будут видны измененные пиксели.
Управление перехватчиками по REST API
В сборке 5.2.2055 добавлена возможность управления перехватчиками декодированных кадров по REST API
REST-запрос должен быть HTTP/HTTPS POST запросом в таком виде:
- HTTP: http://streaming.flashphoner.com:8081/rest-api/video_interceptor/set
- HTTPS: https://streaming.flashphoner.com:8444/rest-api/video_interceptor/set
Здесь:
- streaming.flashphoner.com - адрес WCS-сервера
- 8081 - стандартный REST / HTTP порт WCS-сервера
- 8444 - стандартный HTTPS порт
- rest-api - обязательный префикс
- /video_interceptor/set - используемый REST-вызов
REST методы и статусы ответа
/video_interceptor/set
Назначить потоку обработчик декодированных фреймов. Обработчик начнет работать, как только поток начнет декодироваться, например, будет добавлен в микшер. На один поток может быть назначен один обработчик
Request example
| Code Block | ||||
|---|---|---|---|---|
| ||||
POST /rest-api/video_interceptor/set HTTP/1.1
Host: localhost:8081
Content-Type: application/json
{
"streamName":"stream1",
"className":"com.flashphoner.frameInterceptor.TestInterceptor"
} |
Response example
| Code Block | ||||
|---|---|---|---|---|
| ||||
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Content-Type: application/json |
Return codes
Code | Reason |
|---|---|
| 200 | OK |
| 404 | Not found |
| 500 | Internal server error |
/video_interceptor/find_all
Найти все назначенные обработчики
Request example
| Code Block | ||||
|---|---|---|---|---|
| ||||
POST /rest-api/video_interceptor/find_all HTTP/1.1
Host: localhost:8081
Content-Type: application/json
{
"streamName":"stream1",
"className":"com.flashphoner.frameInterceptor.TestInterceptor"
} |
Response example
| Code Block | ||||
|---|---|---|---|---|
| ||||
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Content-Type: application/json
[
{
"hashcode":21982654,
"className":"com.flashphoner.frameInterceptor.TestInterceptor",
"processedFrames":169,
"streamName":"stream1",
"status":"PROCESSING"
}
] |
Return codes
Code | Reason |
|---|---|
| 200 | OK |
| 404 | Not found |
/video_interceptor/remove
Удалить обработчик с указанного потока
Request example
| Code Block | ||||
|---|---|---|---|---|
| ||||
POST /rest-api/video_interceptor/remove HTTP/1.1
Host: localhost:8081
Content-Type: application/json
{
"streamName":"stream1"
} |
Response example
| Code Block | ||||
|---|---|---|---|---|
| ||||
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Content-Type: application/json |
Return codes
Code | Reason |
|---|---|
| 200 | OK |
| 404 | Not found |
Параметры
Параметр | Описание | Пример |
|---|---|---|
| streamName | Имя опубликованного потока | "streamName":"stream1" |
| className | Имя класса перехватчика | "className":"com.flashphoner.frameInterceptor.TestInterceptor" |
| hashcode | Идентификатор объекта перехватчика | "hashcode":21982654 |
| status | Текущий статус перехватчика | "status":"PROCESSING" |
| processedFrames | Количество обработанных кадров | "processedFrames":169 |
Перехватчик может находиться в одном из следующих состояний:
- WAITING - перехватчик ожидает, когда поток начнет декодироваться
- PROCESSING - перехватчик получает декодированные кадры и обрабатывает их
- UNSUPPORTED - перехват не поддерживается (например, для потоков, декодированных на GPU)