Crate mp4[−][src]
Expand description
mp4
is a Rust library to read and write ISO-MP4 files.
This package contains MPEG-4 specifications defined in parts:
- ISO/IEC 14496-12 - ISO Base Media File Format (QuickTime, MPEG-4, etc)
- ISO/IEC 14496-14 - MP4 file format
- ISO/IEC 14496-17 - Streaming text format
See: mp4box for supported MP4 atoms.
Example
use std::fs::File; use std::io::{BufReader}; use mp4::{Result}; fn main() -> Result<()> { let f = File::open("tests/samples/minimal.mp4").unwrap(); let size = f.metadata()?.len(); let reader = BufReader::new(f); let mp4 = mp4::Mp4Reader::read_header(reader, size)?; // Print boxes. println!("major brand: {}", mp4.ftyp.major_brand); println!("timescale: {}", mp4.moov.mvhd.timescale); // Use available methods. println!("size: {}", mp4.size()); let mut compatible_brands = String::new(); for brand in mp4.compatible_brands().iter() { compatible_brands.push_str(&brand.to_string()); compatible_brands.push_str(","); } println!("compatible brands: {}", compatible_brands); println!("duration: {:?}", mp4.duration()); // Track info. for track in mp4.tracks().iter() { println!( "track: #{}({}) {} : {}", track.track_id(), track.language(), track.track_type()?, track.box_type()?, ); } Ok(()) }
See examples for more examples.
Installation
Add the following to your Cargo.toml
file:
[dependencies]
mp4 = "0.7.0"
Structs
A reference counted contiguous slice of memory.
Represents the ratio between two numbers.