Menu

Tree [b5ceff] master /
 History

HTTPS access


File Date Author Commit
 apps 2019-07-30 Philip de Nier Philip de Nier [9b398e] add --umid-type option for Avid OPAtom
 docs 2019-04-12 Philip de Nier Philip de Nier [74b80d] correct font resource id in docs
 include 2019-07-30 Philip de Nier Philip de Nier [9b398e] add --umid-type option for Avid OPAtom
 m4 2013-11-29 Andrew Bonney Andrew Bonney [e49240] configure: use macros for cflag and ldflag supp...
 meta 2019-07-03 Philip de Nier Philip de Nier [4d6cfe] add AS-11 X5 and X6 spec identifiers
 msvc_build 2018-12-21 Philip de Nier Philip de Nier [094ee7] add avc files to visual c++ project
 src 2019-07-30 Philip de Nier Philip de Nier [9b398e] add --umid-type option for Avid OPAtom
 test 2019-07-30 Philip de Nier Philip de Nier [35f2b6] apply KAG after primer pack
 tools 2019-09-16 Alexey Kharkevich Alexey Kharkevich [b5ceff] movdump: fix handling of negative char values i...
 .gitignore 2013-11-29 Andrew Bonney Andrew Bonney [e49240] configure: use macros for cflag and ldflag supp...
 COPYING 2014-04-16 Philip de Nier Philip de Nier [cc2363] change copyright to 2014
 Makefile.am 2013-05-23 Philip de Nier Philip de Nier [b1a756] add initial rdd6 xml reading support
 README.md 2019-04-12 Philip de Nier Philip de Nier [a4fed8] update README.md
 TODO-AVC.txt 2015-09-28 Philip de Nier Philip de Nier [4c6ac8] initial support for general AVC
 TODO-FEATURES.txt 2015-10-14 Philip de Nier Philip de Nier [b3e86a] support for embedding XML as spec. in RP 2057
 TODO-ISSUES.txt 2015-05-19 Philip de Nier Philip de Nier [65e30d] add SMPTE VC-2 support
 autogen.sh 2016-04-14 Andrew Bonney Andrew Bonney [f8264f] autogen: resolve issues caused by conflicting v...
 bmx.pc.in 2012-07-07 Philip de Nier Philip de Nier [b8761b] build: rename include dir and .pc from libbmx t...
 configure.ac 2018-08-28 Philip de Nier Philip de Nier [4be76b] add support for timed text tracks
 gen_scm_version.sh 2013-04-02 Philip de Nier Philip de Nier [1a11b1] build: improve scm version header file generation

Read Me

bmx Library and Utilities

bmx is a library and set of utilities to read and write the SMPTE ST 377-1 MXF
file format
.

bmx is used to support standardisation efforts in the broadcast industry. It
provides utilities for creating standard compliant sample files. It serves as an
example implementation for MXF file format standards.

bmx provides a set of commandline applications:
* raw2bmx: create MXF files from raw (unwrapped) essence files
* bmxtranswrap: re-wrap from one MXF file to another MXF file
* mxf2raw: output MXF file metadata, extract raw essence, calculate MD5 etc.
* bmxparse: text dumper for raw essence files that uses the bmx library's parser class

bmx provides a set of file format text dumper tools:
* h264dump: text dumper for raw H.264 bitstream files
* movdump: text dumper for Quicktime / MP4 files
* rdd36dump: text dumper for SMPTE RDD 36 (Apple ProRes) bitstream files
* vc2dump: text dumper for SMPTE ST 2042 VC-2 bitstream files
* MXFDump: text dumper for MXF files from the
AAF SDK. This utility is made available
and built as part of libMXF.

The following input and output wrapper formats and flavours are supported:
* AMWA AS-02 MXF Versioning
* AMWA AS-10 MXF for Production
* AMWA AS-11 Media Contribution File
Formats (MXF)
* SMPTE ST 378 MXF OP-1A
* SMPTE RDD 9 MXF MPEG Long GOP
(Sony XDCAM)
* SMPTE ST 386 MXF D-10 (Sony
MPEG IMX)
* Avid native MXF
OP-Atom

* WAV

The following essence formats are supported:
* SMPTE RP 2027 AVC-Intra video,
class 50 / 100 / 200
* SMPTE ST 356 D-10 video, 30 /
40 / 50 MBit/s
* DV video, 25 / 50 / 100 MBit/s
* MPEG-2 Long GOP video, 422P@HL, MP@HL
(1920 and 1440) and MP@H14
* H.264 video
* SMPTE ST 2019 VC-3 video (Avid
DNxHD)
* SMPTE ST 2042 VC-2 video
* SMPTE RDD 36 video (Apple ProRes)
* Uncompressed video, UYVY / v210
* Avid MJPEG video
* WAV PCM audio
* SMPTE ST 436 encapsulated ANC
and VBI data
* IMSC 1 Timed Text

Topics

A number of topics are described in more detail in the docs/ directory,
including the following:

Build and Installation

bmx is developed on Ubuntu Linux but is supported on other Unix-like systems
using the autotools build system. A set of Microsoft Visual C++ project files
are provided for Windows.

Dependencies

The following libraries must be installed to build bmx. The (Ubuntu) debian
package names and versions are shown in brackets.
* libMXF (libmxf >= 1.0.3)
* libMXF++ (libmxf++ >= 1.0.3)
* uriparser (liburiparser-dev >=
0.7.2, <= 0.8).
* expat (libexpat1-dev >= 2.1)
* uuid, Unix-like systems only (uuid-dev)

The libcurl (libcurl4-openssl-dev >= 7.22.0)
library is optional for Unix-like systems and provides support for reading MXF
files over HTTP(S).

Unix-like Systems Build

Install the development versions of the dependency libraries. The bmx library
can then be built from source using autotools as follows,

./autogen.sh
./configure
make

Run configure as shown below to see a list of build configuration options,

./configure -h

Add the --with-curl option to the configure line to include libcurl and
therefore support reading MXF files over HTTP(S).

If you get library link errors similar to "error while loading shared
libraries" then run

sudo /sbin/ldconfig

to update the runtime linker cache. E.g. the libMXF library was built and
installed previously and the linker cache needs to be updated with the result.

There are a number of regression tests that can be run using

make check

Finally, the library and utilities can be installed using

sudo make install

Microsoft Visual Studio C++ Build

The Visual Studio 2010 build solution and project files can be found in the
msvc_build/vs10 directory. These files can be upgraded to
any more
recent version when importing into the IDE.

The main build solution file is bmx.sln. It is used
to build the library and MXF applications. The build solution assumes the
following directories are present at the same directory level as bmx: libMXF/,
libMXF++/, uriparser/ and expat/.

The source distributions will contain a copy of the expat and uriparser libraries.
See Source and Binary Distributions below.

A local copy of the expat and uriparser project files are included in the bmx
build directory, i.e. the project files in the external repository are not used.
The build solution file will build the dependency libraries.

The build depends on the bmx_scm_version.h header file in the root directory
to provide the most recent git commit identifier. This file is generated
automatically using the gen_scm_version.sh script when
building using autotools and is included in the source distribution package.
You are likely missing this file if you are using the source code directly from
the git repository then and will need to create it manually.

The tools.sln build solution file is used to
build the text dumper tools.

Source and Binary Distributions

Source distributions, including dependencies for the Windows build, and Windows binaries are made available on SourceForge.

License

The bmx library is provided under the BSD 3-clause license. See the
COPYING file provided with this library for more details.