January 17, 2025

Spark Gap Video GUI for ffmpeg
A Free Open-Source Video Editing Interface
for ffmpeg
The Zippy Clipper
for Linux Mint, Fedora, Ubuntu, Manjaro et. al.
and Windows 11 with WSL2

Source code:

zippy-17-jan-2025.tgz

FFmpeg is a free and open-source software project consisting of a suite of libraries and programs for handling video, audio, and other multimedia files and streams. At its core is the command-line ffmpeg tool itself, designed for processing video and audio files. It is widely used for format transcoding, basic editing (trimming and concatenation), video scaling, video post-production effects, and standards compliance. (Wikipedia).
Unfortunately, it is, as noted, accessed as a command-line application with a sysntax that places it out of reach of most people.

The purpose of this code is to introduce a graphical user interface front-end for several popular ffmpeg capabilities. The ffmpeg GUI is written in C and uses GTK 3, Glade, VLC libraries as well as ffmpeg and related code.

The user selects files, settings and other options from the GUI and the code translates these into an ffmpeg command which is executed.

For example, to join two video clips with a wipedown overlap, the GUI user selects two videos from a list by checking boxes and then clicking the wipedown button. This translates to something like this:

ffmpeg -y -loglevel info -i "/home/okane/Desktop/Zippy/videos/join-wdn-1280x720-01.mp4" -i "/home/okane/Desktop/Zippy/videos/2025-01-10 10-17-04.mkv" -filter_complex "[0v][1v]xfade=transition=wipedown :duration=2:offset=153.166000,format=yuv420p[video];[0:a][1:a]acrossfade=d=2:c1=tri:c2=tri[audio]; [video]fps=25[video1]" -map "[video1]" -map "[audio]" -movflags +faststart -c:a libopus -b:a 128k -c:v libx264 -preset veryslow -crf 20 "tmp.mp4"
Which is executed and the resulting video (tmp.mp4 in the above) is renamed to a filename based on the input.

Many common video operations have been encoded and more will be added. Suggestions welcome. The code is under development and seriously messy. Try not to look too carefully for style. There isn't any...


Notices

The update from Mint 21 to Mint 22, which is based on Ubuntu 24.4, has resulted in several instances of library problems. These include changes in PulseAudio callback buffering and errors in processing Matroska (mkv) videos. The PulseAudio issues are due to pipewire now answering PulsuAudio API requests (pipewire-pulse). Some API requests return different results than PulseAudio did formerlly. The current code attempts to correct these problems. Please contact me if you have issues.

The interface has been simplified and some content is hidden until requested. See the buttons in the box on the lower right of the main screen These cause other frames to appear/disappear.

A new panel showing a frame from each video in a tiled arrangemnt is now available. Click the Video Tiles button on the main screen, center bottom. This will display the tiles page. You may drag/drop tiles as needed.

Please click the Re-Scan Dir button to update the tiles, entry boxe and times when ever you add or seriously modify the contents of the video directory.

This project is unaffiliated with ffmpeg. All errors, mistakes, and stupid code are mine alone.

The HowTo videos are stored on a server in order to minimize the size of the distro and to permit updates as needed that can be seen by all. Clicking the HowTo button loads a list of URLs from the HowTo directory. You may play these in the Zippy Clipper directly if you have internet access. Click the Re-Scan Dir to restore access to local videos.

The main development platform is Linux Mint with Mate. The present version of Mint is 22. The Mint X theme with WinMe borders. Other platforms are checked and updated when time allows. Due to systems update, etc., they may not all work at the same time.


License and Acknowledgements:

This code is licensed under the GPL 2+ & MIT licenses. The code uses ffmpeg runtime routines as well as VLC library APIs which themselves have various open source licences.

Please see README.txt in the distro for information concerning the Windows 11 WSL2 version. See video links below for Hot-To tips.

Examples:




How-To Videos

  1. Making a clip from a larger video
  2. How to crop a clip
  3. How to join two clips
  4. Join with transition stills
  5. Video composed of still images
  6. Tiling video clips
  7. Edge detection
  8. Overlays
  9. Populating the entry list of files
  10. Adding an audio track
  11. Audio graphs
  12. Splice and dice
  13. Installation on Debian Systems
  14. More on Cropping
  15. Mable, Zippy, and PC sing the classics.

The Linux version was developed on Linux Mint with Mate (21). It assumes library names and locations consistent with a Debian/Ubuntu based system. The installation script uses apt.


Demo (co-starring Mabel)
Before

After