#container #media #magic-bytes

media_infer

Small Crate to infer various media containers. Works by reading Magic Bytes.

1 stable release

1.0.1 May 29, 2021

#224 in Video

MIT license

16KB
306 lines

Introduction

Small Crate to infer various media containers. Works by reading Magic Bytes.

Supported Containers

  • MKV
  • ASF
  • GXF
  • WTV
  • RCWT
  • MP4
  • TS
  • M2TS
  • PS
  • Tivo PS
  • MXF

Examples

Get Container type from starting bytes

let buf = [0x1a, 0x45, 0xdf, 0xa3, 0, 1];
let kind = media_infer::ContainerType::from_bytes(&buf);

assert_eq!(kind, Ok(media_infer::ContainerType::MKV));
#+end_src

** Get Container type from path to file
#+begin_src rust
use std::path::PathBuf;

let file_path = PathBuf::from("some.abc");
let kind = media_infer::ContainerType::from_file_path(&file_path);

Get Container type from open file

use std::fs::File;

let mut file = File::open("some.abc").unwrap();
let kind = media_infer::ContainerType::from_file(&mut file);

Resources


lib.rs:

Small Crate to infer various media containers by magic bytes. More about Magic bytes can be found here:

Examples

Get Container type from starting bytes

let buf = [0x1a, 0x45, 0xdf, 0xa3, 0, 1];
let kind = media_infer::ContainerType::from_bytes(&buf);

assert_eq!(kind, Ok(media_infer::ContainerType::MKV));

Get Container type from path to file

use std::path::PathBuf;

let file_path = PathBuf::from("some.abc");
let kind = media_infer::ContainerType::from_file_path(&file_path);

Get Container type from open file

use std::fs::File;

let mut file = File::open("some.abc").unwrap();
let kind = media_infer::ContainerType::from_file(&mut file);

No runtime deps