Bonum Certa Men Certa

Self-Hosting Videos With Free Formats and Animated Previews, Watermarks/Logos and Translucency

Summary: We examine the power of video editing with ffmpeg, chained with command-line scripting and HTML5 features

The Web is a powerful platform -- to the point where it's a little 'too' powerful if put in the hands of malicious actors. But we're still using the Web by default; it's just what most people use. Video functionality on the Web improved a lot over the years, putting aside DRM/EME. So let's explore what we can accomplish with some command-line scripting and ffmpeg.



We're always trying to encourage digital autonomy, which is why we adopt self-hosting whenever possible. This includes videos. For the sake of example, in this post we use an old video about Gemini proxies. It was picked at random, no special reason at all. None.

Extracting bits of the video with ffmpeg isn't hard (check the official ffmpeg Web site; their documentation explains the pertinent options, which should be changed depending on the video):

ffmpeg -ss 600 -t 5 -i gemini-proxies.webm -vf "select=not(mod(n\,1)),fps=10,scale=480:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 roy-talks.gif

This gets us started:



To add the resultant preview (known as "poster") to the video, consider using the following, based on the above example: poster="http://techrights.org/wp-content/uploads/2021/04/roy-talks.gif"

This attribute belongs in the <video> element as it is part of the standard.

Add the watermark/logo with ffmpeg:

ffmpeg -i roy-talks.gif -i mogz-video-poster-4-small.png -filter_complex "overlay=0:H-h--1" -codec:a copy roy-talks2.gif

We use artwork prepared by Mogz for us.

These two passes may be lossy and maybe possible to combine rather easily, but splitting it into two stages aids simplicity. Here it goes:



For center: overlay=(W-w)/2:(H-h)/2 Top left (with 5 pixels of padding): overlay=5:5 Top right: overlay=W-w-5:5 Bottom right: overlay=W-w-5:H-h-5 Bottom left: overlay=5:H-h-5

With improved quality and translucency:

ffmpeg -i roy-talks.gif -i mogz-video-poster-4-small.png -filter_complex "[1]format=rgba,colorchannelmixer=aa=0.7[logo];[0][logo]overlay=0:H-h--1:format=auto" -codec:a copy roy-talks2.gif



The above scripts are possible to chain together and variables can be used, too. Let's change the time to one minute from the start (-ss 60) for a duration of 2 seconds (-t 2):

VIDEO_FILE='gemini-proxies' ffmpeg -ss 60 -t 2 -i $VIDEO_FILE.webm -vf "select=not(mod(n\,1)),fps=10,scale=480:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 intermediate.gif ffmpeg -i intermediate.gif -i mogz-video-poster-4-small.png -filter_complex "[1]format=rgba,colorchannelmixer=aa=0.7[logo];[0][logo]overlay=0:H-h--1:format=auto" -codec:a copy $VIDEO_FILE.gif

Of course it is also possible to use loops and batch-process many files in this way. Welcome to the power of GNU/Linux.



Voila. The translucency is easier to see because of the mug of coffee.

Recent Techrights' Posts

Why Cyber Resilience Act (CRA) Won't Work
American companies don't follow laws, they work around them
Net Gain of 50 Gemini Capsules in Just One Month
a big jump in just one month
 
SLAPP Censorship - Part 179 Out of 200: Using One's Clients to Save Face at Their Expense
Who's being served really?
Switzerland's Software Freedom/Digital Sovereignty is Improving as People Move to GNU/Linux
Well done to them
Links 12/09/2026: "U.S. Debt Surpasses $40 Trillion" and "Trump Wants to [Illegally] Bribe Voters."
Links for the day
Gemini Links 12/09/2026: Readjusting, Fighting Sleep, and FreeBSD bhyve
Links for the day
Matt Mullenweg Got the 'Linus Treatment' or 'RMS Treatment'
"back, but not in charge any more..."
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Friday, September 11, 2026
IRC logs for Friday, September 11, 2026
Earlier This Year Microsoft's Chief Liar Frank Shaw Lied About the Layoffs. Now He's Leaving.
he's nowhere near retirement age
Gemini Links 11/09/2026: Small Things and "Hitching Your Wagon"
Links for the day
Links 11/09/2026: Tristan Buckmaster Ripped Off by Slop, Social Control Media Spreads Hatred for Profit
Links for the day
Animals Smarter Than Chatbots
Quack quack goes the chatbot
IBM Isn't Reporting Layoffs, But It Removes Tens of Thousands of People From Its Workforce
Red Hat and IBM already mark people for removal
"A Tale of Two Antónios" Will Resume Soon
In November the site turns 20
Links 11/09/2026: Cyberattack in Berlin (Windows/Microsoft TCO) and Hype About Slop as 'Existential' Something; Scam Altman et al Caught Stealing/Plagiarising "Mathematical Breakthrough"
Links for the day
Microsoft/GNOME 9/11
Garrett and Graveley (Microsoft/GNOME) will have a lot to explain
Keeping Linux Reliable
If Linux becomes a lot more reliable in the future, it'll be an "hey hi" miracle. If Linux becomes a lot less reliable in the future, we'll know why and who is responsible for it.
9/11 Was a National Event, Not an International Event
They insist that back doors will "save lives"
Very Sloppy PR From a Dying IBM, Company in Disarray and in Need of Distractions
IBM could really use distractions right now
Cyber Show on the Fallacy of Salary/Ego as a Function of Wisdom in the Era of Pyramid Schemes (Cheating People Using Buzzwords and Complicit Media)
"the remuneration fallacy and the role of reluctance as a negative feedback force."
What a Price-Fixing Cartel Can Look Like
If your prices increase five-fold or ten-fold and so do your revenues/income, what does that tell us?
SLAPP Censorship - Part 178 Out of 200: Explaining to Your American Clients That Spending 130,000+ United States Dollars on a Single Hearing in Another Continent Means the UK's National Archives Will Retain in Perpetuity What Your Spouse or Girlfriend Said
Balabhadra (Alex) Graveley should ask Garrett how much money he has lost so far
EPO's Local Staff Committee Munich Organises General Assembly Next Week, the Goal is to Oust the Corrupt President and Derail His Unlawful Agenda
They're aiming to show Campinos the door
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Thursday, September 10, 2026
IRC logs for Thursday, September 10, 2026
Latest IBM Gossip is, Over 25,000 People to be PIPed (by Year's End)
That figure, 10%, is different from 15% (what we saw a lot). 10% is over 25,000 staff.
Solidarity at EPO
"Many colleagues have made personal and professional sacrifices by participating in the ongoing strike and work-to-rule action"
Gemini Links 11/09/2026: Culture Stuck, Robot Symphony, and Back to Geminispace
Links for the day
Links 10/09/2026: Facebook Unsafe for Kids, Fake Songs (Against Right of Publicity, CG Forgeries Basically) a Growing Problem
Links for the day
Rust is Financially and Technically Controlled by Microsoft. Rust Foundation is a Front for Microsoft's Proprietary Software.
Rust is not and has never been about security
Gemini Links 10/09/2026: "I Don’t Want to Interact With Stochastic Parrots" and "ROOPHLOCH 2026!"
Links for the day
What the British School Closure (BSN Senior School Leidschenveen) Means to EPO Staff
The only European thing about the EPO is the staff
Standing in Solidarity With Matt Mullenweg
I don't trust the people and companies that want Mullenweg out. Neither should you.
Links 10/09/2026: "Smear Campaign Says Anti-Flock Movement Is Chinese Propaganda" and "Flock Employee Calls Cops on Reporter Filming Them"
Links for the day
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Wednesday, September 09, 2026
IRC logs for Wednesday, September 09, 2026