#webm #matroska #demuxer #demux

matroska-demuxer

一个可以解复用 Matroska 和 WebM 容器文件的解复用器

5 个版本 (破坏性更新)

0.5.0 2023年6月12日
0.4.0 2022年6月18日
0.3.0 2022年1月20日
0.2.0 2021年4月26日
0.1.1 2021年4月25日

#91多媒体

Download history 16/week @ 2024-03-11 18/week @ 2024-03-18 7/week @ 2024-03-25 30/week @ 2024-04-01 1/week @ 2024-04-15 20/week @ 2024-04-22 6/week @ 2024-05-06 8/week @ 2024-05-13 21/week @ 2024-05-20 9/week @ 2024-05-27 14/week @ 2024-06-03 14/week @ 2024-06-10 15/week @ 2024-06-17 20/week @ 2024-06-24

每月64 次下载
用于 cros-codecs

Zlib OR MIT OR Apache-2.0

150KB
3.5K SLoC

matroska-demuxer

Latest version Documentation ZLIB MIT Apache

一个可以解复用 Matroska 和 WebM 容器文件的解复用器。

为了简单起见,只支持 Matroska 和 WebM 都支持的元素。

集成测试

要运行集成测试,您需要下载 Matroska 测试套件 视频文件,并将它们提取到 tests/data 文件夹中(test1.mkv 到 test8.mkv)。

许可协议

许可协议为 MIT 或 Apache-2.0 或 ZLIB。


lib.rs:

一个可以解复用 Matroska 和 WebM 容器文件的解复用器。

示例

use std::fs::File;
use matroska_demuxer::*;

let file = File::open("test.mkv").unwrap();
let mut mkv = MatroskaFile::open(file).unwrap();
let video_track = mkv
    .tracks()
    .iter()
    .find(|t| t.track_type() == TrackType::Video)
    .map(|t| t.track_number().get())
    .unwrap();

let mut frame = Frame::default();
while mkv.next_frame(&mut frame).unwrap() {
    if frame.track == video_track {
        dbg!("video frame found");
    }
}

无运行时依赖项