name: simple-video-converter description: A lightweight PySide6 GUI frontend for FFmpeg, designed for batch video conversion and analysis. It focuses on accessibility and performance, offering automated hardware detection (NVENC, VA-API) and “Smart Pairing” of FFmpeg/FFprobe binaries.
snapcraft: Simple-Video-Converter/snapcraft.yaml at main · STENS66/Simple-Video-Converter · GitHub upstream: github.com/STENS66/Simple-Video-Converter (Public showcase/Readme only) upstream-relation: Developer / Owner supported-category: Video Processing
reasoning:
-
Licensing & Codec Support (Internal LGPL vs Host GPL) The snap includes a bundled, LGPL-compliant version of FFmpeg to ensure basic functionality out of the box. However, strictly adhering to LGPL means this bundled version lacks restricted codecs like H.264 (libx264) and HEVC (libx265). To enable full functionality, the application explicitly allows the user to switch to their host system’s FFmpeg binary (typically
/usr/bin/ffmpeg). Classic confinement is mandatory to allow the execution of this external binary, giving the user access to their own GPL-licensed codecs which cannot be legally bundled inside this proprietary snap. -
Hardware Acceleration & Driver Access (Critical) The application features a HardwareDetector that validates NVENC (Nvidia) and VA-API (Intel/AMD) capabilities via the host’s FFmpeg. For this to work, the underlying process must have unfettered access to the host system’s graphics stack, including:
- Proprietary drivers and ICD loaders (often in
/usr/lib/). - Hardware device nodes (
/dev/dri/renderD128for VA-API,/dev/nvidia*for NVENC). - Kernel-matched libraries (e.g.,
libcuda.so,libva.so). Using Classic confinement allows the application to leverage the host’s correctly configured drivers, ensuring reliable hardware acceleration without bloating the snap with redundant or incompatible driver stacks.
- Arbitrary File Access
As a general-purpose utility, users expect to convert files residing on various storage media, including secondary internal drives (often mounted in
/mntor custom paths), network shares, and temporary directories. The strictly confined interfaces (home, removable-media) are insufficient for these diverse workflows.
I understand that strict confinement is generally preferred over classic. I’ve tried the existing interfaces to make the snap to work under strict confinement.