Skip to content

Latest commit

 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

content-snap-core22

A content snap providing a shared library and media stack for core22 snaps — FFmpeg, mpv, VA-API hardware video acceleration, GTK themes and fonts.

Shipping FFmpeg, mpv and a full theme stack inside every app snap makes each one huge. This snap carries them once; your app plugs into it and ships only its own code.

Unlike pyqt5-runtime-core22, this one does not include PyQt5 — use it when your app brings its own Python/Qt or isn't a Qt app at all.

Snap Store

What's inside

Media ffmpeg, mpv
Hardware video acceleration mesa-va-drivers (AMD + generic), intel-media-va-driver (Intel Gen9+), i965-va-driver (older Intel), vainfo
Qt integration qt5-gtk-platformtheme, qt5-image-formats-plugins
Themes & icons adwaita-icon-theme, light-themes, gnome-themes-standard, dmz-cursor-theme
Fonts & locales fonts-ubuntu, locales-all
Core libs glib, gdk-pixbuf, libglu1-mesa, libxkbcommon0, samba-libs, libdb5.3, libslang2
Desktop integration gsettings-desktop-schemas, shared-mime-info, xdg-user-dirs

Base core22 (Ubuntu 22.04), amd64, strict confinement.

Don't need FFmpeg and mpv? Use content-snap-core22-lite.

Using it in your app

Add the plug to your app's snap/snapcraft.yaml:

plugs:
  content-snap-core22:
    interface: content
    target: $SNAP/content-snap-core22
    default-provider: content-snap-core22

Point your runtime and the VA-API driver path at the mounted content:

environment:
  SNAP_DESKTOP_RUNTIME: $SNAP/content-snap-core22

apps:
  yourapp:
    environment:
      LIBVA_DRIVERS_PATH: $SNAP/content-snap-core22/usr/lib/x86_64-linux-gnu/dri:/var/lib/snapd/lib/gl/dri:/usr/lib/x86_64-linux-gnu/dri

That LIBVA_DRIVERS_PATH line is what makes GPU-accelerated decoding actually work inside strict confinement — without it, libva falls back to software and users see slow playback with no obvious cause.

default-provider means snapd installs this snap automatically alongside your app.

Building it yourself

git clone https://github.com/rishabh3354/content-snap-core22.git
cd content-snap-core22
snapcraft

Related

Used in production by FormatLab, 4KTUBE, 4KWALL and DL-YouTube.


Publishing notes — building and releasing a snap to the Snap Store

1. Install Snapcraft

sudo snap install snapcraft --classic

2. Build

snapcraft

Produces a .snap file, e.g. content-snap-core22_22.04_amd64.snap.

3. Log in

snapcraft login

4. Register the name (first time only)

snapcraft register <snap-name>

5. Upload to a test channel

snapcraft upload --release=edge <snap-name>_<version>_amd64.snap

Channels: edge, beta, candidate, stable.

6. Test

sudo snap install <snap-name> --edge

7. Promote to stable

snapcraft list-revisions <snap-name>
snapcraft release <snap-name> <revision> stable

Status and metrics live at the Snapcraft dashboard. Use snapcraft --debug for verbose build output.

About

Shared library content snap for core22 apps — FFmpeg, mpv, VA-API hardware video acceleration drivers, GTK themes and fonts.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors