= Bento4 MP4 Class Library, SDK and Tools = == Introduction == Bento4/AP4 is a C++ class library designed to read and write ISO-MP4 files. This format is defined in ISO/IEC 14496-12, 14496-14 and 14496-15. The format is a derivative of the Apple Quicktime file format. Because of that, Bento4 can be used to read and write a number of Quicktime files as well, even though some Quicktime specific features are not supported. ISO-MP4 files are also used as part of the [http://www.3gpp.org 3GPP family of standards]. In addition, Bento4 supports a number of extensions as defined in various other specifications. This includes some support for ISMA Encrytion and Decryption as defined in the [http://www.isma.tv ISMA E&A specification], OMA 2.0 and 2.1 DCF/PDCF Encryption and Decryption as defined in the [http://www.openmobilealliance.org OMA specifications]. The PIFF ([http://go.microsoft.com/?linkid=9682897 Protected Interoperable File Format]) encrypted, fragmented MP4 format specified by Microsoft and used for encrypted HTTP Smooth Streaming is also supported. Bento4 supports reading and writing 3GPP and iTunes compatible metadata. The SDK includes a number of command line tools, built using the class library, that serve as general purpose tools as well as examples of how to use the API. The SDK is designed to be cross-platform. The code is very portable; it can be compiled with any sufficiently modern C++ compiler. The code does not rely on any external library; all the code necessary to compile the SDK and its tools is included in the standard distribution. The standard distribution contains makefiles for unix-like operating systems, including Linux, project files for Microsoft Visual Studio, and an XCode project for MacOS X. There is also support for building the library with the [http://www.scons.org SCons] build system. You can find out more about the license in [source:trunk/Documents/LICENSE.txt LICENSE.txt] You can also read some of the API documentation produced from the source code comments using Doxygen. The doxygen output is available as a windows CHM file in [source:trunk/Documents/Doxygen/Bento4.chm Bento4.chm], and a set of HTML pages zipped together in [source:trunk/Documents/Doxygen/Bento4-HTML.zip Bento4-HTML.zip] (to start, open the file named index.html with an HTML browser) == Source Code == You can [source:trunk/ browse the source code] directly from the TRAC interface, or download a copy of the source tree using an [http://subversion.tigris.org/ SVN] (Subversion) client.[[BR]] For example, the svn command line to download the current source tree trunk, and save it to a directory named Bento4, would look like: {{{ svn checkout https://zebulon.bok.net/svn/Bento4/trunk Bento4 }}} == Binary Releases ans Source Snapshot == As a convenience, we publish here the most recent version of the binary releases (SDK with header files, libraries and command line applications) for the most common platforms, and the corresponding source snapshot.[[BR]][[BR]] ''Version 1.2.3-387''[[BR]] [http://zebulon.bok.net/Bento4/binaries/Bento4-SDK-1-2-3-387.x86-microsoft-win32-vs2005.zip Binaries for Windows XP/Vista][[BR]] [http://zebulon.bok.net/Bento4/binaries/Bento4-SDK-1-2-3-387.universal-apple-macosx.zip Binaries for Mac OSX][[BR]] [http://zebulon.bok.net/Bento4/binaries/Bento4-SDK-1-2-3-387.x86-unknown-linux.zip Binaries for Linux x86][[BR]] [http://zebulon.bok.net/Bento4/source/Bento4-SRC-1-2-3-387.zip Source Snapshot (all platforms)][[BR]]