hls

command
v0.7.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 14, 2026 License: Apache-2.0 Imports: 8 Imported by: 0

README

hls —— 用 pkg/hls 起一个直播 origin

演示 pkg/hls:把一路 HLS 流挂在 webserver 上分发,后台每 2s 喂一个 合成分片(占位字节,非真实 TS——本示例只演示 origin 的「播放列表 + 分片分发」,不碰编解码)。

运行

go run ./examples/hls

另开终端:

curl -s localhost:8090/live/index.m3u8   # 滚动 media playlist(窗口 5)
curl -s localhost:8090/live/seg0.ts      # 拉某个分片(占位数据)

播放列表长这样(直播中,EVENT 类型,无 ENDLIST):

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:2
#EXT-X-MEDIA-SEQUENCE:3
#EXT-X-PLAYLIST-TYPE:EVENT
#EXTINF:2.000,
seg3.ts
#EXTINF:2.000,
seg4.ts
...

真实管道怎么接

本示例的分片是假的。真实场景:

推流端(OBS/ffmpeg) ──RTMP──▶ pkg/media/rtmp 采集 ──remux──▶ pkg/hls.Append ──HTTP──▶ 播放端
                              (或直接 ffmpeg 切片喂 Append)
  • 采集:见 pkg/media/rtmp(接 OBS/ffmpeg 推流,拿到 FLV 音视频)。
  • remux(FLV→TS/fMP4 分片,不转码):目前需自行接入(astits / gohlslib 等),是把两端 串成端到端直播的最后一环。
  • 分发:pkg/hls(本示例)。

Documentation

Overview

hls demo:用 pkg/hls 起一个直播 origin,挂在 webserver 上,后台每 2s 喂一个 合成分片(内容是占位字节,非真实 TS——本示例只演示 origin 的播放列表/分片分发, 不涉及编解码)。

运行:

go run ./examples/hls
# 另开一个终端:
curl -s localhost:8090/live/index.m3u8      # 看滚动播放列表
curl -s localhost:8090/live/seg0.ts         # 拉某个分片(占位数据)

真实场景里,分片由 ffmpeg 或 pkg/media/rtmp 采集后的 remux 产出,再 Append 进来。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL