【发布时间】:2020-08-08 16:15:07
【问题描述】:
我的工作流程是:
- 我使用 ffmpeg 将 RTMP 流发送到 WOWZA App1。
- App1 将流发送到内部的第二个应用程序 (App2)。
- App2 转码和打包到 hls,是 Cloudfront 分发的来源。
- Cloudfront 为用户提供流。
- 用户端播放器基于 HLS.js。
为了准备不同的场景,我在测试传输期间强制 App2 重新启动,在这种情况下,App1 仍在从 ffmpeg 接收流并尝试将其发送到 App2,在 app2 准备好后,此链接再次建立,App1 继续发送流到 App2,但客户端没有视频。
- 在重新启动之前,
chunklist.m3u8列出了许多块直到 17 号:media-u3510ez40_17.ts - 然后,当 App2 重新启动时,chunklist.m3u8 不存在并且云端发送 404 错误。
- 然后,当 App2 返回时,chunklist.m3u8 会列出一个从 1 开始的具有新 ID 的新块列表:
media-u1ofkjj9w_1.ts
问题是没有视频和网络流量显示浏览器没有下载新列出的块。
chunklist.m3u8 不断添加新块,但浏览器不会下载任何这些...直到出现第 18 个块...并且视频重新启动。
我试了很多次,问题都是一样的,重启前最后一个chunk有一个数字N,重启后没有视频,直到到达N+1 Chunk,但是id不一样。
我不知道这个问题是出现在 Wowza、Cloudfront 还是 HLS.js 播放器上:/
chunklist.m3u8重启前:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:9
#EXT-X-MEDIA-SEQUENCE:1
#EXT-X-DISCONTINUITY-SEQUENCE:0
#EXTINF:8.333,
media-u3510ez40_1.ts
#EXTINF:8.333,
media-u3510ez40_2.ts
#EXTINF:8.334,
.
.
.
media-u3510ez40_16.ts
#EXTINF:8.333,
media-u3510ez40_17.ts
chunklist.m3u8重启后:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:17
#EXT-X-MEDIA-SEQUENCE:1
#EXT-X-DISCONTINUITY-SEQUENCE:0
#EXTINF:16.396,
media-u1ofkjj9w_1.ts
#EXTINF:8.333,
media-u1ofkjj9w_2.ts
.
.
.
media-u1ofkjj9w_16.ts
#EXTINF:8.333,
media-u1ofkjj9w_17.ts
#EXTINF:8.333,
media-u1ofkjj9w_18.ts
【问题讨论】:
标签: amazon-cloudfront http-live-streaming wowza hls.js