2024-04-12 16:56:53 +00:00
|
|
|
use mp4::Mp4Header;
|
2020-08-25 05:38:05 +00:00
|
|
|
use std::env;
|
2024-04-12 16:56:53 +00:00
|
|
|
use tokio::fs::File;
|
2020-08-25 05:38:05 +00:00
|
|
|
|
2024-04-12 16:56:53 +00:00
|
|
|
#[tokio::main]
|
|
|
|
async fn main() {
|
2020-08-25 05:38:05 +00:00
|
|
|
let args: Vec<String> = env::args().collect();
|
|
|
|
|
|
|
|
if args.len() < 2 {
|
2020-08-27 03:45:18 +00:00
|
|
|
println!("Usage: simple <filename>");
|
2020-08-25 05:38:05 +00:00
|
|
|
std::process::exit(1);
|
|
|
|
}
|
|
|
|
|
|
|
|
let filename = &args[1];
|
2024-04-12 16:56:53 +00:00
|
|
|
let mut f = File::open(filename).await.unwrap();
|
2020-08-25 05:38:05 +00:00
|
|
|
|
2024-04-12 16:56:53 +00:00
|
|
|
let mp4 = Mp4Header::read(&mut f, Some(())).await.unwrap();
|
|
|
|
|
|
|
|
println!("Major Brand: {:?}", mp4.major_brand());
|
2020-08-25 05:38:05 +00:00
|
|
|
|
2021-07-30 02:57:15 +00:00
|
|
|
for track in mp4.tracks().values() {
|
2022-06-01 03:50:49 +00:00
|
|
|
println!(
|
|
|
|
"Track: #{}({}) {} {}",
|
2020-08-25 05:38:05 +00:00
|
|
|
track.track_id(),
|
|
|
|
track.language(),
|
|
|
|
track.track_type().unwrap(),
|
|
|
|
track.box_type().unwrap(),
|
|
|
|
);
|
|
|
|
}
|
2022-06-01 03:50:49 +00:00
|
|
|
}
|