首页 > 解决方案 > Shaka 播放器直播未开始播放

问题描述

在我们的 react-native-web 应用程序中,作为 Tizen 智能网络应用程序在三星智能电视上运行,我们使用 ShakaPlayer 2.5.6c 播放 DASH 直播流。

问题是有时流无法启动。已收到 DRM 许可证,正在获取片段,但不知何故,播放器没有显示任何帧。播放器不会记录任何错误。数小时后问题消失。此外,该问题似乎并不影响所有设备。

直播流来自 Halo 包,该包也用于其他客户端(ExoPlayer、AVplayer 和 Chromecast ShakaPlayer),没有任何问题。我们使用钛 DRM 许可证包装。

以下是失败流的详细时间表。该应用程序为事件 abrstatuschanged、adaptation、buffering、drmsessionupdate、emsg、error、expirationupdated、largegap、loading、manifestparsed、onstatechange、onstateidle、streaming、unloading 和 variantchanged 注册播放器侦听器。此外,每 2.5 秒写入一次播放头、当前清单和缓冲信息。对于每个段提取,都会显示响应日期标题。

我们尝试了多种配置,包括不同的缓冲参数值、defaultPresentationDelay jumpLargeGaps 和 videoRobustness。所有的结果都是一样的。

下面的时间线显示同一段被多次提取。看起来播放器正在重试获取片段,但没有一个失败。

起初看起来存在 DRM 问题,播放器无法解码视频块。当播放成功时,我们会在“drmsessionupdate:CDM 已接受许可响应”事件之后立即看到额外的“expirationupdated:EME 会话的到期时间发生变化”事件,这可以支持这一理论。但是,播放器不会引发错误。

这种行为的原因可能是什么?请注意,该问题经常出现,但并非总是如此。

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]

标签: react-nativetizenmpeg-dashtizen-web-appshaka

解决方案


推荐阅读