• Home
Name Date Size #Lines LOC

..--

images/12-May-2024-

scripts/12-May-2024-9173

vectors/12-May-2024-

.gitignoreD12-May-202454 77

.travis.ymlD12-May-2024643 3329

BUILD.gnD12-May-20242.3 KiB9080

LICENSED12-May-20246.4 KiB11896

OAT.xmlD12-May-202414.8 KiB207137

README.OpenSourceD12-May-2024379 1211

README.mdD12-May-20241.6 KiB4833

minimp4.cD12-May-2024104 44

minimp4.hD12-May-2024125.1 KiB3,5032,632

minimp4_test.cD12-May-202412 KiB368337

README.OpenSource

1[
2    {
3        "Name": "minimp4",
4        "License": "Creative Commons Zero v1.0 Universal",
5        "License File": "LICENSE",
6        "Version Number": "1.0.0",
7        "Owner": "lijianpeng7@huawei.com",
8        "Upstream URL": "https://github.com/JianpengLi1993/minimp4/releases/tag/v1.0.0",
9        "Description": "Minimalistic MP4 mux/demux single header library."
10    }
11]
12

README.md

1Mini MP4
2==========
3
4[![Build Status](https://travis-ci.org/lieff/minimp4.svg)](https://travis-ci.org/lieff/minimp4)
5
6Easy embeddable MP4 mux/demux library.
7
8## Usage
9#### Muxing
10
11Muxing can be done using 3 modes.
12Default mode uses one big mdat chunk:
13
14![default](images/mux_mode_default.png?raw=true)
15
16This is most efficient mode, but disadvantage is that we need go back and patch mdat chunk size.
17This can be a problem in some cases, for example if stream transfered over network.
18To workaround this sequential mode is used:
19
20![default](images/mux_mode_sequential.png?raw=true)
21
22This mode do not make any backwards seek.
23And last mode is fragmented aka fMP4.
24
25![default](images/mux_mode_fragmented.png?raw=true)
26
27This mode stores track information first and spreads indexes across all stream, so decoding can start before whole stream available.
28This mode is sequential too and usually used by browsers and HLS streaming.
29
30## Bindings
31
32 * https://github.com/darkskygit/minimp4.rs - rust bindings
33
34## Interesting links
35
36 * https://github.com/aspt/mp4
37 * https://github.com/l30nnguyen/minimum_mp4_muxer
38 * https://github.com/DolbyLaboratories/dlb_mp4demux
39 * https://github.com/DolbyLaboratories/dlb_mp4base
40 * https://github.com/ireader/media-server/tree/master/libmov
41 * https://github.com/wlanjie/mp4
42 * https://github.com/MPEGGroup/isobmff
43 * http://www.itscj.ipsj.or.jp/sc29/open/29view/29n7644t.doc
44 * http://atomicparsley.sourceforge.net/mpeg-4files.html
45 * http://cpansearch.perl.org/src/JHAR/MP4-Info-1.12/Info.pm
46 * https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFPreface/qtffPreface.html
47 * http://xhelmboyx.tripod.com/formats/mp4-layout.txt
48