Name | Date | Size | #Lines | LOC | ||
---|---|---|---|---|---|---|
.. | - | - | ||||
images/ | 12-May-2024 | - | ||||
scripts/ | 12-May-2024 | - | 91 | 73 | ||
vectors/ | 12-May-2024 | - | ||||
.gitignore | D | 12-May-2024 | 54 | 7 | 7 | |
.travis.yml | D | 12-May-2024 | 643 | 33 | 29 | |
BUILD.gn | D | 12-May-2024 | 2.3 KiB | 90 | 80 | |
LICENSE | D | 12-May-2024 | 6.4 KiB | 118 | 96 | |
OAT.xml | D | 12-May-2024 | 14.8 KiB | 207 | 137 | |
README.OpenSource | D | 12-May-2024 | 379 | 12 | 11 | |
README.md | D | 12-May-2024 | 1.6 KiB | 48 | 33 | |
minimp4.c | D | 12-May-2024 | 104 | 4 | 4 | |
minimp4.h | D | 12-May-2024 | 125.1 KiB | 3,503 | 2,632 | |
minimp4_test.c | D | 12-May-2024 | 12 KiB | 368 | 337 |
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