首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不连续的HLS在缓冲区中卡住

不连续的HLS在缓冲区中卡住
EN

Stack Overflow用户
提问于 2020-04-15 02:34:32
回答 1查看 543关注 0票数 1

我们正在使用JWPlayer 8.9.0,并尝试在我们的视频中插入广告。我们使用的是EXT-X-DISCONTINUITY,但很明显,当我们开始做广告时,播放器不再显示缓冲状态。

这是我们的播放列表的一个例子:

代码语言:javascript
复制
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-TARGETDURATION:16
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:14.557178,
https://slave2.example.com/hls/output1/output_000.ts
#EXTINF:1.376467,
https://slave3.example.com/hls/output1/output_001.ts
#EXT-X-DISCONTINUITY
#EXTINF:8.050244,
https://slave2.example.com/hls/HLSad/output_000.ts
#EXTINF:4.880200,
https://slave2.example.com/hls/HLSad/output_001.ts
#EXTINF:7.090889,
https://slave2.example.com/hls/HLSad/output_002.ts
#EXTINF:5.881267,
https://slave2.example.com/hls/output1/output_002.ts
#EXTINF:5.672711,
https://slave3.example.com/hls/output1/output_003.ts
#EXT-X-DISCONTINUITY
#EXTINF:8.050244,
https://slave2.example.com/hls/HLSad/output_000.ts
#EXTINF:4.880200,
https://slave2.example.com/hls/HLSad/output_001.ts
#EXTINF:7.090889,
https://slave2.example.com/hls/HLSad/output_002.ts
#EXTINF:5.714422,
https://slave2.example.com/hls/output1/output_004.ts
#EXTINF:4.755067,
https://slave3.example.com/hls/output1/output_005.ts
[...]
#EXT-X-ENDLIST

这是JS控制台告诉我们的:

代码语言:javascript
复制
[log] > audio sampling rate : 48000
9512e6e5-eff6-4f75-806f-a367785315b7:1 [log] > manifest codec:undefined,ADTS data:type:2,sampleingIndex:3[48000Hz],channelConfig:2
9512e6e5-eff6-4f75-806f-a367785315b7:1 [log] > parsed codec:mp4a.40.5,rate:48000,nb channel:2
9512e6e5-eff6-4f75-806f-a367785315b7:1 [log] > audio sampling rate : 48000
9512e6e5-eff6-4f75-806f-a367785315b7:1 [log] > AVC:59 ms overlapping between fragments detected
9512e6e5-eff6-4f75-806f-a367785315b7:1 [log] > Video/PTS/DTS adjusted: 15958/15933,delta:-59 ms

而Chrome媒体控制台显示:

代码语言:javascript
复制
1.414   kPlay   
{}

17.280  kBufferingStateChanged  
{audio_buffering_state: {reason: "DEMUXER_UNDERFLOW", state: "BUFFERING_HAVE_NOTHING"}}

17.280  kBufferingStateChanged  
{,…}
pipeline_buffering_state: {for_suspended_start: false, reason: "DEMUXER_UNDERFLOW", state: "BUFFERING_HAVE_NOTHING"}
for_suspended_start: false
reason: "DEMUXER_UNDERFLOW"
state: "BUFFERING_HAVE_NOTHING"

考虑到我们要在播放列表中“合并”的两个视频具有相同的音视频特性(编解码器、码率、分辨率等),为什么这不起作用?谢谢

EN

回答 1

Stack Overflow用户

发布于 2021-03-11 16:36:12

我遇到了类似的问题,并通过以下方式解决了它:

在您的播放列表文件中添加"#EXT-X-DISCONTINUITY-SEQUENCE“,如下所示:

代码语言:javascript
复制
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-DISCONTINUITY-SEQUENCE:0
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-TARGETDURATION:16
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:14.557178,
https://slave2.example.com/hls/output1/output_000.ts
#EXTINF:1.376467,
https://slave3.example.com/hls/output1/output_001.ts
#EXT-X-DISCONTINUITY
#EXTINF:8.050244,
https://slave2.example.com/hls/HLSad/output_000.ts
#EXTINF:4.880200,
https://slave2.example.com/hls/HLSad/output_001.ts

无论您从播放列表文件中删除"#EXT-X-DISCONTINUITY“,请将此字段的值增加1。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61214785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档