Java,提供HLS直播视频流

mom*_*omo 2 java ffmpeg red5 video-streaming wowza

我知道这个主题并不容易,但我正在寻找一个 Java 类来将 HLS 流从服务器发送到客户端。

我生成的文件越来越大:

out.m3u8
out0.ts
out1.ts
out2.ts
out3.ts
out4.ts
out5.ts
out6.ts
Run Code Online (Sandbox Code Playgroud)

这是使用 ffmpeg 从原始来源生成的:

ffmpeg -i http://sourceurl.com:9981/stream/channel/1232131 out.m3u8
Run Code Online (Sandbox Code Playgroud)

我可以使用 VLC 播放它。

不知何故,我需要将其直播给客户。

在这一点上,我并不真正关心不同的比特率,我只想在移动浏览器和桌面浏览器上进行实时流传输。

我找到了这个类:

https://github.com/Red5/red5-hls-plugin/blob/master/plugin/src/main/java/org/red5/stream/http/servlet/PlayList.java
Run Code Online (Sandbox Code Playgroud)

这可能会做类似的事情。

我已将 hls.js 引入我的应用程序,希望将其用于桌面。

不过,HLS 现在应该可以在没有 hls.js 的情况下运行 IOS 设备。

应如何从服务器提供 HLS 内容?很难找到任何好的、简单的例子来做到这一点。

有人知道做到这一点所需的步骤吗?

我对 Wowza 和 Red5 进行了一些研究,但不确定他们在这个阶段可以为我提供什么,并且仅仅为了提供一些文件而设置似乎过于复杂。但请向我解释为什么情况并非如此。

sza*_*ary 5

HLS 中的 H 代表 HTTP。HLS DASH HDS平滑流媒体等流媒体技术的要点是不需要特殊的服务器。只是简单的 HTTP。您可以使用 nginx 之类的东西,或者任何可用于 Java 或任何其他语言的 HTTP 服务器类/库。

  • 你们让我很开心。我在 twitch.tv 开发 HLS 系统。2015 年,我们使用 HLS 通过标准 HTTP 交付了 241,441,823,059 分钟的直播视频。所以,是的,我可以明确地说标准 HTTP 服务器确实可以做到这一点。 (5认同)
  • 您不对这些文件执行任何操作。只是接待他们。通过 http 发布 m3u8 文件的链接。播放器将执行 http 获取并根据需要提取文件。 (2认同)