Shaka Player прямой эфир не запускается - PullRequest
0 голосов
/ 15 марта 2020

В нашем приложении-реактиве, работающем как интеллектуальное веб-приложение Tizen на смартфонах Samsung, мы используем ShakaPlayer 2.5.6 c для воспроизведения прямых трансляций DA SH.

Проблема является то, что иногда поток не запускается. Лицензия DRM получена, сегменты извлекаются, но каким-то образом проигрыватель не показывает никаких кадров. Плеер не регистрирует никаких ошибок. Через несколько часов проблема исчезает. Кроме того, проблема, похоже, не затрагивает все устройства.

Прямые трансляции происходят из пакетов Halo, которые также используются для других клиентов (ExoPlayer, AVplayer & Chromecast ShakaPlayer), без каких-либо проблем. Мы используем титановую DRM-лицензию.

Ниже приведен подробный график того, что происходит с ошибочным потоком. Приложение регистрирует прослушиватели игроков для событий abrstatusaged, адаптации, буферизации, drmsessionupdate, emsg, error, expirationupdated, largegap, загрузки, manifestparsed, onstatechange, onstateidle, потоковой передачи, выгрузки и вариантной замены. Кроме того, каждые 2,5 секунды записывается точка воспроизведения, текущий манифест и информация о буферизации. Для каждой выборки сегмента отображается заголовок даты ответа.

Мы пробовали использовать широкий диапазон конфигураций, включая различные значения параметров буферизации, defaultPresentationDelay jumpLargeGaps и videoRobustness. Все с одинаковым результатом.

Временная шкала ниже показывает, что один и тот же сегмент выбирается несколько раз. Похоже, что проигрыватель пытается извлечь сегменты, хотя ни один из них не получается.

Сначала кажется, что существует проблема DRM, когда проигрыватель не может декодировать фрагменты видео. При успешном воспроизведении мы видим дополнительное «истечение срока действия: произошла смена времени окончания сеанса EME» сразу после «drmsessionupdate: CDM принял событие ответа лицензии», что может поддержать эту теорию. Однако игрок не выдает никаких ошибок.

В чем может быть причина такого поведения? Обратите внимание, что проблема появляется часто, но не всегда.

2020-3-14 11:10:55  loading
2020-3-14 11:10:55  onstatechange                   "attach"
2020-3-14 11:10:55  onstatechange                   "media-source"
2020-3-14 11:10:55  onstatechange                   "manifest-parser"
2020-3-14 11:10:55  onstatechange                   "manifest"
2020-3-14 11:10:55  networkEngine manifest response
2020-3-14 11:10:55  manifestparsed
2020-3-14 11:10:55  onstatechange                   "drm-engine"
2020-3-14 11:10:55  onstatechange                   "load"
2020-3-14 11:10:55  buffering                       true
2020-3-14 11:10:55  streaming
2020-3-14 11:10:55  abrstatuschanged
2020-3-14 11:10:55  seekRange                       {"start":266177.98933333333,"end":266197.85233330727}
2020-3-14 11:10:55  onstateidle                     state: load
2020-3-14 11:10:56  video event: play
2020-3-14 11:10:56  network license request
2020-3-14 11:10:56  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:29 GMT"  audio1/Header.m4s 
2020-3-14 11:10:56  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:41 GMT"  audio1/1388208802880.m4s
2020-3-14 11:10:56  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:55 GMT"  video2/Header.m4s
2020-3-14 11:10:56  network license                 response received
2020-3-14 11:10:56  drmsessionupdate                the CDM has accepted the license response
2020-3-14 11:10:56  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:41 GMT"  video2/1388208801440.m4s
2020-3-14 11:10:57  abrstatuschanged
2020-3-14 11:10:57  adaptation                      an automatic adaptation causes the active tracks to change
2020-3-14 11:10:57  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:43 GMT"  audio1/1388208981440.m4s
2020-3-14 11:10:57  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:38 GMT"  video2/1388208081440.m4s
2020-3-14 11:10:57  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:33 GMT"  audio1/1388208082880.m4s
2020-3-14 11:10:57  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:34 GMT"  audio1/1388208261440.m4s
2020-3-14 11:10:57  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:56 GMT"  video3/Header.m4s
2020-3-14 11:10:57  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:33 GMT"  audio1/1388208082880.m4s    HIT
2020-3-14 11:10:57  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:33 GMT"  audio1/1388208082880.m4s    HIT
2020-3-14 11:10:57  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:41 GMT"  video3/1388208081440.m4s    MISS
2020-3-14 11:10:57  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:41 GMT"  video3/1388208081440.m4s    HIT
2020-3-14 11:10:57  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:33 GMT"  audio1/1388208082880.m4s    HIT
2020-3-14 11:10:57  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:33 GMT"  audio1/1388208082880.m4s    HIT
2020-3-14 11:10:57  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:41 GMT"  video3/1388208081440.m4s    HIT
2020-3-14 11:10:57  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:33 GMT"  audio1/1388208082880.m4s    HIT
2020-3-14 11:10:58  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:33 GMT"  audio1/1388208082880.m4s    HIT
2020-3-14 11:10:58  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:41 GMT"  video3/1388208081440.m4s    HIT
2020-3-14 11:10:58  current status                  player.isBuffering(): true; player.isInProgress(): false
2020-3-14 11:10:58  current manifest info           delay: 10s; maxSegmentDuration: 2.25s; seekRange: [2020-3-14 11:10:25 - 2020-3-14 11:10:45]; usingPresentationStartTime: false;
2020-3-14 11:10:58  live presentationStartTime      2020-3-11 09:14:05
2020-3-14 11:10:58  live playhead time              2020-3-14 11:10:34
2020-3-14 11:10:58  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:33 GMT"  audio1/1388208082880.m4s    HIT
2020-3-14 11:10:58  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:41 GMT"  video3/1388208081440.m4s    HIT
2020-3-14 11:10:58  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:33 GMT"  audio1/1388208082880.m4s    HIT
2020-3-14 11:10:58  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:41 GMT"  video3/1388208081440.m4s    HIT
2020-3-14 11:10:58  networkEngine manifest response
2020-3-14 11:10:58  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:33 GMT"  audio1/1388208082880.m4s    HIT
2020-3-14 11:10:58  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:34 GMT"  audio1/1388208261440.m4s    HIT
2020-3-14 11:10:59  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:41 GMT"  video3/1388208081440.m4s    HIT
2020-3-14 11:10:59  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:37 GMT"  audio1/1388208441920.m4s    HIT
2020-3-14 11:10:59  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:41 GMT"  video3/1388208261440.m4s    MISS
2020-3-14 11:10:59  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:49 GMT"  video3/1388208441440.m4s    MISS
2020-3-14 11:10:59  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:51 GMT"  video3/1388208621440.m4s    MISS
2020-3-14 11:10:59  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:53 GMT"  video3/1388208801440.m4s    MISS
2020-3-14 11:11:00  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:39 GMT"  audio1/1388208622400.m4s    HIT
2020-3-14 11:11:00  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:41 GMT"  audio1/1388208802880.m4s    HIT
2020-3-14 11:11:00  buffering                       false
2020-3-14 11:11:00  current status                  player.isBuffering(): false; player.isInProgress(): false
2020-3-14 11:11:00  current manifest info           delay: 10s; maxSegmentDuration: 2.25s; seekRange: [2020-3-14 11:10:28 - 2020-3-14 11:10:48]; usingPresentationStartTime: false; 
2020-3-14 11:11:00  live presentationStartTime      2020-3-11 09:14:05
2020-3-14 11:11:00  live playhead time              2020-3-14 11:10:34
2020-3-14 11:11:00  buffered time                   [2020-3-14 11:10:31 to 2020-3-14 11:10:40]
2020-3-14 11:11:01  networkEngine manifest response
2020-3-14 11:11:03  current status                  player.isBuffering(): false; player.isInProgress(): false
2020-3-14 11:11:03  current manifest info           delay: 10s; maxSegmentDuration: 2.25s; seekRange: [2020-3-14 11:10:30 - 2020-3-14 11:10:50]; usingPresentationStartTime: false; 
2020-3-14 11:11:03  live presentationStartTime      2020-3-11 09:14:05
2020-3-14 11:11:03  live playhead time              2020-3-14 11:10:34
2020-3-14 11:11:03  buffered time                   [2020-3-14 11:10:31 to 2020-3-14 11:10:40]
2020-3-14 11:11:04  networkEngine manifest response
2020-3-14 11:11:05  current status                  player.isBuffering(): false; player.isInProgress(): false
2020-3-14 11:11:05  current manifest info           delay: 10s; maxSegmentDuration: 2.25s; seekRange: [2020-3-14 11:10:33 - 2020-3-14 11:10:53]; usingPresentationStartTime: false; 
2020-3-14 11:11:05  live presentationStartTime      2020-3-11 09:14:05
2020-3-14 11:11:05  live playhead time              2020-3-14 11:10:34
2020-3-14 11:11:05  buffered time                   [2020-3-14 11:10:31 to 2020-3-14 11:10:40]
2020-3-14 11:11:07  adaptation                      an automatic adaptation causes the active tracks to change
2020-3-14 11:11:07  networkEngine segment           "date":"Sat, 14 Mar 2020 10:11:04 GMT"  video3/1388208981440.m4s    MISS
2020-3-14 11:11:07  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:43 GMT"  audio1/1388208981440.m4s    HIT
2020-3-14 11:11:07  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:45 GMT"  audio1/1388209161920.m4s    HIT
2020-3-14 11:11:07  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:29 GMT"  video7/Header.m4s           HIT
2020-3-14 11:11:07  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:47 GMT"  audio1/1388209342400.m4s    HIT
2020-3-14 11:11:07  networkEngine manifest response
2020-3-14 11:11:08  current status                  player.isBuffering(): false; player.isInProgress(): false
2020-3-14 11:11:08  current manifest info           delay: 10s; maxSegmentDuration: 2.25s; seekRange: [2020-3-14 11:10:35 - 2020-3-14 11:10:55]; usingPresentationStartTime: false; 
2020-3-14 11:11:08  live presentationStartTime      2020-3-11 09:14:05
2020-3-14 11:11:08  live playhead time              2020-3-14 11:10:39
2020-3-14 11:11:08  buffered time                   [2020-3-14 11:10:31 to 2020-3-14 11:10:42]
2020-3-14 11:11:08  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:45 GMT"  video7/1388209161440.m4s    HIT
2020-3-14 11:11:09  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:47 GMT"  video7/1388209341440.m4s    HIT
2020-3-14 11:11:10  current status                  player.isBuffering(): false; player.isInProgress(): false
2020-3-14 11:11:10  current manifest info           delay: 10s; maxSegmentDuration: 2.25s; seekRange: [2020-3-14 11:10:38 - 2020-3-14 11:10:58]; usingPresentationStartTime: false; 
2020-3-14 11:11:10  live presentationStartTime      2020-3-11 09:14:05
2020-3-14 11:11:10  live playhead time              2020-3-14 11:10:40
2020-3-14 11:11:10  buffered time                   [2020-3-14 11:10:31 to 2020-3-14 11:10:46]
2020-3-14 11:11:11  networkEngine manifest response
2020-3-14 11:11:12  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:49 GMT"  audio1/1388209522880.m4s    HIT
2020-3-14 11:11:12  networkEngine segment           "date":"Sat, 14 Mar 2020 10:10:51 GMT"  audio1/1388209701440.m4s    HIT
2020-3-14 11:11:13  current status                  player.isBuffering(): false; player.isInProgress(): false
2020-3-14 11:11:13  current manifest info           delay: 10s; maxSegmentDuration: 2.25s; seekRange: [2020-3-14 11:10:40 - 2020-3-14 11:11:00]; usingPresentationStartTime: false; 
2020-3-14 11:11:13  live presentationStartTime      2020-3-11 09:14:05
2020-3-14 11:11:13  live playhead time              2020-3-14 11:10:45
2020-3-14 11:11:13  buffered time                   [2020-3-14 11:10:31 to 2020-3-14 11:10:46]
...