1
0
Fork 0
mirror of https://github.com/alfg/mp4-rust.git synced 2024-12-22 12:06:33 +00:00
🎥 MP4 reader and writer library in Rust! 🦀
Find a file
Ian Jun 4df9fa1bd4
Feature/test write box (#12)
* Add ReadBox trait

* Add boxtype macro

* Remove offset in BoxHeader

* Fix parsing error when box has largesize

* Remove duplicated codes reading version and flags

* Add test code for all leaves in box tree

* Remove entry_count that is duplacated with entries.len()

* Change volume type to Ratio<u16>

Co-authored-by: Byungwan Jun <unipro.kr@gmail.com>
2020-07-28 21:29:04 -07:00
.github/workflows Create rust.yml 2020-07-24 20:00:09 -07:00
examples Feature/test write box (#12) 2020-07-28 21:29:04 -07:00
src Feature/test write box (#12) 2020-07-28 21:29:04 -07:00
tests Add basic integration test (#10) 2020-07-25 20:07:39 -07:00
.gitignore Add basic integration test (#10) 2020-07-25 20:07:39 -07:00
.travis.yml Add basic integration test (#10) 2020-07-25 20:07:39 -07:00
Cargo.lock Feature/writebox trait (#11) 2020-07-28 09:36:17 -07:00
Cargo.toml Feature/test write box (#12) 2020-07-28 21:29:04 -07:00
LICENSE Change main.rs to lib.rs and create example mp4info project. Update readme and license. 2020-01-12 19:33:26 -08:00
README.md Add basic integration test (#10) 2020-07-25 20:07:39 -07:00

mp4rs

MP4 Reader in Rust

ISO/IEC 14496-12 - ISO Base Media File Format (QuickTime, MPEG-4, etc)

Crates.io Crates.io Build Status Rust

Example

use mp4;

fn main() {
    let f = File::open("example.mp4").unwrap();

    let bmff = mp4::read_mp4(f).unwrap();

    println!("file size:  {}", bmff.size);
    println!("brands: {:?} {:?}\n",
        bmff.ftyp.major_brand, bmff.ftyp.compatible_brands
    );
}

See examples/ for a full example.

Documentation

Development

Requirements

Build

cargo build

Run Examples

  • mp4info
cargo run --example mp4info <movie.mp4>

Run Tests

cargo test

With print statement output.

cargo test -- --nocapture

Resources

Thanks to the following resources used when learning Rust:

License

MIT