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://188.8.131.52: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://184.108.40.206: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 email@example.com 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 firstname.lastname@example.org
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.
We heard today about some MPEG-DASH experiments in Google Chrome. We think Google is behind this initiative because 1) there is a Youtube logo, 2) the data are stored on Google Cloud Storage and 3) it used the Media Source API which is developped by Google for a future use with HTML5 <video> (more on that below). Continue reading MPEG-DASH support in Google Chrome
When porting GPAC to Android (2.3 as of today), we’ve been facing a very strange and annoying problem: JPEG images didn’t load, and libjpeg was outputing the following message:
JPEG parameter struct mismatch: library thinks size is 480,
caller expects 520
We couldn’t find any relevant help on the Web. Discussions always ended up with no response or even some “you don’t understand what you’re doing”. The thing is we have understood and solved the problem.
First, the GPAC Android package (generated as mentionned in the README.txt file) does contain its own libjpeg.so file. The libjpeg.so file is generated from the extra_libs package. When running the Android Osmo4 player within the Eclipse debugger, the Dalvik console prints the following message:
INFO/LibrariesLoader(294): Loading library jpeg...
DEBUG/dalvikvm(294): No JNI_OnLoad found in
/data/data/com.gpac.Osmo4/lib/libjpeg.so 0x44ede8f0, skipping init
DEBUG/dalvikvm(294): Added shared lib
Don’t trust it.
There is a conflict between your local libraries and the ones provided by Android. Google’s dynamic libraries are always loaded first as of Android 2.3. This is annoying because this affects numerous programs and also other dynamic libraries (such as zlib, libpng, …). We could confirm our hypothesis by changing the error messages printed by our own libjpeg.so: it didn’t match the error message showing in the Dalvik console.
The best solution we found is to rename the dynamic library to a non-usual name. libjpeg.so is now named libjpegdroid.so for the GPAC package.
You can find more info on GPAC running on Android from here or watch the following video:
Romain Bouqueau, Stephane Thomas