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().values() {
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
- BoxHeader
- Bytes
- A cheaply cloneable and sliceable chunk of contiguous memory.
- EmsgBox
- Fixed
Point I8 - Fixed
Point U8 - Fixed
Point U16 - FourCC
- FtypBox
- Hevc
Config - MoofBox
- MoovBox
- Mp4Config
- Mp4Reader
- Mp4Sample
- Mp4Track
- Mp4Writer
- Ratio
- Represents the ratio between two numbers.
- Track
Config - Ttxt
Config - Vp9Config
Enums§
- Audio
Object Type - AvcProfile
- BoxType
- Channel
Config - Data
Type - Error
- Media
Config - Media
Type - Metadata
Key - Sample
Freq Index - Track
Type
Constants§
Traits§
Functions§
- box_
start - creation_
time - read_
box_ header_ ext - read_
mp4 - skip_
box - skip_
bytes - skip_
bytes_ to - write_
box_ header_ ext - write_
zeros