ISOMedia.HLS (ISOMedia v0.2.0)

Copy Markdown View Source

Generate HLS (.m3u8) playlists for the CMAF segments ISOMedia.split_segments/1 produces — a media playlist (segment list) and a multivariant (master) playlist (codecs/resolution/bandwidth), for a single muxed VOD rendition. Pure string templating over FragmentIndex.fragment_spans/1 + ISOMedia.Manifest; URIs match write_segments.

Summary

Functions

The HLS multivariant (master) playlist (.m3u8) for a fragmented tree.

The HLS media playlist (.m3u8) for a fragmented tree.

Write the HLS bundle into dir (created if absent): master.m3u8, the media playlist (opts[:media_uri], default media.m3u8), and — via ISOMedia.write_segments/3init.mp4

Functions

master_playlist(boxes, opts \\ [])

@spec master_playlist(
  [ISOMedia.Box.t()],
  keyword()
) :: String.t()

The HLS multivariant (master) playlist (.m3u8) for a fragmented tree.

media_playlist(boxes, opts \\ [])

@spec media_playlist(
  [ISOMedia.Box.t()],
  keyword()
) :: String.t()

The HLS media playlist (.m3u8) for a fragmented tree.

write_hls(dir, boxes, opts \\ [])

@spec write_hls(Path.t(), [ISOMedia.Box.t()], keyword()) :: {:ok, [Path.t()]}

Write the HLS bundle into dir (created if absent): master.m3u8, the media playlist (opts[:media_uri], default media.m3u8), and — via ISOMedia.write_segments/3init.mp4

  • seg-N.m4s. Returns {:ok, [master, media | segment_paths]}.