• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

.github/H16-Jun-2020-85

applications/H16-Jun-2020-99,28278,417

build/H16-Jun-2020-16,03315,529

debian/H16-Jun-2020-204133

extra_lib/include/H16-Jun-2020-167,04168,479

include/H16-Jun-2020-63,79627,804

modules/H16-Jun-2020-83,07965,638

packagers/H16-Jun-2020-1,8111,644

share/H16-Jun-2020-22,47219,605

src/H16-Jun-2020-645,672533,615

testsuite/H16-Jun-2020-

.gitattributesH A D16-Jun-2020427 2621

.gitignoreH A D16-Jun-2020754 9183

.gitmodulesH A D16-Jun-2020121 65

.travis.ymlH A D16-Jun-20204.8 KiB6155

COPYINGH A D16-Jun-202025.8 KiB505418

ChangelogH A D16-Jun-202060.6 KiB929899

Clean.batH A D16-Jun-20201,010 2415

MakefileH A D16-Jun-202013.8 KiB354298

README.mdH A D16-Jun-20208.5 KiB13085

change_version.shH A D16-Jun-20201.8 KiB5430

check_revision.shH A D03-May-20221,010 3824

configureH A D03-May-202288.7 KiB3,2472,774

generate_installer.batH A D16-Jun-20203.8 KiB10888

gpac.specH A D16-Jun-20202.8 KiB8264

mkdmg.shH A D16-Jun-20204.4 KiB12894

run_configure.shH A D16-Jun-2020742 2214

static.makH A D16-Jun-20204 KiB217165

version.batH A D16-Jun-20201.1 KiB4737

README.md

1[![Build Status](https://tests.gpac.io/testres/badge/build/ubuntu64)](https://buildbot.gpac.io/#/grid?branch=master)
2[![Tests](https://tests.gpac.io/testres/badge/tests/linux64)](https://tests.gpac.io/)
3
4[![Build Status](https://tests.gpac.io/testres/badge/build/ubuntu32)](https://buildbot.gpac.io/#/grid?branch=master)
5[![Tests](https://tests.gpac.io/testres/badge/tests/linux32)](https://tests.gpac.io/)
6
7[![Build Status](https://tests.gpac.io/testres/badge/build/windows64)](https://buildbot.gpac.io/#/grid?branch=master)
8[![Tests](https://tests.gpac.io/testres/badge/tests/win64)](https://tests.gpac.io/)
9
10[![Build Status](https://tests.gpac.io/testres/badge/build/windows32)](https://buildbot.gpac.io/#/grid?branch=master)
11[![Tests](https://tests.gpac.io/testres/badge/tests/win32)](https://tests.gpac.io/)
12
13[![Build Status](https://tests.gpac.io/testres/badge/build/macos)](https://buildbot.gpac.io/#/grid?branch=master)
14[![Tests](https://tests.gpac.io/testres/badge/tests/macos)](https://tests.gpac.io/)
15
16[![Build Status](https://tests.gpac.io/testres/badge/build/ios)](https://buildbot.gpac.io/#/grid?branch=master)
17
18[![Build Status](https://tests.gpac.io/testres/badge/build/android)](https://buildbot.gpac.io/#/grid?branch=master)
19
20[![Coverage](https://tests.gpac.io/testres/badge/cov/linux64?branch=master)](https://tests.gpac.io/testres/)
21[![Coverage](https://tests.gpac.io/testres/badge/covfn/linux64?branch=master)](https://tests.gpac.io/testres/)
22
23![License](https://img.shields.io/badge/license-LGPL-blue.svg)
24
25# GPAC Introduction
26Current version: 1.0.0
27
28GPAC is an open-source multimedia framework focused on modularity and standards compliance.
29GPAC provides tools to process, inspect, package, stream playback and interact with media content. Such content can be any combination of audio, video, subtitles, metadata, scalable graphics, encrypted media, 2D/3D graphics and ECMAScript.
30GPAC is best-known for its wide MP4 capabilities and is popular among video enthusiasts, academic researchers, standardization bodies, and professional broadcasters.
31
32For more information, visit [GPAC website](http://gpac.io)
33
34GPAC is distributed under the LGPL v2.1 or later, and is also available, for most of it, under a [commercial license](https://www.gpac-licensing.com).
35
36# Features
37
38GPAC can process, analyse, package, stream, encode, decode and playback a wide variety of contents. Selected feature list:
39- Audio: MPEG audio (mp1/2/3, aac), AC3, E-AC3, Opus, FLAC, …
40- Video: MPEG 1 / 2 / 4 (H264/AVC) / H (HEVC), AV1, VP9, Theora, ...
41- Subtitles: WebVTT, TTML (full, EBU-TTD, …), 3GPP/Apple Timed Text, …
42- Encryption: CENC, PIFF, ISMA, OMA, ...
43- Containers: MP4/fMP4/CMAF/Quicktime MOV/ProRes MOV, AVI, MPG, OGG, MKV, ...
44- Streaming: MPEG-2 Transport Stream, RTP, RTSP, HTTP, Apple HLS, MPEG-DASH, ATSC 3.0 ROUTE, ...
45- Supported IOs: local files, pipes, UDP/TCP, HTTP(S), custom IO
46- Presentation formats: MPEG-4 BIFS, SVG Tiny 1.2, VRML/X3D
47- JS scripting through QuickJS for both SVG/BIFS/VRML and extending GPAC framework tools
48- 3D support (360 videos, WebGL JS filters…)
49- Inputs: microphone, camera, desktop grabbing
50- Highly configurable media processing pipeline
51
52Features are encapsulated in processing modules called filters:
53- to get the full list of available features, you can run the command line `gpac -h filters` or check [filters' wiki](https://github.com/gpac/gpac/wiki/Filters).
54- to get the full list of playback features, check [our wiki](https://github.com/gpac/gpac/wiki/Player-Features).
55
56
57# Tools
58
59## MP4Box
60MP4Box is a multi-purpose MP4 file manipulation for the prompt, featuring media importing and extracting, file inspection, DASH segmentation, RTP hinting, ... See `MP4Box -h`, `man MP4Box` or [our wiki](https://wiki.gpac.io/MP4Box-Introduction).
61
62
63## gpac
64As of version 0.9.0, GPAC includes a filter engine in charge of stream management and used by most applications in GPAC - [read this post](https://wiki.gpac.io/Rearchitecture) for more dicussion on how this impacts MP4Box and MP4Client.
65The gpac application is a direct interface to the filter engine of GPAC, allowing any combinaison of filters not enabled by other applications. See `gpac -h`, `man gpac`, `man gpac-filters` or [our wiki](https://wiki.gpac.io/Filters) for more details.
66
67## MP4Client
68MP4Client is a media player built upon libgpac, featuring a rich media interactive composition engine with MPEG-4 BIFS, SVG, VRML/X3D support.
69For GPAC configuration instruction, check `MP4Client -h` ,  `man MP4Client` or [our wiki](https://wiki.gpac.io/mp4client).
70
71
72
73# Getting started
74## Download
75Stable and nightly builds installers for Windows, Linux, OSX, Android, iOS are available on [gpac.io](https://gpac.wp.imt.fr/downloads/).
76
77If you want to compile GPAC yourself, please follow the instructions in the [build section](https://wiki.gpac.io/Build-Introduction) of our wiki.
78
79## Documentation
80The general GPAC framework documentation is available on [wiki.gpac.io](https://wiki.gpac.io), including [HowTos](https://github.com/gpac/gpac/wiki/Howtos).
81
82GPAC tools are mostly wrappers around an underlying library called libgpac which can easily be embedded in your projects. The libgpac developer documentation is available at [doxygen.gpac.io](https://doxygen.gpac.io), including documentation of [JS APIs](https://doxygen.gpac.io/group__jsapi__grp.html).
83
84
85## Testing
86GPAC has a test suite exercicing most features of the framework. The test suite is in a separate repository [https://github.com/gpac/testsuite/](https://github.com/gpac/testsuite/), but is available as a submodule of the GPAC main repository. To initialize the testsuite submodule, do `git submodule update --init`.
87
88For more details on the test suite, read [this page](https://github.com/gpac/gpac/wiki/GPAC_tests) and check the [testsuite readme](https://github.com/gpac/testsuite).
89
90Per-commit [build](https://buildbot.gpac.io/) and [tests results](https://tests.gpac.io) are available.
91
92
93## Support
94Please use [github](https://github.com/gpac/gpac/issues) for feature requests and bug reports. When filing a request there, please tag it as _feature-request_.
95
96## Contributing
97A complex project like GPAC wouldn’t exist and persist without the support of its community. Please contribute: a nice message, supporting us in our communication, reporting issues when you see them… any gesture, even the smallest ones, counts.
98
99If you use GPAC in your published research, ! _please cite_ ! using
100- [this paper](https://dl.acm.org/doi/abs/10.1145/3339825.3394929) for recent versions (0.9 or above)
101- [this paper](https://dl.acm.org/doi/abs/10.1145/1291233.1291452) for legacy versions (0.8 or below).
102
103If you want to contribute to GPAC, you can find ideas at [GSoC page](https://gpac.wp.imt.fr/jobs/google-summer-of-code-ideas/) or look for ‘good first issue’ on  [github](https://github.com/gpac/gpac/issues). In any doubt please feel free to [contact us](mailto:contact@gpac.io).
104
105# Team
106GPAC is brought to you by an experienced team of developers with a wide track-record on media processing.
107
108The project is mainly developed at [Telecom Paris](https://www.telecom-paris.fr/), in the [MultiMedia group](http://www.tsi.telecom-paristech.fr/mm/), with the help of many [great contributors](https://github.com/gpac/gpac/graphs/contributors)
109
110GPAC has a peculiar story: started as a startup in NYC, GPAC gained traction from research and a nascent multimedia community as it was open-sourced in 2003. Since then we have never stopped transforming GPAC into a useful and up-to-date project, with many industrial R&D collaborations and a community of tens of thousands of users. This makes GPAC one of the few open-source multimedia projects that gathers so much diversity.
111
112
113# Roadmap
114Users are encouraged to use the latest tag or the master branch.
115
116The previous v0.8.X release (the last one using the legacy architecture) is LTS until 30/06/2021. Important bug fixes will be backported but new features won’t. API compatibility between both versions should make the migration easy. If not please [file a bug](https://github.com/gpac/gpac/issues).
117
118## Ongoing tasks and bugs
119Please use [github](https://github.com/gpac/gpac/issues) for feature requests and bug reports. When filing a request there, please tag it as feature-request.
120
121## V1.1.0
122Targets:
123- [ ] add kvazaar/other encoders support?
124- [ ] improve remotery support
125- [ ] more JS filters
126- [ ] filters scriptable through other languages (python) ?
127- [ ] move input sensors to filter ?
128- [ ] fixed features disabled during rearchitecture or drop them (FILTER_FIXME macro)
129- [ ] move Android client to filters
130