14 个版本 (4 个破坏性更新)
0.6.0 | 2023年5月24日 |
---|---|
0.5.2 | 2023年5月16日 |
0.4.5 | 2023年5月14日 |
0.3.1 | 2022年9月15日 |
0.2.1 | 2022年8月17日 |
#5 in #webm
每月125 次下载
71KB
1.5K SLoC
mkvdump
Matroska/WebM 文件的命令行调试工具。它以 JSON 或 YAML 格式显示 Matroska 文件的内部所有元素。
示例 YAML 输出
- id: EBML
header_size: 5
size: 36
children:
- id: EBMLVersion
header_size: 3
size: 4
value: 1
- id: EBMLReadVersion
header_size: 3
size: 4
value: 1
- id: EBMLMaxIDLength
header_size: 3
size: 4
value: 4
- id: EBMLMaxSizeLength
header_size: 3
size: 4
value: 8
- id: DocType
header_size: 3
size: 7
value: webm
- id: DocTypeVersion
header_size: 3
size: 4
value: 2
- id: DocTypeReadVersion
header_size: 3
size: 4
value: 2
- id: Segment
header_size: 12
size: Unknown
children:
- id: Void
header_size: 9
size: 229
value: null
- id: Info
header_size: 5
size: 44
children:
- id: TimestampScale
header_size: 4
size: 7
value: 1000000
- id: MuxingApp
header_size: 3
size: 16
value: Lavf58.29.100
- id: WritingApp
header_size: 3
size: 16
value: Lavf58.29.100
- id: Tracks
header_size: 5
size: 101
children:
- id: TrackEntry
header_size: 9
size: 96
children:
- id: TrackNumber
header_size: 2
size: 3
value: 1
- id: TrackUID
header_size: 3
size: 4
value: 1
- id: FlagLacing
header_size: 2
size: 3
value: 0
- id: Language
header_size: 4
size: 7
value: und
- id: CodecID
header_size: 2
size: 7
value: V_AV1
- id: TrackType
header_size: 2
size: 3
value: video
- id: DefaultDuration
header_size: 4
size: 8
value: 41708333
- id: Video
header_size: 9
size: 32
children:
- id: PixelWidth
header_size: 2
size: 4
value: 1280
- id: PixelHeight
header_size: 2
size: 4
value: 720
- id: Colour
header_size: 3
size: 15
children:
- id: Range
header_size: 3
size: 4
value: broadcast range
- id: ChromaSitingHorz
header_size: 3
size: 4
value: left collocated
- id: ChromaSitingVert
header_size: 3
size: 4
value: half
- id: CodecPrivate
header_size: 3
size: 20
value: '[81 05 0c 00 0a 0b 00 00 00 2d 4c ff b3 df ff 98 04]'
- id: Tags
header_size: 5
size: 61
children:
- id: Tag
header_size: 10
size: 56
children:
- id: Targets
header_size: 10
size: 10
children: []
- id: SimpleTag
header_size: 10
size: 36
children:
- id: TagName
header_size: 3
size: 10
value: ENCODER
- id: TagString
header_size: 3
size: 16
value: Lavf58.29.100
- id: Cluster
header_size: 6
size: 2679
children:
- id: Timestamp
header_size: 2
size: 3
value: 0
- id: SimpleBlock
header_size: 2
size: 45
value:
track_number: 1
timestamp: 0
keyframe: true
- id: SimpleBlock
header_size: 2
size: 59
value:
track_number: 1
timestamp: 42
- id: SimpleBlock
header_size: 2
size: 32
value:
track_number: 1
timestamp: 83
# ...
它有什么用途?
此工具类似于 mp4dump,但用于 Matroska 文件。它可能有助于
- 快照测试:您可以保存 mkvdump 的输出,用于生成的 Matroska 资产,并在可读的快照测试中使用。
- 了解 EBML/Matroska/WebM:使用此工具,您可以看到 Matroska 文件的结构。我也通过编写此工具学到了 😊
获取 mkvdump
Debian 软件包
Ubuntu 用户(>= 20.04)可以通过在 发布页面 中可用的 DEB 软件包安装 mkvdump。
Homebrew
Linux 和 macOS 上的 x86_64 设备用户可以通过 Homebrew tap 安装 mkvdump。
$ brew install cadubentzen/mkvdump/mkvdump
macOS 上的 M1 或 M2 设备用户需要使用
$ brew install --build-from-source cadubentzen/mkvdump/mkvdump
Cargo
如果您已安装 cargo-binstall,您可以使用以下命令安装 mkvdump:
$ cargo binstall mkvdump
否则,您可以通过从源代码构建来安装:
$ cargo install mkvdump
Docker
要从 Docker Hub 拉取最新的 mkvdump
$ docker pull cadubentzen/mkvdump
GitHub 上的 软件包 也可通过
$ docker pull ghcr.io/cadubentzen/mkvdump
镜像为多架构,支持 linux/amd64
、linux/386
、linux/arm64
、linux/arm/v7
和 linux/arm/v6
。
运行容器
假设宿主机上的 Matroska 文件位于 /host-path/sample.mkv
。您可以通过以下命令,通过挂载卷来运行 mkvdump:
$ docker run -v /host-path:/media cadubentzen/mkvdump /media/sample.mkv
预构建的二进制文件
从 发布页面 下载预构建的二进制文件。以下目标有二进制文件:
- Linux
- 使用 musl 静态链接:
x86_64
、x86
、aarch64
、armv7l
和armv6l
- 使用 GNU libc:
x86_64
和x86
(基于 Ubuntu 20.04 构建)
- 使用 musl 静态链接:
- macOS
x86_64
和aarch64
(>= macOS 11 Big Sur)
- Windows
x86_64
和x86
,使用 MSVC 和 MinGW
许可证
© 2022 Carlos Bentzen [email protected]。
该项目受以下任一许可证的许可:
任选其一。
该项目的 SPDX 许可证标识符为 MIT OR Apache-2.0
。
依赖项
~7MB
~136K SLoC