Versions Compared

Key

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

...

Code Block
languagebash
themeRDark
jar -cf testlayout.jar ./com/flashphoner/frameInterceptor/TestInterceptor.javaclass

и скопируем его в каталог, где размещены библиотеки WCS сервера

...

Code Block
themeRDark
decoded_frame_interceptor=com.flashphoner.frameInterceptor.TestInterceptor

и перезапустить WCS.

Отдельный каталог для собственных Java библиотек

Начиная со сборки 5.2.1512, Java библиотеки (jar файлы) должны помещаться в каталог /usr/local/FlashphonerWebCallServer/lib/custom 

Code Block
languagebash
themeRDark
cp testlayout.jar /usr/local/FlashphonerWebCallServer/lib/custom

Этот каталог сохраняется при дальнейших обновлениях сервера к более новым сборкам. Таким образом, нет необходимости снова копировать jar файлы после установки обновления.

Тестирование

1. Опубликуйте поток в примере Two Way Streaming https://test1.flashphoner.com:8444/client2/examples/demo/streaming/two_way_streaming/two_way_streaming.html, где test1.flashphoner.com - адрес WCS сервера

...

На изображении будут видны измененные пиксели.

Управление перехватчиками по 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
languagejs
themeRDark
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
languagejs
themeRDark
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Content-Type: application/json

Return codes

Code

Reason

200OK
404Not found
500Internal server error

/video_interceptor/find_all

Найти все назначенные обработчики

Request example

Code Block
languagejs
themeRDark
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
languagejs
themeRDark
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

200OK
404Not found

/video_interceptor/remove

Удалить обработчик с указанного потока

Request example

Code Block
languagejs
themeRDark
POST /rest-api/video_interceptor/remove HTTP/1.1
Host: localhost:8081
Content-Type: application/json

{
    "streamName":"stream1"
}

Response example

Code Block
languagejs
themeRDark
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Content-Type: application/json

Return codes

Code

Reason

200OK
404Not found

Параметры

Параметр

Описание

Пример

streamNameИмя опубликованного потока"streamName":"stream1" 
classNameИмя класса перехватчика"className":"com.flashphoner.frameInterceptor.TestInterceptor" 
hashcodeИдентификатор объекта перехватчика"hashcode":21982654 
statusТекущий статус перехватчика"status":"PROCESSING" 
processedFramesКоличество обработанных кадров"processedFrames":169 

Перехватчик может находиться в одном из следующих состояний:

  • WAITING - перехватчик ожидает, когда поток начнет декодироваться
  • PROCESSING - перехватчик получает декодированные кадры и обрабатывает их
  • UNSUPPORTED - перехват не поддерживается (например, для потоков, декодированных на GPU)