lieff/minimp4

Minimalistic MP4 mux/demux single header library

435

stars

65

commits

C

primary language

Jul 27, 2026

updated

demux
demuxing
mp4
mux
muxing
single-header-lib

README

Mini MP4

Build Status

Easy embeddable MP4 mux/demux library.

Usage

Muxing

Muxing can be done using 3 modes. Default mode uses one big mdat chunk:

default

This is most efficient mode, but disadvantage is that we need go back and patch mdat chunk size. This can be a problem in some cases, for example if stream transfered over network. To workaround this sequential mode is used:

default

This mode do not make any backwards seek. And last mode is fragmented aka fMP4.

default

This mode stores track information first and spreads indexes across all stream, so decoding can start before whole stream available. This mode is sequential too and usually used by browsers and HLS streaming.

Bindings

Contributors

lieff

53 commits

claytercek

6 commits

pmrochen

2 commits

leo-cydar

1 commits

lieff/minimp4

Minimalistic MP4 mux/demux single header library

435

stars

65

commits

C

primary language

Jul 27, 2026

updated

demux
demuxing
mp4
mux
muxing
single-header-lib

README

Mini MP4

Build Status

Easy embeddable MP4 mux/demux library.

Usage

Muxing

Muxing can be done using 3 modes. Default mode uses one big mdat chunk:

default

This is most efficient mode, but disadvantage is that we need go back and patch mdat chunk size. This can be a problem in some cases, for example if stream transfered over network. To workaround this sequential mode is used:

default

This mode do not make any backwards seek. And last mode is fragmented aka fMP4.

default

This mode stores track information first and spreads indexes across all stream, so decoding can start before whole stream available. This mode is sequential too and usually used by browsers and HLS streaming.

Bindings

Contributors

lieff

53 commits

claytercek

6 commits

pmrochen

2 commits

leo-cydar

1 commits

Languages

C

98.7%

Shell

1.3%