Crate mp4[−][src]
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
AacConfig | |
AvcConfig | |
Bytes | A reference counted contiguous slice of memory. |
FixedPointI8 | |
FixedPointU8 | |
FixedPointU16 | |
FourCC | |
HevcConfig | |
Mp4Config | |
Mp4Reader | |
Mp4Sample | |
Mp4Track | |
Mp4Writer | |
Ratio | Represents the ratio between two numbers. |
TrackConfig | |
TtxtConfig | |
Vp9Config |
Enums
AudioObjectType | |
AvcProfile | |
ChannelConfig | |
Error | |
MediaConfig | |
MediaType | |
SampleFreqIndex | |
TrackType |
Traits
Mp4Box |
Functions
creation_time | |
read_mp4 |
Type Definitions
Result |