Skip to content
Projects

kevmo314/codec-from-scratch

View on GitHub

kevmo314/codec-from-scratch has 472 GitHub stars and 23 forks. GitHot measured +2 in 7 days. Last checked 2026-11-10 22:24 UTC. Last push 2025-03-07.

How these counts are measured

Build a simple video encoder from scratch

Measured star growth

in 24h
Update delayed
in 7 days
+2
in 15 days
Collecting history
in 1 month
Collecting history

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

README.md

Original

Video Encoding from Scratch

Ever wondered how a video encoder works? This is a simple video encoder that walks through building a video encoder from scratch to achieve a 90% compression ratio!

https://user-images.githubusercontent.com/511342/203627486-611066cd-f8e5-48c1-863b-eab9529ff90d.mp4

Start by opening up main.go. You can run the code by running cat video.rgb24 | go run main.go and you should see this as output

$ cat video.rgb24 | go run main.go
2022/11/23 13:54:03 Raw size: 53996544 bytes
2022/11/23 13:54:03 YUV420P size: 26998272 bytes (50.00% original size)
2022/11/23 13:54:03 RLE size: 13592946 bytes (25.17% original size)
2022/11/23 13:54:15 DEFLATE size: 5457415 bytes (10.11% original size)

The actual encoding is done in about 120 lines of code. This is meant to be a didactic exercise rather than a comprehensive guide, but maybe if there's interest we could add more features that appear in modern video codecs.

Sample video from Ketut Subiyanto.

Other languages

Explore related projects