Skip to content

sout: hls: implement segmented subtitles

Alaric Senat requested to merge asenat/vlc:hls-vtt into master

Context

The segmented webVTT support is introduced to the HLS module for subtitle support in the upcoming Chromecast module rework. For a more detailed context about HLS and Chromecast, please refer to #27391.

MR content

WebVTT and plain subtitle tracks can now be exposed in HLS. An extra media rendition is created for each subtitle ES and the HLS server creates max-sized vtt segments following the pace of the other ES.

The VTT segments are created via a meta-muxer, the hls_sub_segmenter. It handles subtitle frames splitting, re-creation of the subtitles muxer and empty segments creation when no data is available.

Some rework needed to be done first, especially the segmentation that was previously done in SetPCR. It was moved to the access output, see the related commit for explanations.

What's next ?

  • Best effort algorithm to always start segments with a key-frame
  • Fragmented MP4 support (Necessary for Chromecast HEVC support...)
  • Expand codec support (HEVC,VP9/8)

Merge request reports