{"id":20452652,"url":"https://github.com/cadubentzen/mkvdump","last_synced_at":"2025-09-14T07:05:23.041Z","repository":{"id":57750589,"uuid":"514532976","full_name":"cadubentzen/mkvdump","owner":"cadubentzen","description":"MKV and WebM parser CLI tool","archived":false,"fork":false,"pushed_at":"2025-08-18T10:16:06.000Z","size":158282,"stargazers_count":14,"open_issues_count":18,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-10T01:32:07.708Z","etag":null,"topics":["audio","cli","ebml","matroska","mkv","multimedia","rust","video","webm"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cadubentzen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-07-16T09:23:26.000Z","updated_at":"2025-07-04T07:13:55.000Z","dependencies_parsed_at":"2024-11-15T11:09:56.933Z","dependency_job_id":"4e3175c4-2177-42e1-8689-995d3be4554d","html_url":"https://github.com/cadubentzen/mkvdump","commit_stats":{"total_commits":113,"total_committers":1,"mean_commits":113.0,"dds":0.0,"last_synced_commit":"2df4a0a07cf42c04aa5f2cbd9a7d6e4294bf8fd2"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/cadubentzen/mkvdump","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cadubentzen%2Fmkvdump","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cadubentzen%2Fmkvdump/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cadubentzen%2Fmkvdump/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cadubentzen%2Fmkvdump/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cadubentzen","download_url":"https://codeload.github.com/cadubentzen/mkvdump/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cadubentzen%2Fmkvdump/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275071966,"owners_count":25400492,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-14T02:00:10.474Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","cli","ebml","matroska","mkv","multimedia","rust","video","webm"],"created_at":"2024-11-15T11:09:53.064Z","updated_at":"2025-09-14T07:05:22.987Z","avatar_url":"https://github.com/cadubentzen.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mkvdump\n\n[![coverage](https://codecov.io/gh/cadubentzen/mkvdump/branch/main/graph/badge.svg?token=2Q2LOK4J95)](https://codecov.io/gh/cadubentzen/mkvdump)\n[![test](https://github.com/cadubentzen/mkvdump/actions/workflows/test.yml/badge.svg)](https://github.com/cadubentzen/mkvdump/blob/main/.github/workflows/test.yml)\n[![Crates.io](https://img.shields.io/crates/v/mkvdump.svg)](https://crates.io/crates/mkvdump)\n\n\nA command-line tool for debugging Matroska/WebM files. It displays all internal elements of a Matroska file as JSON or YAML.\n\n\u003cdetails\u003e\n\u003csummary\u003eSample YAML output\u003c/summary\u003e\n\n```yaml\n- id: EBML\n  header_size: 5\n  size: 36\n  children:\n  - id: EBMLVersion\n    header_size: 3\n    size: 4\n    value: 1\n  - id: EBMLReadVersion\n    header_size: 3\n    size: 4\n    value: 1\n  - id: EBMLMaxIDLength\n    header_size: 3\n    size: 4\n    value: 4\n  - id: EBMLMaxSizeLength\n    header_size: 3\n    size: 4\n    value: 8\n  - id: DocType\n    header_size: 3\n    size: 7\n    value: webm\n  - id: DocTypeVersion\n    header_size: 3\n    size: 4\n    value: 2\n  - id: DocTypeReadVersion\n    header_size: 3\n    size: 4\n    value: 2\n- id: Segment\n  header_size: 12\n  size: Unknown\n  children:\n  - id: Void\n    header_size: 9\n    size: 229\n    value: null\n  - id: Info\n    header_size: 5\n    size: 44\n    children:\n    - id: TimestampScale\n      header_size: 4\n      size: 7\n      value: 1000000\n    - id: MuxingApp\n      header_size: 3\n      size: 16\n      value: Lavf58.29.100\n    - id: WritingApp\n      header_size: 3\n      size: 16\n      value: Lavf58.29.100\n  - id: Tracks\n    header_size: 5\n    size: 101\n    children:\n    - id: TrackEntry\n      header_size: 9\n      size: 96\n      children:\n      - id: TrackNumber\n        header_size: 2\n        size: 3\n        value: 1\n      - id: TrackUID\n        header_size: 3\n        size: 4\n        value: 1\n      - id: FlagLacing\n        header_size: 2\n        size: 3\n        value: 0\n      - id: Language\n        header_size: 4\n        size: 7\n        value: und\n      - id: CodecID\n        header_size: 2\n        size: 7\n        value: V_AV1\n      - id: TrackType\n        header_size: 2\n        size: 3\n        value: video\n      - id: DefaultDuration\n        header_size: 4\n        size: 8\n        value: 41708333\n      - id: Video\n        header_size: 9\n        size: 32\n        children:\n        - id: PixelWidth\n          header_size: 2\n          size: 4\n          value: 1280\n        - id: PixelHeight\n          header_size: 2\n          size: 4\n          value: 720\n        - id: Colour\n          header_size: 3\n          size: 15\n          children:\n          - id: Range\n            header_size: 3\n            size: 4\n            value: broadcast range\n          - id: ChromaSitingHorz\n            header_size: 3\n            size: 4\n            value: left collocated\n          - id: ChromaSitingVert\n            header_size: 3\n            size: 4\n            value: half\n      - id: CodecPrivate\n        header_size: 3\n        size: 20\n        value: '[81 05 0c 00 0a 0b 00 00 00 2d 4c ff b3 df ff 98 04]'\n  - id: Tags\n    header_size: 5\n    size: 61\n    children:\n    - id: Tag\n      header_size: 10\n      size: 56\n      children:\n      - id: Targets\n        header_size: 10\n        size: 10\n        children: []\n      - id: SimpleTag\n        header_size: 10\n        size: 36\n        children:\n        - id: TagName\n          header_size: 3\n          size: 10\n          value: ENCODER\n        - id: TagString\n          header_size: 3\n          size: 16\n          value: Lavf58.29.100\n  - id: Cluster\n    header_size: 6\n    size: 2679\n    children:\n    - id: Timestamp\n      header_size: 2\n      size: 3\n      value: 0\n    - id: SimpleBlock\n      header_size: 2\n      size: 45\n      value:\n        track_number: 1\n        timestamp: 0\n        keyframe: true\n    - id: SimpleBlock\n      header_size: 2\n      size: 59\n      value:\n        track_number: 1\n        timestamp: 42\n    - id: SimpleBlock\n      header_size: 2\n      size: 32\n      value:\n        track_number: 1\n        timestamp: 83\n    # ...\n```\n\u003c/details\u003e\n\n## What's it useful for?\n\nThis tool is similar to [mp4dump](https://www.bento4.com/documentation/mp4dump/), but for Matroska files. It may be useful for:\n- **snapshot testing:** you can save mkvdump's output for a produced Matroska asset and use that in a human-readable snapshot test.\n- **learning about EBML/Matroska/WebM:** with this tool you can see how a Matroska file is structured. I also learned by writing the tool 😊\n\n## Getting mkvdump\n\n### Debian package\n\nUbuntu users (\u003e= 20.04) can install mkvdump via the DEB package available in the [releases page](https://github.com/cadubentzen/mkvdump/releases).\n\n### Homebrew\n\nLinux and macOS users on x86_64 devices can install mkvdump via the [Homebrew tap](https://github.com/cadubentzen/homebrew-mkvdump):\n\n```bash\n$ brew install cadubentzen/mkvdump/mkvdump\n```\n\nmacOS users on M1 or M2 devices need to use\n\n```bash\n$ brew install --build-from-source cadubentzen/mkvdump/mkvdump\n```\n\n### Cargo\n\nIf you have [cargo-binstall](https://github.com/cargo-bins/cargo-binstall) installed, you can install mkvdump with\n\n```bash\n$ cargo binstall mkvdump\n```\n\nElse, you can install by building it from source with:\n\n```bash\n$ cargo install mkvdump\n```\n\n### Docker\n\nTo pull latest mkvdump from [Docker Hub](https://hub.docker.com/r/cadubentzen/mkvdump):\n\n```bash\n$ docker pull cadubentzen/mkvdump\n```\n\nA [GitHub package](https://github.com/cadubentzen/mkvdump/pkgs/container/mkvdump) is also available via\n\n```bash\n$ docker pull ghcr.io/cadubentzen/mkvdump\n```\n\nImages are multi-arch with support for `linux/amd64`, `linux/386`, `linux/arm64`, `linux/arm/v7` and `linux/arm/v6`.\n\n#### Running the container\n\nAsssuming a Mastroska file in the host located at `/host-path/sample.mkv`. You can run mkvdump on it with the following command, by mounting a volume:\n```bash\n$ docker run -v /host-path:/media cadubentzen/mkvdump /media/sample.mkv\n```\n\n### Prebuilt binaries\n\nDownload prebuilt binaries from the [release page](https://github.com/cadubentzen/mkvdump/releases). There are binaries for the following targets:\n- Linux\n  - statically linked with musl: `x86_64`, `x86`, `aarch64`, `armv7l` and `armv6l`\n  - with GNU libc: `x86_64` and `x86` (built on Ubuntu 20.04)\n- macOS\n  - `x86_64` and `aarch64` (\u003e= macOS 11 Big Sur)\n- Windows\n  - `x86_64` and `x86` with MSVC and MinGW\n\n## License\n\n\u0026copy; 2022 Carlos Bentzen \u003ccadubentzen@gmail.com\u003e.\n\nThis project is licensed under either of\n\n- [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) ([`LICENSE-APACHE`](LICENSE-APACHE))\n- [MIT license](https://opensource.org/licenses/MIT) ([`LICENSE-MIT`](LICENSE-MIT))\n\nat your option.\n\nThe [SPDX](https://spdx.dev) license identifier for this project is `MIT OR Apache-2.0`.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcadubentzen%2Fmkvdump","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcadubentzen%2Fmkvdump","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcadubentzen%2Fmkvdump/lists"}