The FFmpeg integration stage snaps


#1

These stage snaps integrate FFmpeg utilities and its libraries to your snap. These can be used by applications that don’t need to compile against FFmpeg libraries but simply calls the commands to do the job.

Variants

Due to the licensing model of FFmpeg, you can only integrate the variant that is compatible with your software’s license, here are the available variants:

core18-lgpl: If your application is LGPL compatible

Usage should be fine with most cases, but some codecs are not available.

core18-gplv2: If your application is GPLv2 compatible

Linking the shipped FFmpeg shared libraries with your GPLv2 incompatible software is a copyright infringement to the GPLv2 FFmpeg components’ authors!

core18-gplv3: If your application is GPLv3 compatible

Linking the shipped FFmpeg shared libraries with your GPLv3 incompatible software is a copyright infringement to the GPLv3 FFmpeg components’ authors!

How to use

Merge the following ffmpeg part definition to your snapcraft yaml file.

parts:
  ffmpeg:
    plugin: nil
    stage-snaps:
    - ffmpeg-_variant_name_

Then, copy & paste the entire stage-packages stanza in each variant’s snapcraft recipe to the ffmpeg part:

(This is required as the FFmpeg stage snaps don’t ship the stage-packages in itself as it will cause file conflicts when the consuming snaps also ships the same stage-packages)

Examples


Happy snapcrafting