This library provides a safe function to decrypt encrypted mp4 data stream using Bento4. Also, some basic mp4 splitting can be done.
Add this to your Cargo.toml file.
toml
[dependencies]
mp4decrypt = "0.3.1"
Or add from command line.
bash
$ cargo add mp4decrypt
See docs and examples to know how to use it.
```rust use std::collections::HashMap; use std::io::Write;
fn main() { let mut input = includebytes!("init.mp4").tovec(); input.extend(includebytes!("segment0.m4s"));
let mut keys = HashMap::new();
keys.insert(
"eb676abbcb345e96bbcf616630f1a3da".to_owned(),
"100b6c20940f779a4589152b57d2dacb".to_owned(),
);
let decrypted_data = mp4decrypt::mp4decrypt(&input, keys, None).unwrap();
std::fs::File::create("decrypted.mp4")
.unwrap()
.write_all(&decrypted_data)
.unwrap();
} ```
Dual Licensed