Skip to content
 
 

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

libsimplewebm

A small WebM demuxer & decoder library. It uses Google's libwebm for WebM/Matroska parsing, libvpx for VP8/VP9 video decoding & libopus / libvorbis for audio decoding.

Features

  • WebM/Matroska demuxing
  • VP8 & VP9 video decoding
  • Opus & Vorbis audio decoding

Requirements

  • CMake 4.0+
  • C++11 or above compiler
  • libvpx
  • libopus
  • libvorbis
  • pkg-config

Note

libwebm's required sources are included in the repo.

Building

cmake -S . -B build
cmake --build build

Example

The example takes a WebM file & decodes its video & audio streams:

./build/libsimplewebm_example video.webm

Architecture

                 WebM / Matroska file
                           │
                           ▼
                    ┌─────────────┐
                    │  libwebm    │
                    │  mkvparser  │
                    └──────┬──────┘
                           │
                           ▼
                    ┌─────────────┐
                    │ WebMDemuxer │
                    └──────┬──────┘
                           │
                 ┌─────────┴─────────┐
                 ▼                   ▼
          ┌────────────┐      ┌───────────────┐
          │ VPXDecoder │      │ OpusVorbis    │
          │            │      │ Decoder       │
          └─────┬──────┘      └───────┬───────┘
                │                     │
                ▼                     ▼
             VP8/VP9              Opus/Vorbis
              frames                PCM audio

About

Simple library for playing WebM files (can decode: VP8, VP9, Vorbis, Opus)

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages