{"id":13523616,"url":"https://github.com/gpac/gpac","last_synced_at":"2025-05-13T21:10:28.878Z","repository":{"id":16646299,"uuid":"19401646","full_name":"gpac/gpac","owner":"gpac","description":"GPAC Ultramedia OSS for Video Streaming \u0026 Next-Gen Multimedia Transcoding, Packaging \u0026 Delivery","archived":false,"fork":false,"pushed_at":"2025-05-13T07:35:57.000Z","size":150991,"stargazers_count":2990,"open_issues_count":59,"forks_count":552,"subscribers_count":105,"default_branch":"master","last_synced_at":"2025-05-13T08:40:16.580Z","etag":null,"topics":["atsc3","broadcast","cenc","gpac","graphics","hls","low-latency-hls","mov","mp4","mp4box","mpeg-dash","mpeg-ts","prores","streaming","tiling","vr"],"latest_commit_sha":null,"homepage":"https://gpac.io","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gpac.png","metadata":{"files":{"readme":"README.md","changelog":"Changelog","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2014-05-03T11:29:57.000Z","updated_at":"2025-05-09T22:08:10.000Z","dependencies_parsed_at":"2023-09-27T17:16:54.260Z","dependency_job_id":"f8cf8995-5bad-41d7-b495-9f106ef5b29d","html_url":"https://github.com/gpac/gpac","commit_stats":null,"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gpac%2Fgpac","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gpac%2Fgpac/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gpac%2Fgpac/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gpac%2Fgpac/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gpac","download_url":"https://codeload.github.com/gpac/gpac/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254029002,"owners_count":22002283,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["atsc3","broadcast","cenc","gpac","graphics","hls","low-latency-hls","mov","mp4","mp4box","mpeg-dash","mpeg-ts","prores","streaming","tiling","vr"],"created_at":"2024-08-01T06:01:01.878Z","updated_at":"2025-05-13T21:10:23.866Z","avatar_url":"https://github.com/gpac.png","language":"C","funding_links":[],"categories":["C","HarmonyOS","Encoding \u0026 Codecs","Container Formats and Muxing"],"sub_categories":["Windows Manager","Multi-format Packaging Tools"],"readme":"[![Build Status](https://tests.gpac.io/testres/badge/build/ubuntu64)](https://buildbot.gpac.io/#/grid?branch=master)\n[![Tests](https://tests.gpac.io/testres/badge/tests/linux64)](https://tests.gpac.io/)\n\n[![Build Status](https://tests.gpac.io/testres/badge/build/debian32)](https://buildbot.gpac.io/#/grid?branch=master)\n[![Tests](https://tests.gpac.io/testres/badge/tests/linux32)](https://tests.gpac.io/)\n\n[![Build Status](https://tests.gpac.io/testres/badge/build/windows64)](https://buildbot.gpac.io/#/grid?branch=master)\n[![Tests](https://tests.gpac.io/testres/badge/tests/win64)](https://tests.gpac.io/)\n\n[![Build Status](https://tests.gpac.io/testres/badge/build/windows32)](https://buildbot.gpac.io/#/grid?branch=master)\n[![Tests](https://tests.gpac.io/testres/badge/tests/win32)](https://tests.gpac.io/)\n\n[![Build Status](https://tests.gpac.io/testres/badge/build/macos)](https://buildbot.gpac.io/#/grid?branch=master)\n[![Tests](https://tests.gpac.io/testres/badge/tests/macos)](https://tests.gpac.io/)\n\n[![Build Status](https://tests.gpac.io/testres/badge/build/ios)](https://buildbot.gpac.io/#/grid?branch=master)\n[![Build Status](https://tests.gpac.io/testres/badge/build/android)](https://buildbot.gpac.io/#/grid?branch=master)\n\n[![Coverage](https://tests.gpac.io/testres/badge/cov/linux64?branch=master)](https://tests.gpac.io/testres/)\n[![Coverage](https://tests.gpac.io/testres/badge/covfn/linux64?branch=master)](https://tests.gpac.io/testres/)\n\n![License](https://img.shields.io/badge/license-LGPL-blue.svg)\n[![OpenHub](https://www.openhub.net/p/gpac/widgets/project_thin_badge.gif)](https://www.openhub.net/p/gpac)\n\n\n# GPAC Introduction\n\nCurrent version: 2.5-DEV\n\nLatest Release: 2.4\n\nGPAC is an open-source multimedia framework focused on modularity and standards compliance.\nGPAC 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.\nGPAC is best-known for its wide MP4/ISOBMFF capabilities and is popular among video enthusiasts, academic researchers, standardization bodies, and professional broadcasters.\n\nFor more information, visit [https://gpac.io](https://gpac.io)\n\nGPAC is distributed under the LGPL v2.1 or later, and is also available, for most of it, under a [commercial license](https://www.motionspell.com/gpac-licensing).\n\nPlease ! _cite_ ! our work in your research:\n- \"GPAC Filters\" (https://doi.org/10.1145/3339825.3394929) for recent versions (0.9 or above) \n- \"GPAC: open source multimedia framework\" (https://doi.org/10.1145/1291233.1291452) for older versions.\n\n\n# Features\n\nGPAC can process, analyse, package, stream, encode, decode and playback a wide variety of contents. Selected feature list:\n- Audio: MPEG audio (mp1/2/3, aac), AC3, E-AC3, Opus, FLAC, …\n- Video: MPEG 1 / 2 / 4 (H264/AVC) / H (HEVC), VVC, AV1, VP9, Theora, ...\n- Subtitles: WebVTT, TTML (full, EBU-TTD, …), 3GPP/Apple Timed Text, …\n- Encryption: CENC, PIFF, ISMA, OMA, ...\n- Containers: MP4/fMP4/CMAF/Quicktime MOV/ProRes MOV, AVI, MPG, OGG, MKV, ...\n- Streaming: MPEG-2 Transport Stream, RTP, RTSP, HTTP, Apple HLS, MPEG-DASH, ATSC 3.0 ROUTE, ...\n- Supported IOs: local files, pipes, UDP/TCP, HTTP(S), custom IO\n- Presentation formats: MPEG-4 BIFS, SVG Tiny 1.2, VRML/X3D\n- JS scripting through QuickJS for both SVG/BIFS/VRML and extending GPAC framework tools\n- 3D support (360 videos, WebGL JS filters…)\n- Inputs: microphone, camera, desktop grabbing\n- Highly configurable media processing pipeline\n- Python and NodeJS bindings\n\nFeatures are encapsulated in processing modules called filters:\n- to get the full list of available features, you can run the command line `gpac -h filters` or check [filters' wiki](https://wiki.gpac.io/Filters/Filters).\n- to get the full list of playback features, check [the dedicated wiki page](https://wiki.gpac.io/Player/Player).\n\n\n# Tools\n\n## MP4Box\nMP4Box 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/MP4Box).\n\n\n## gpac \nGPAC includes a filter engine in charge of stream management and used by most applications in GPAC - [read this post](https://wiki.gpac.io/Filters/Rearchitecture) for more discussion on how this impacts MP4Box.\nThe gpac application is a direct interface to the filter engine of GPAC, allowing any combination of filters not enabled by other applications. See `gpac -h`, `man gpac`, `man gpac-filters` or [our wiki](https://wiki.gpac.io/Filters/Filters) for more details.\n\n# Getting started\n## Download\nStable and nightly builds installers for Windows, Linux, OSX, Android, iOS are available on [gpac.io](https://gpac.io/downloads/).\n\nIf you want to compile GPAC yourself, please follow the instructions in the [build section](https://wiki.gpac.io/Build/Build-Introduction) of our wiki.\n\n## Documentation\nThe general GPAC framework documentation is available on [wiki.gpac.io](https://wiki.gpac.io), including [HowTos](https://wiki.gpac.io/Howtos/howtos/).\n\nGPAC 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), [Python APIs](https://doxygen.gpac.io/group__pyapi__grp.html) and [NodeJS APIs](https://doxygen.gpac.io/group__nodejs__grp.html).\n\n\n## Testing\nGPAC has a test suite exercising 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`.\n\nFor more details on the test suite, read [this page](https://wiki.gpac.io/Build/tests/GPAC_tests/) and check the [testsuite readme](https://github.com/gpac/testsuite).\n\nPer-commit [build](https://buildbot.gpac.io/) and [tests results](https://tests.gpac.io) are available.\n\n\n## Support, ongoing tasks and bugs\n\nPlease 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_.\t\n\n## Contributing\nA 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. \n\nIf you want to contribute to GPAC, you can find ideas at [GSoC page](https://gpac.io/jobs/google-summer-of-code-ideas/) or look for a [good first issue](https://github.com/gpac/gpac/labels/good%20first%20issue). In any doubt please feel free to [contact us](mailto:contact@gpac.io).\n\n# Team\nGPAC is brought to you by an experienced team of developers with a wide track-record on media processing. \n\nThe project is mainly developed in the MultiMedia group of [Telecom Paris](https://www.telecom-paris.fr/) with the help of many [great contributors](https://github.com/gpac/gpac/graphs/contributors).\n\nGPAC 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\u0026D 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.\n\n\n# Roadmap\nUsers are encouraged to use the latest tag or the master branch.\n\n## V2.X\nTargets:\n- [ ] DASH event support\n- [ ] Web GUI\n- [ ] QUIC support\n- [ ] ROUTE file repair support\n- [ ] FLUTE support\n- [ ] Rust Bindings\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgpac%2Fgpac","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgpac%2Fgpac","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgpac%2Fgpac/lists"}