Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lieff/minimp4
Minimalistic MP4 mux/demux single header library
https://github.com/lieff/minimp4
demux demuxing mp4 mux muxing single-header-lib
Last synced: 5 days ago
JSON representation
Minimalistic MP4 mux/demux single header library
- Host: GitHub
- URL: https://github.com/lieff/minimp4
- Owner: lieff
- License: cc0-1.0
- Created: 2018-09-24T16:14:44.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-03-05T21:36:41.000Z (10 months ago)
- Last Synced: 2024-12-30T05:19:42.211Z (12 days ago)
- Topics: demux, demuxing, mp4, mux, muxing, single-header-lib
- Language: C
- Homepage:
- Size: 980 KB
- Stars: 351
- Watchers: 25
- Forks: 58
- Open Issues: 22
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- AwesomeCppGameDev - minimp4
README
Mini MP4
==========[![Build Status](https://travis-ci.org/lieff/minimp4.svg)](https://travis-ci.org/lieff/minimp4)
Easy embeddable MP4 mux/demux library.
## Usage
#### MuxingMuxing can be done using 3 modes.
Default mode uses one big mdat chunk:![default](images/mux_mode_default.png?raw=true)
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](images/mux_mode_sequential.png?raw=true)
This mode do not make any backwards seek.
And last mode is fragmented aka fMP4.![default](images/mux_mode_fragmented.png?raw=true)
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
* https://github.com/darkskygit/minimp4.rs - rust bindings
## Interesting links
* https://github.com/aspt/mp4
* https://github.com/l30nnguyen/minimum_mp4_muxer
* https://github.com/DolbyLaboratories/dlb_mp4demux
* https://github.com/DolbyLaboratories/dlb_mp4base
* https://github.com/ireader/media-server/tree/master/libmov
* https://github.com/wlanjie/mp4
* https://github.com/MPEGGroup/isobmff
* http://www.itscj.ipsj.or.jp/sc29/open/29view/29n7644t.doc
* http://atomicparsley.sourceforge.net/mpeg-4files.html
* http://cpansearch.perl.org/src/JHAR/MP4-Info-1.12/Info.pm
* https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFPreface/qtffPreface.html
* http://xhelmboyx.tripod.com/formats/mp4-layout.txt