#container #media #magic-bytes

media_infer

一个小型库,用于推断各种媒体容器。通过读取魔数字节来实现。

1个稳定版本

1.0.1 2021年5月29日

#217 in 视频

MIT许可证

16KB
306

简介

一个小型库,用于推断各种媒体容器。通过读取魔数字节来实现。

支持的容器

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

示例

从起始字节获取容器类型

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);

从打开的文件获取容器类型

use std::fs::File;

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

资源


lib.rs:

通过魔数字节推断各种媒体容器的小型库。更多关于魔数字节的信息可以在这里找到

示例

从起始字节获取容器类型

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

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

从文件路径获取容器类型

use std::path::PathBuf;

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

从打开的文件获取容器类型

use std::fs::File;

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

无运行时依赖