|
|
GTK4 frontend for FFmpeg maintained by |
Repository:
https://github.com/slashmad/SlashmadFFmpegGUI
License:
GPL-3.0-or-later
- FFmpeg encode (
Timelapse) workflow with hardware-acceleration detection. - Dedicated
Capturetab for VHS, USB, PCI, and PCIe capture devices. - Dedicated
Edittab with in-app playback, trim controls, frame stepping, and export. - Live video and live audio monitoring with independent mute and volume control.
- Capture profiles for archive, delivery, and proxy outputs.
- Analog source input selection for devices exposing
Composite/S-Video. - Explicit FFmpeg command preview for capture and export jobs.
- Flatpak support with host-device discovery via
flatpak-spawn --host. - Compact custom dark GTK styling tuned for capture, review, and long-session editing.
- Load a captured file in
Edit. - Use the built-in player transport (
Play,Pause, seek timeline) to inspect the source. - The trim bar uses one combined range with
startandendhandles. - Use the dedicated
-1f/+1fbuttons under the trim bar for manual frame-accurate start/end adjustment. - Default export mode is
Keep source streams, which trims/remuxes without re-encoding. - Switch to
Re-encodewhen applying denoise, deinterlace, color correction, sync changes, or new codecs.
- For em28xx-based hardware,
Live during capture = Stop live viewis still the most stable path. Auto-fallbackcan be used if you want monitoring during capture and accept fallback to lighter preview behavior when needed.- The app keeps default archive capture as raw stereo with no tonal cleanup enabled by default.
- Prefer stable ALSA identifiers shown in the UI (
plughw:CARD=...,DEV=...) over boot-dependenthw:X,Ynumbers. - Typical use case: digitizing VHS on Linux from a Magix USB capture device or similar USB analog-video hardware.
Suggested archive baseline:
- Profile:
VHS Archive (FFV1 + PCM) - Container:
MKV - Video codec:
ffv1 - Audio codec:
pcm_s16le - TV standard:
PAL - Input format:
YUYVmapped to FFmpegyuyv422
Approximate size rates shown in the UI:
VHS Archive (FFV1 + PCM): about~19.4 GiB/hVHS Delivery (H.264 + AAC): about~2.6 GiB/hVHS Proxy (MJPEG + PCM): about~9.0 GiB/h
If Composite works but S-Video is black, force em28xx board profile 105.
Temporary test:
sudo modprobe -r em28xx_v4l em28xx_alsa em28xx
sudo modprobe em28xx card=105 usb_xfer_mode=1
sudo modprobe em28xx_v4lPermanent setup:
sudo tee /etc/modprobe.d/em28xx-magix.conf >/dev/null <<'EOF2'
options em28xx card=105 usb_xfer_mode=1
EOF2Reload modules:
sudo modprobe -r em28xx_v4l em28xx_alsa em28xx
sudo modprobe em28xx
sudo modprobe em28xx_v4lTypical dependencies:
python3python3-pipforpip install -e .python3-gobjectgtk4ffmpeg(includesffprobe)v4l-utilsalsa-utilsforarecordpulseaudio-utilsforpactlgstreamer1gstreamer1-plugins-basegstreamer1-plugins-goodgstreamer1-plugins-bad-freegstreamer1-plugins-bad-free-gtk4
Optional but useful:
pipewire-utilsfor extra PipeWire diagnostics outside the appflatpakflatpak-builder
Run in development mode:
./dev_run.shOr install locally and run:
python3 -m pip install -e .
slashmad-ffmpeg-guiBuild and run with Flatpak Builder:
flatpak-builder --force-clean --install-deps-from=flathub --user build flatpak/io.github.slashmad.SlashmadFFmpegGUI.yml
flatpak-builder --run build flatpak/io.github.slashmad.SlashmadFFmpegGUI.yml slashmad-ffmpeg-guiNotes:
- Inside Flatpak, hardware probing uses host commands via
flatpak-spawn --host. - Capture discovery for
v4l2-ctl,pactl, andarecordis executed on host. - The included Flatpak manifest grants the permissions needed for capture workflows:
--share=network--share=ipc--device=all--socket=pulseaudio--filesystem=/run/udev:ro--filesystem=/mnt--filesystem=/media--filesystem=/run/media--filesystem=xdg-download--filesystem=xdg-videos
The app now ships its own compact dark styling, so a separate Flatpak dark-theme override should normally not be needed.
This project is intended to be discoverable for common Linux video digitizing and timelapse searches, including:
Timelapse LinuxMagix capture LinuxMagix USB Videowandler LinuxUSB to VHS capture LinuxPCI, PCIe to VHS catpure LinuxVHS capture LinuxVHS digitizing LinuxS-Video capture LinuxComposite capture Linuxanalog video capture LinuxFFmpeg VHS capture GUILinux USB video capture GUI



