# Bento4 MP4 Class Library/SDK

The sourceforge project page is at http://www.sourceforge.net/projects/bento4
Please visit the TRAC site for complete access to the most up-to-date source control releases, bugs/tickets, and wiki.

## 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 3GPP family of standards(http://www.3gpp.org In addition, Bento4 supports a number of extensions as defined in various other specifications. This includes some support for ISMA Encryption as defined in the ISMA E&A specification (http://www.isma.tv), the OMA 2.0 and 2.1 DCF and PDCF specification (http://www.openmobilealliance.org). The PIFF encrypted, fragmented MP4 format specified by Microsoft and used for encrypted HTTP Smooth Streaming is also supported (Protected Interoperable File Format (PIFF) specification.
Recent versions of Bento4 now have some support for the ISO base file format part of MPEG DASH (ISO/IEC 23009-1) including Commone Encryption (ISO/IEC 23001-7)
Bento4 also supports 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.

### Documentation

Introduction to the SDK's programming interfaces, a building guide, and a detailed API documentation.