One of the target platform for GPAC is Windows. Developing for Windows in a comfortable manner requires Visual Studio, in particular for debugging. Microsoft recently announced great changes that will make Visual Studio users (including the GPAC developers) happy:
Edit: update from Microsoft on 2015/11/18.
Setup for local debugging
- Install Visual Studio 2015. Install the “Tools for Visual C++ Mobile Development” in a sub-menu (disabled by default).
- Install gdb/gdbserver. Use MinGW-w64 binaries and put them in your PATH (you can rely on the excellent MSYS2 for a full development environment).
/!\ Legacy MinGW and Cygwin gdb binaries are known to fail /!\
- Use your usual build system and gcc or clang compiler. Don’t forget to enable debugging!
That’s all! Once Debug.GDBLaunch is attached your program will run. Breakpoints are effective. And you can enjoy the Visual Studio debugging experience:
Setup for remote debugging
This is an extension of the gdbserver we used above. It allows to debug mobile (android/iOS) or any platform (linux, …) executables from a remote
For specific remote parameters, see:
For the last few years, the GPAC tools backed demos at the French Tennis Open (Roland Garros) in its demo corner called RG Labs. This year, through the H2B2VS project, we participated in a demonstration showing the use of Hybrid Broadcast Broadband delivery for Ultra HD video content.
The video was encoded using the SHVC format with two layers. The encoder was MPEG reference software. The base HEVC layer, corresponding to HD content, was delivered using MPEG-2 TS, produced by our MP42TS tool. The enhancement layer, enhancing the spatial resolution to UHD, was delivered using MPEG-DASH generated by MP4Box. Both streams were synchronized based on the recent MPEG-2 TS TEMI extensions (inserted by MP42TS in the mux) and played by MP4Client, rendered on this nice curved 4K TV. You can find the press release by France TV here.
The GPAC player is very powerful. It features a graphical statistics module able to display and control the player. Look at the screenshot below. It can also be used to choose your HLS or MPEG-DASH quality or limit the download bandwidth to simulate a saturated server environment.
During the first week of June we were also present at the MediaSync 2015 workshop for talk and demos, as well as invited in the demo session of TVX 2015. We presented some demonstrations developed during the H2B2VS project:
- HD/UHD hybrid delivery, same demo as the one in RG labs, bug using Tears of Steel (left on the picture).
- Sign language picture-in-picture service enhancement, with main content on broadcast and sign language video on broadband using MPEG-DASH (right on the picture).
- Dynamic switch between broadcast and broadband versions of the same content, to allow trick modes in a broadcast (time shifting, rewind, fast forward).
The demonstrations were all using MP42TS for broadcast génération, MP4Box for live or onDemand DASH packaging and MP4Client for the playback. Complete instructions for reproducing the test bed are available here.
Today I want to share with you a few tips regarding MP4Box. MP4Box can manipulate MP4 files, but it has also capabilities regarding broadcast streams.
Dump a broadcast TS in a file
MP4Box -grab-ts udp://ip_adress:port dump.ts
MP4Box -grab-ts udp://22.214.171.124:8000 dump.ts
Dump from a specific network interface
MP4Box (and also other GPAC tools such as the MP4Client player) provides a ‘-ifce’ option:
MP4Box -grab-ts udp://ip_adress:port -ifce ip_address dump.ts
Use ‘ifconfig’ (Unix) or ‘ipconfig’ (Windows) to retrieve your IP address on the interface of your choice. Example:
MP4Box -grab-ts udp://126.96.36.199:8000 -ifce 192.168.1.1 dump.ts
Troubleshoot Windows: MP4Box (or any tool) cannot dump my multicast
1) Clicking the Start button and then click on Control Panel. In the search box, type firewall, and then click Windows Firewall.
2) On the left panel, click on “Allow a program or feature through the Windows Firewall”.
3) Make sure all columns are checked for your MP4Box programs.
We wish you a happy new year from the whole GPAC team!
GPAC people are attending FOSDEM this year. FOSDEM is a conference which allows “open source communities a place to meet, share ideas and collaborate”. It takes place every year in Brussels, Belgium. It happens that FOMS also occurs at the same time and city. So both organizing teams agreed to make a joint track called “Open Media”.
Cyril Concolato and Romain Bouqueau will give a talk there about the latest multimedia technologies and GPAC. More information at:
If you’re interested and have questions, meet us or ask questions on our forums.
GPAC is now officially available on GitHub, where you can find:
Please contribute on GitHub as soon as… now!
Of course this is only the beginning. We’d be happy to have your opinion on these changes. The more GitHub requests, feedback and pull-requests we have, the more likely we’ll migrate completely to GitHub 🙂
Like open-source? Want to work in a cool and flexible environment? Want to join a team of world renowned experts? The GPAC project is looking for talented people!
GPAC is a Free Software multimedia framework. We provide packagers, streamers and interactive players at www.gpac.io. We help building tomorrows standards at MPEG, W3C and others.
Open positions for engineers, interns, PhDs/postdocs
More information on this page and that page 🙂
Please contact us at firstname.lastname@example.org if you ave any questions.
- Passionate about computer engineering
- Programming in C/C++ or Web technologies
- Multimedia knowledge (codecs, containers, delivery) is a big plus
- Fluent in English (fluent in French is a plus but not mandatory)
If you are interested, you will find more information on the page dedicated and send an email to email@example.com
Following Cyril Concolato’s first attempt to store TTML in ISOBMF, I have added support for parsing and DASHing EBU-TTD as of version 5366 of GPAC. Therefore you don’t need NHML anymore when importing EBU-TTD TTML content. Please read Cyril’s blog post if you wish to know more about TTML or MPEG-4 part 30 (TTML and WebVTT in ISOBMF).
EBU released two specifications recently:
- TECH 3380 v1.0: EBU-TT-D SUBTITLING DISTRIBUTION FORMAT.
This document aims to define a distribution subtitling format base on TTML. This is both a restriction (i.e. a profile) and an extension of TTML. The extensions are very limited. The restrictions allow to mitigate most of the TTML criticisms (especially an ability to express things in several ways, which led to a difficult generic parsing process).
- TECH 3381 v0.9: CARRIAGE OF EBU-TT-D IN ISOBMFF.
This document explains how to store some EBU-TTD content in ISOBMF. Basically it follows the MPEG-4 part 30 standard.
Useful command-lines for import:
MP4Box -add sample.ttml sample.mp4
EBU-TTD is recognized automatically:
MP4Box -add ebu-ttd_sample.xml:ext=ttml -new tmp.mp4
TTML Import Note: TTML import - EBU-TTD detected
To extract the TTML samples from the MP4 (generates one TTML per MP4 sample) (note: replace track 1 from this example with your track id) :
MP4Box -raws 1 sample.mp4
Just a few remarks about this implementation:
- It is made on top of TTML existing support. So it has the same limitations (no images support, etc.).
- DASH segmentation is fully supported.
- Regression tests are still unsufficient. We are looking for additional feedback and test files.
- There are still a few open questions which are on their way to standardization. You can expect a few minor improvements in the future.
EBU-TTD current limitations
/!\ These limitations don’t exist if you use NHML /!\
- Overlapping times are not supported.
- Multiple <region> elements may trigger errors.
/!\ Fixed limitations /\
- The expected default namespace of the EBU-TT-D document is ‘http://www.w3.org/ns/ttml’. Documents where this namespace is bound to prefix are supported starting at 08/30/2015 (but no other namespace checks are performed).
This development has been made possible thanks to EBU through GPAC Licensing.
GPAC people are attending FOSDEM this year. FOSDEM is a conference which allows “open source communities a place to meet, share ideas and collaborate”. It takes place in Brussels, Belgium.
If you’re interested and have questions, meet us or ask questions on our forums.
We are happy to celebrate the 5000th commit on the GPAC codebase.
GPAC is an adventure started by Jean Le Feuvre in 2000. It has been made open-source in 2003. Since then GPAC has grown regularly to provide you with new features around multimedia and streaming : )
It can now package MP4 and MPEG2-TS using MP4Box and MP42TS, stream with the DASH, HLS, RTP, … protocols , and play back with Osmo4 on many platforms (desktop, mobile, embedded). We even have a live transcoder named DashCast!
2013 has also been an important year for our professional users. They are now able to get professional licensing and services using GPAC Licensing. Don’t worry, GPAC will remain open-source software : )
According to the analytics site ohloh.net, GPAC has over 650k lines of code and has needed 177 years of effort!
If you are interested in statistics, you can read this.
The GPAC team
Editor’s note: please consider cloning GPAC from GitHub!
For maintenance and upgrade reasons, our host SourceForge has migrated GPAC to its new platform. You may see some changes in the forums but you’ll likely see that ‘svn update’ stays stucked at revision 4614.
Please ensure you have changed your local repository by following this tutorial: https://sourceforge.net/p/forge/community-docs/Repository%20Upgrade%20FAQ/#how-do-i-change-svn-to-point-to-the-new-repo .
For most users, this command will make the deal:
svn relocate svn://svn.code.sf.net/p/gpac/code/trunk/gpac
To check out GPAC:
svn co svn://svn.code.sf.net/p/gpac/code/trunk/gpac gpac
Sorry for the inconvenience. Please use our forums if needed.