Streamstatusevent и статусы

Maksym

Member
Нет, отдельные статусы отключить нельзя. Только полностью убрать нотификацию StreamStatusEvent.

Отдается зрителю, когда публикующий остановил или другим способом прервал публикацию потока.
Пример FAILED с "info" : "Publish session closed"
....
Т.е. FAILED статус не всегда является ошибкой.
А можно ли сделать так, чтобы когда стример нормально заканчивал стрим, вотчеру не приходило status = FAILED, а приходил статус код однозначно говорящий, что стрим завершен корректно
 

Max

Administrator
Staff member
Сейчас работаем по статусам ошибок и событий.
На этой неделе опубликуем в исходнках полный список, которым можно будет руководствоваться. Как будет готово, отпишем в этом топике.
 

Max

Administrator
Staff member
Добрый день.

Все ошибки задокументировали. Сейчас сборка Web SDK на верификации.
Подтверждение о верификации будет в течение недели.
Внутренний номер WCS-1120.

Все статусы ошибок перечислены в файле constants.js Web SDK
Начало:
https://github.com/flashphoner/flas...55e6d86e5a13e6c9f8bc7d0/src/constants.js#L199
Конец:
https://github.com/flashphoner/flas...55e6d86e5a13e6c9f8bc7d0/src/constants.js#L467
Каждая ошибка имеет текстовый код и описание.
Соответственно вы можете интерпретировать и вывести кастомное сообщение об ошибке, если посчитаете нужным.

По вашему вопросу. При завершении потока публикующей стороной, на воспроизводящей стороне status все же будет FAILED.
Мы не можем поменять это обозначение в текущей версии Web SDK, т.к. это может сломать кейсы других клиентов, которые опираются на FAILED.
При этом код ошибки streamStatusInfo будет STOPPED_BY_PUBLISHER_STOP. Таким образом, вы можете интерпретировать это сообщение как нормальное событие.

Пример использования в Two Way Streaming:

Здесь проверили на FAILED:
https://github.com/flashphoner/flas...g/two_way_streaming/two_way_streaming.js#L208

Здесь проверяем статусы и интерпретируем по своему усмотрению:
https://github.com/flashphoner/flas...g/two_way_streaming/two_way_streaming.js#L220

Тестировать можно с последней сборкой Web SDK
https://flashphoner.com/downloads/b...d9ce5b44ea836b555e6d86e5a13e6c9f8bc7d0.tar.gz
 

Maksym

Member
Для андройда и iOS все так же будет, вопрос в том: когда добавите?
 

Max

Administrator
Staff member
По Android SDK и iOS SDK зарегистрировали отдельные тикеты. Скорее всего добавим обработку ошибок поднобным образом в течение 2-4 недель. По результатам отпишем.
WCS-1202, WCS-1203
 

Maksym

Member
Добрый день.
Есть необходимость передавать статусы завершения стрима в хук on_record_hook.sh для того, что бы в последующем понимать, стрим завершился корректно и файл выливать в хранилище либо отложить обработку файла на потом, что бы склеить все куски в один файл.
 

Max

Administrator
Staff member
Добрый день.

Если нужны более подробные статусы, вам нужно реализовать rest hook /StreamStatusEvent
В нем содержится максимально полная информация о завершении стрима с записью.

При нормальном завершении приходит UNPUBLISHED.
В поле recordName имя файла записи.
В поле info дополнительная информация.

При завершении с ошибкой, придет FAILED с теми же полями.

Документация по REST-хукам находится здесь:
https://flashphoner.com/docs/wcs5/wcs_docs/html/ru/wcs-rest-methods/

Code:
URL:http://localhost:9091/EchoApp/StreamStatusEvent
OBJECT:
{
  "nodeId" : "kDFHV79h3hXwLIUSkFf1e7vi0GJvTRmk@192.168.88.59",
  "appKey" : "defaultApp",
  "sessionId" : "/192.168.88.254:60915/192.168.88.59:8443",
  "mediaSessionId" : "9b2804d0-553c-11e8-a254-3be4dd5b4b3a",
  "name" : "a0efa10a",
  "published" : true,
  "hasVideo" : true,
  "hasAudio" : true,
  "status" : "UNPUBLISHED",
  "audioCodec" : "opus",
  "videoCodec" : "H264",
  "info" : "Stopped by publisher stop",
  "record" : true,
  "recordName" : "stream-9b2804d0-553c-11e8-a254-3be4dd5b4b3a-g6tal5h819nib2gs2d0bcro4al.mp4",
  "width" : 320,
  "height" : 240,
  "bitrate" : 0,
  "minBitrate" : 0,
  "maxBitrate" : 0,
  "quality" : 0,
  "createDate" : 1526057917284,
  "mediaProvider" : "WebRTC",
  "history" : false,
  "origin" : "https://192.168.88.59:8888"
}
 
Top