finds.dev← search

// the find

pulkitpareek18/media-processing-pipeline

★ 2 · C · updated Mar 2026

FFmpeg-based C/C++ pipeline that converts one source video into multiple lower-resolution variants with automated resolution detection and structured output naming.

A CLI wrapper around ffprobe/ffmpeg that takes one video file and spits out a fixed bitrate ladder (1080p down to 144p) into a folder named after the source. Useful as a learning project or a quick-and-dirty transcode script for someone who doesn't want to hand-write ffmpeg commands; not something you'd drop into a production pipeline.

The resolution-detection-then-ladder-generation flow is a reasonable, self-contained idea and does solve a real repetitive task. It ships two parallel implementations (C and C++) so you can see the same logic done with a plain C ffprobe/ffmpeg shell-out versus _popen, which is a decent point of comparison for someone learning systems programming. There's an actual CI workflow running on every push rather than nothing at all.

A compiled binary (a.exe) and a full video.mp4 test file are committed straight into the repo, which bloats clone size and is exactly what .gitignore exists to prevent. The C++ implementation only works on Windows via _popen, so 'cross-platform' really just means the C version, and even that depends on invoking ffmpeg/ffprobe through a shell call with a filename, which is a command-injection risk the moment this takes untrusted input. The resolution ladder, filenames, and codec settings are all hardcoded with no config file or CLI flags, so any customization means editing and recompiling source. CI only checks that the code builds and that C++ syntax parses — there are no unit tests, no sample-output verification, and no license file.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →