【问题标题】:HLS.js / Wowza / Cloudfront Browser do not download media after Encoder restartHLS.js / Wowza / Cloudfront Browser 在 Encoder 重启后不下载媒体
【发布时间】: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


    【解决方案1】:

    您需要在 Wowza Streaming Engine 应用程序的 Add Custom Property 部分将 cupertinoCalculateChunkIDBasedOnTimecode 属性设置为 true。参考这个:https://www.wowza.com/docs/how-to-configure-apple-hls-packetization-cupertinostreaming

    另外,请注意,这将有助于将同步时间码发送到 Wowza 的编码器。对于不发送同步时间码的编码器,我建议无论编码器是否发送,都实现绝对时间码。这将有助于应用程序在重启后从 N+1 个块号中恢复。

    以下页面将帮助您正确配置它。 http://thewowza.guru/how-to-set-stream-timecodes-to-absolute-time/

    关于 session-id 更改部分,当使用 Wowza 作为 Cloudfront 分发的来源时,您需要启用 httpOriginMode 并禁用 httpRandomizeMediaName 以使其正常工作。下面的 Wowza 文档将帮助您正确设置它,https://www.wowza.com/docs/how-to-configure-a-wowza-server-as-an-http-caching-origin

    【讨论】:

      猜你喜欢
      • 2016-06-04
      • 2012-01-13
      • 2014-07-15
      • 1970-01-01
      • 2021-11-10
      • 2016-08-18
      • 2014-06-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多