29 releases

0.11.2 Dec 10, 2018
0.10.1 Mar 23, 2018
0.10.0 Feb 9, 2018
0.9.1 Nov 27, 2017
0.0.9 Jul 1, 2015

#4 in Video

Download history 160/week @ 2019-10-07 214/week @ 2019-10-14 342/week @ 2019-10-21 94/week @ 2019-10-28 180/week @ 2019-11-04 280/week @ 2019-11-11 525/week @ 2019-11-18 126/week @ 2019-11-25 200/week @ 2019-12-02 277/week @ 2019-12-09 123/week @ 2019-12-16 133/week @ 2019-12-23 91/week @ 2019-12-30 173/week @ 2020-01-06 675/week @ 2020-01-13

975 downloads per month
Used in 5 crates

MPL-2.0 license


This is an mp4 track metadata parser.

Latest crate version Travis build status

Our primary interest is writing a pure-rust replacement for the track metadata parser needed by Firefox.

API documentation

Project structure

mp4parse is a parser for ISO base media file format (mp4) written in rust.

mp4parse-capi is a C API that exposes the functionality of mp4parse. The C API is intended to wrap the rust parser. As such, features should primarily be implemented in the rust parser and exposed via the C API, rather than the C API implementing features on its own.


Test coverage comes from several sources:

  • Conventional tests exist in mp4parse/src/lib.rs and mp4parse_capi/src/lib.rs as well as under mp4parse/tests and mp4parse_capi/tests. These tests can be run via cargo test.
  • Examples are included under mp4parse_capi/examples. These programs should continue to build and run after changes are made. Note, these programs are not typically run by cargo test, so manual verification is required. However, test.cc is used to test the foreign function interface via build_ffi_test.rs on non-Windows platforms and will be run by cargo test.
    • Examples with afl related names are for use with the american fuzzy lop fuzzer. These examples can be run without afl, but they can be built specifically to receive input from afl via by setting the fuzz feature when building. E.g. cargo build --features fuzz would build the examples with fuzzing options.


~10K SLoC