frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Drawvg Filter for FFmpeg

https://ayosec.github.io/ffmpeg-drawvg/
46•nolta•2d ago

Comments

torginus•1h ago
One of the strangest discoveries of my life was that vector graphics is a solved problem, and the solution is turtle graphics that I was taught in primary school.
ErroneousBosh•1h ago
I still have a copy of Hobby Electronics from 1982 that my dad bought when I was about 9 or so and in primary school, with the article on building Hebot II.

I got various bits and pieces together and experimented with doing things like driving Big Trak gearboxes (remember? J Bull Electrical used to advertise them in every magazine, along with all sorts of fascinating old shite) with an interface plugged into my ZX Spectrum, but I never actually built one.

Funnily enough I was thinking about that the other day, and how sad it is that schools like my son's primary school just have very locked-down iPads for the children to use instead of the BBC Micros we grew up with (I'm guessing you're more approximately my age than primary school age, and those things were in schools well into the early 2000s. Bombproof.) that could be endlessly tinkered with.

Anyway the guy next door does a lot of 3D printing and it's never been easier to draw PCBs and get them made or even etch them at home (it's the drilling bit I hate). So maybe now EBv2.0 is five, it's time to dig out that issue of HE and start transcribing stuff into Kicad and Blender :-)

severak_cz•55m ago
Well turtle graphics is not implemented in drawvg. But it should be easy to implement it.
shevy-java•23m ago
That's quite cool. I guess ffmpeg would kind of technically be a replacement for avisynth at this point.

Still, I find the syntax it uses horrible:

  ffmpeg -an -ss 12 -t 3 -i bigbuckbunny.mov -vf 'crop=iw-1, drawvg=file=progress.vgs, format=yuv420p' -c:v libvpx-vp9 output.webm
I understand that most of this comes from simplicity of use from the shell, so if you take this point of view, the above makes a lot of sense.

My poor, feeble brain, though, has a hard time deducing all of this. Yes, I can kind of know what it does to some extent ... start at 12 seconds right? during 3 seconds ... apply the specified filter in the specified format, use libvpx-vp9 as the video codec ... but the above example is somewhat simple. There are total monsters in actual use when it comes to the filter subsystem in ffmpeg. Avisynth was fairly easy on my brain; ffmpeg does not, and nobody among the ffmpeg dev team seems to think that complicated uses are an issue. I even wrote a small ruby script that expands shortcut options as above, into the corresponding long names, simply because the long names are a bit easier to remember. Even that fails when it comes to complex filters used.

It's a shame because ffmpeg is otherwise really great.

jack_pp•16m ago
Maybe it helps to view ffmpeg as a DSL and the ugliness is caused by the CLI constraints / conventions.

For what it's worth, LLMs are a great tool for both composing and understanding ffmpeg commands.

And if you want something more verbose / easier to read you can use something like https://github.com/kkroening/ffmpeg-python (with LLMs) as well

fercircularbuf•22m ago
This could be a great and easy way to add annotations to technical instruction videos in a way that is self-documenting and programmable.
jasode•13m ago
drawvg is very useful. Before drawvg, I was always fine using the stable FFmpeg releases such as 8.0.1 but when I saw drawvg added to master branch[1], I didn't want to wait for the next stable release and immediately re-built ffmpeg from master to start using it.

My main use case is modifying youtube videos of tech tutorials where the speaker overlays a video of themselves in a corner of the video. I'm sure some viewers like having a visible talking head shown on the same screen as the code but I find the constant motion of someone's lips moving and eyes blinking in my peripheral vision extremely distracting. Our vision is very tuned into paying attention to faces so the brain constantly fighting that urge so it can concentrate on the code.

If the overlay was a rectangle, you can use the older drawbox filter and didn't need drawvg. However, some content creaters use circles and that's where drawvg works better. Instead of creating separate .vgs file, I just use the inline syntax like this:

  ffmpeg -i input.webm -filter_complex "[0:v]drawvg='circle 3388 1670 400 setcolor black fill'[v2];[0:a]atempo=1.5[a2]" -map "[v2]" -map "[a2]" output.mp4
That puts a black filled circle on the bottom right corner of a 4k vid to cover up the speaker. Different vids from different creators will require different x,y,radius coordinates.

[1] https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/016d767c8e9d...

ArXiv Declares Independence from Cornell

https://www.science.org/content/article/arxiv-pioneering-preprint-server-declares-independence-co...
290•bookstore-romeo•5h ago•73 comments

Google details new 24-hour process to sideload unverified Android apps

https://arstechnica.com/gadgets/2026/03/google-details-new-24-hour-process-to-sideload-unverified...
833•0xedb•17h ago•910 comments

Drawvg Filter for FFmpeg

https://ayosec.github.io/ffmpeg-drawvg/
49•nolta•2d ago•8 comments

Push events into a running session with channels

https://code.claude.com/docs/en/channels
337•jasonjmcghee•9h ago•190 comments

Full Disclosure: A Third (and Fourth) Azure Sign-In Log Bypass Found

https://trustedsec.com/blog/full-disclosure-a-third-and-fourth-azure-sign-in-log-bypass-found
146•nyxgeek•9h ago•34 comments

Building a Reader for the Smallest Hard Drive

https://www.willwhang.dev/Reading-MK4001MTD/
38•voctor•4d ago•7 comments

Drugwars for the TI-82/83/83 Calculators (2011)

https://gist.github.com/mattmanning/1002653/b7a1e88479a10eaae3bd5298b8b2c86e16fb4404
142•robotnikman•9h ago•53 comments

FSF Threatens Anthropic over Infringed Copyright: Share Your LLMs Freel

https://www.fsf.org/blogs/licensing/2026-anthropic-settlement
113•m463•3d ago•60 comments

Return of the Obra Dinn: spherical mapped dithering for a 1bpp first-person game

https://forums.tigsource.com/index.php?topic=40832.msg1363742#msg1363742
369•PaulHoule•3d ago•48 comments

Cursor Composer 2 is just Kimi K2.5 with RL

https://twitter.com/fynnso/status/2034706304875602030
30•mirzap•38m ago•5 comments

How the Turner twins are mythbusting modern technical apparel

https://www.carryology.com/insights/how-the-turner-twins-are-mythbusting-modern-gear/
233•greedo•2d ago•117 comments

Show HN: Three new Kitten TTS models – smallest less than 25MB

https://github.com/KittenML/KittenTTS
432•rohan_joshi•18h ago•160 comments

Cockpit is a web-based graphical interface for servers

https://github.com/cockpit-project/cockpit
261•modinfo•13h ago•149 comments

4Chan mocks £520k fine for UK online safety breaches

https://www.bbc.com/news/articles/c624330lg1ko
378•mosura•19h ago•650 comments

Astral to Join OpenAI

https://astral.sh/blog/openai
1366•ibraheemdev•21h ago•843 comments

Noq: n0's new QUIC implementation in Rust

https://www.iroh.computer/blog/noq-announcement
205•od0•16h ago•32 comments

A Journey Through Infertility

https://pudding.cool/2026/03/ivf/
34•tchanukvadze•2d ago•23 comments

How many branches can your CPU predict?

https://lemire.me/blog/2026/03/18/how-many-branches-can-your-cpu-predict/
84•chmaynard•1d ago•48 comments

Be intentional about how AI changes your codebase

https://aicode.swerdlow.dev
121•benswerd•12h ago•49 comments

Scaling Karpathy's Autoresearch: What Happens When the Agent Gets a GPU Cluster

https://blog.skypilot.co/scaling-autoresearch/
177•hopechong•17h ago•78 comments

Clockwise acquired by Salesforce

https://www.getclockwise.com
122•nigelgutzmann•14h ago•60 comments

Too Much Color

https://www.keithcirkel.co.uk/too-much-color/
9•maguay•2d ago•7 comments

Launch HN: Voltair (YC W26) – Drone and charging network for power utilities

72•wweissbluth•17h ago•27 comments

FSFE supporters affected: Payment provider Nexi cancelled us

https://fsfe.org/news/2026/news-20260316-01.en.html
54•rasjani•3h ago•18 comments

NanoGPT Slowrun: 10x Data Efficiency with Infinite Compute

https://qlabs.sh/10x
149•sdpmas•15h ago•32 comments

OpenBSD: PF queues break the 4 Gbps barrier

https://undeadly.org/cgi?action=article;sid=20260319125859
203•defrost•20h ago•60 comments

Essex police pause facial recognition camera use after study finds racial bias

https://www.theguardian.com/technology/2026/mar/19/essex-police-pause-facial-recognition-camera-u...
6•Brajeshwar•1h ago•1 comments

Linux Page Faults, MMAP, and userfaultfd for faster VM boots

https://www.shayon.dev/post/2026/65/linux-page-faults-mmap-and-userfaultfd/
31•shayonj•1d ago•2 comments

Waymo Safety Impact

https://waymo.com/safety/impact/
316•xnx•14h ago•330 comments

Launch HN: Canary (YC W26) – AI QA that understands your code

56•Visweshyc•18h ago•20 comments