Skip to content
jeanlf edited this page Nov 28, 2019 · 9 revisions

HOME » Filters » MPEG-DASH and HLS client

MPEG-DASH and HLS client

Register name used to load filter: dashin

This filter reads MPEG-DASH, HLS and MS Smooth (on demand only for now) manifests and produces media PIDs and frames.


auto_switch (unsigned int, default: 0): switch quality every N segments, disabled if 0
store (enum, default: mem): enable file caching

  • mem: all files are stored in memory, no disk IO
  • file: files are stored to disk but discarded once played
  • cache: all files are stored to disk and kept

algo (enum, default: gbuf): adaptation algorithm to use

  • none: no adaptation logic
  • grate: GAPC legacy algo based on available rate
  • gbuf: GAPC legacy algo based on buffer occupancy
  • bba0: BBA-0
  • bolaf: BOLA Finite
  • bolab: BOLA Basic
  • bolau: BOLA-U
  • bolao: BOLA-O

start_with (enum, default: max_bw): initial selection criteria

  • min_q: start with lowest quality
  • max_q: start with highest quality
  • min_bw: start with lowest bitrate
  • max_bw: start with highest bitrate; for tiles are used, all low priority tiles will have the lower (below max) bandwidth selected
  • max_bw_tiles: start with highest bitrate; for tiles all low priority tiles will have their lowest bandwidth selected

max_res (boolean, default: true): use max media resolution to configure display
immediate (boolean, default: false): when interactive switching is requested and immediate is set, the buffer segments are trashed
abort (boolean, default: false): allow abort during a segment download
use_bmin (boolean, default: false): use the indicated min buffer time of the MPD if true, otherwise uses default player settings
shift_utc (int, default: 0): shift DASH UTC clock
atsc_shift (int, default: 0): shift ATSC requests time by given ms
server_utc (boolean, default: yes): use ServerUTC: or Date: http headers instead of local UTC
screen_res (boolean, default: yes): use screen resolution in selection phase
timeshift (unsigned int, default: 0): set initial timshift in ms (if >0) or in %% of timeshift buffer (if <0)
tile_mode (enum, default: none): tile adaptation mode

  • none: bitrate is shared equaly accross all tiles
  • rows: bitrate decreases for each row of tiles starting from the top, same rate for each tile on the row
  • rrows: bitrate decreases for each row of tiles starting from the bottom, same rate for each tile on the row
  • mrows: bitrate decreased for top and bottom rows only, same rate for each tile on the row
  • cols: bitrate decreases for each columns of tiles starting from the left, same rate for each tile on the columns
  • rcols: bitrate decreases for each columns of tiles starting from the right, same rate for each tile on the columns
  • mcols: bitrate decreased for left and right columns only, same rate for each tile on the columns
  • center: bitrate decreased for all tiles on the edge of the picture
  • edges: bitrate decreased for all tiles on the center of the picture

tiles_rate (unsigned int, default: 100): indicate the amount of bandwidth to use at each quality level. The rate is recursively applied at each level, e.g. if 50%, Level1 gets 50%, level2 gets 25%, ... If 100, automatic rate allocation will be done by maximizing the quality in order of priority. If 0, bitstream will not be smoothed across tiles/qualities, and concurrency may happen between different media.
delay40X (unsigned int, default: 500): delay in millisconds to wait between two 40X on the same segment
exp_threshold (unsigned int, default: 100): delay in millisconds to wait after the segment AvailabilityEndDate before considering the segment lost
switch_count (unsigned int, default: 1): indicate how many segments the client shall wait before switching up bandwidth. If 0, switch will happen as soon as the bandwidth is enough, but this is more prone to network variations
aggressive (boolean, default: no): if enabled, switching algo targets the closest bandwidth fitting the available download rate. If no, switching algo targets the lowest bitrate representation that is above the currently played (eg does not try to switch to max bandwidth)
debug_as (unsigned int, default: -1): play only the adaptation set indicated by its index in the MPD; if negative, all sets are used
speedadapt (boolean, default: no): enable adaptation based on playback speed
noxlink (boolean, default: no): disable xlink if period has both xlink and adaptation sets
query (string): set query string (without initial '?') to append to xlink of periods
split_as (boolean, default: no): seperate all qualities into different adaptation sets and stream all qualities

HOME » Filters

GPAC Configuration

Configuration File
Global Options

Filters Overview

General Filters Concepts
gpac General Usage
Built-in Properties

Filters Help

Inspect packets (inspect)
Probe source (probe)
Compositor (compositor)
ISOBMFF/QT demuxer (mp4dmx)
MPEG-4 BIFS decoder (bifsdec)
MPEG-4 OD decoder (odfdec)
File input (fin)
BT/XMT/X3D loader (btplay)
HTTP input (httpin)
SVG loader (svgplay)
JPG/J2K/PNG/BMP reframer (rfimg)
PNG/JPG decoder (imgdec)
ADTS reframer (rfadts)
LATM reframer (rflatm)
MP3 reframer (rfmp3)
FAAD decoder (faad)
MAD decoder (maddec)
XVid decoder (xviddec)
OpenJPEG2000 decoder (j2kdec)
AC3 reframer (rfac3)
A52 decoder (a52dec)
AMR/EVRC reframer (rfamr)
OGG demuxer (oggdmx)
Vorbis decoder (vorbisdec)
Theora decoder (theoradec)
MPEG-2 TS demuxer (m2tsdmx)
UDP/TCP input (sockin)
OpenSVC decoder (osvcdec)
VideoToolBox decoder (vtbdec)
MPEG-4 LASeR decoder (lsrdec)
SAF demuxer (safdmx)
MPEG-DASH and HLS client (dashin)
CENC decryptor (cdcrypt)
CENC encryptor (cecrypt)
ISOBMFF/QT muxer (mp4mx)
QCP reframer (rfqcp)
H263 reframer (rfh263)
M1V/M2V/M4V reframer (rfmpgvid)
NHNT reader (nhntr)
NHML parser (nhmlr)
AVC/HEVC reframer (rfnalu)
MPEG PS demuxer (m2psdmx)
AVI demuxer (avidmx)
Subtitle loader (txtin)
TTXT/TX3G decoder (ttxtdec)
WebVTT decoder (vttdec)
RTP/RTSP/SDP input (rtpin)
File output (fout)
Raw AAC to LATM writer (uflatm)
ADTS writer (ufadts)
Media Reframer (reframer)
Stream to file (writegen)
AVC/HEVC to AnnexB writer (ufnalu)
QCP writer (writeqcp)
WebVTT writer (writevtt)
NHNT writer (nhntw)
NHML writer (nhmlw)
VobSub demuxer (vobsubdmx)
AVI muxer (avimx)
Audio output (aout)
M4V writer (ufm4v)
Audio resampler (resample)
Video output (vout)
Video crop (vcrop)
Video flip (vflip)
RAW video reframer (rfrawvid)
PCM reframer (rfpcm)
JPG encoder (jpgenc)
PNG encoder (pngenc)
Audio/Video rewinder (rewind)
Sources concatenator (flist)
MPEG-2 TS muxer (m2tsmx)
DASH and HLS segmenter (dasher)
HEVC tile aggregator (tileagg)
pipe input (pin)
pipe output (pout)
GSF Muxer (gsfmx)
GSF Demuxer (gsfdmx)
UDP/TCP output (sockout)
AV1/IVF/VP9 reframer (rfav1)
IVF/OBU/annexB writer (ufobu)
ATSC input (atscin)
RTP Streamer (rtpout)
RTSP Server (rtspout)
HTTP Server (httpout)
HEVC tile spliter (hevcsplit)
HEVC Tile merger (hevcmerge)
FLAC reframer (rfflac)
ProRes reframer (rfprores)
MPEG Transport Stream splitter (tssplit)
FFMPEG demuxer (ffdmx)
FFMPEG decoder (ffdec)
FFMPEG AV Capture (ffavin)
FFMPEG video rescaler (ffsws)
FFMPEG encoder (ffenc)
FFMPEG muxer (ffmx)
FFMPEG AVFilter (ffavf)
JavaScript filter (jsf)
OpenHEVC decoder (ohevcdec)

Clone this wiki locally
You can’t perform that action at this time.