我想使用 Gstreamer 执行 HLS(HTTP Live Streaming)

I want to perform HLS (HTTP Live Streaming) using Gstreamer

我想将网络摄像头视频流式传输到 http 网页。我知道如何从网络摄像头读取并将其存档到文件。

但是如何通过网络流式传输。它的管道是什么?

使用 gst-plugins-bad 中的 hlssink 元素:

gst-launch-1.0 videotestsrc is-live=true ! x264enc ! mpegtsmux ! hlssink

它将生成播放列表和片段文件。您需要提供对这些文件的 HTTP 访问,您可以使用任何网络服务器,例如 nginxApache

您可以调整 hlssink 的参数以指定目标位置、段数等。所有选项都可以列出:

gst-inspect-1.0 hlssink

如果您需要更好的 low-level 控制,您最好使用 libsoup 创建自己的 Web 服务器,手动将 MPEG-TS 分成多个段并添加您的自己的播放列表端点。