<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/ffmpeg-jdta4mosa" -->

---
title: FFmpeg | daily.dev
description: drawvg is a new FFmpeg filter (available since version 8.1) that renders vector graphics on top of video frames using a custom scripting language called VGS...
canonical: https://daily.dev/posts/ffmpeg-jdta4mosa
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: FFmpeg | daily.dev
og:description: drawvg is a new FFmpeg filter (available since version 8.1) that renders vector graphics on top of video frames using a custom scripting language called VGS...
og:url: https://daily.dev/posts/ffmpeg-jdta4mosa
og:image: https://api.daily.dev/og/posts/JdTA4MOSA.png
og:image:alt: FFmpeg
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# FFmpeg

**[Hacker News](https://daily.dev/sources/hn)** · 5 min read · 1 upvotes · 0 comments

## Summary

drawvg is a new FFmpeg filter (available since version 8.1) that renders vector graphics on top of video frames using a custom scripting language called VGS (Vector Graphics Script). VGS uses Cairo for rasterization and supports FFmpeg expressions for dynamic graphics based on frame dimensions, metadata, pixel colors, and more. Several practical examples are shown: a progress indicator animation, visualizing cropdetect metadata, custom circlecrop-style transitions, alphamerge-based transitions, pixel color reading for rhombus pixelization, and a wave distortion effect combining drawvg with the displace filter.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://ayosec.github.io/ffmpeg-drawvg/>

## Similar posts on daily.dev

- [SVG in GTK](https://daily.dev/posts/svg-in-gtk-pu1kjdn5v) · Lobsters · 0 upvotes · 0 comments

---

Tags: [#backend](https://daily.dev/tags/backend)

[View this post on daily.dev](https://daily.dev/posts/ffmpeg-jdta4mosa)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"FFmpeg","url":"https://daily.dev/posts/ffmpeg-jdta4mosa","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/ffmpeg-jdta4mosa"},"datePublished":"2026-03-20T12:01:07.976Z","dateModified":"2026-03-20T12:01:32.027Z","description":"drawvg is a new FFmpeg filter (available since version 8.1) that renders vector graphics on top of video frames using a custom scripting language called VGS...","image":"https://media.daily.dev/image/upload/s--0_ODbtD2--/f_auto/v1722860399/public/Placeholder%2008","thumbnailUrl":"https://media.daily.dev/image/upload/s--0_ODbtD2--/f_auto/v1722860399/public/Placeholder%2008","isAccessibleForFree":true,"articleSection":"Hacker News","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Hacker News","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/hn","url":"https://daily.dev/sources/hn"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/ffmpeg-jdta4mosa","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"backend","timeRequired":"PT5M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Hacker News","item":"https://daily.dev/sources/hn"},{"@type":"ListItem","position":3,"name":"FFmpeg"}]}
```

