Latest News
⚑ Report a ProblemTech news from the best sources
FFmpeg chromakey Filter: Remove Green Screen Backgrounds
Originally published at ffmpeg-micro.com Green screen removal is one of those FFmpeg operations that looks simple until you actually try it. Most tuto…
Shipping Async Video Background Removal at $0.10/sec
Why async matters for video I've been running useKnockout - a background removal API that processes images in ~200ms - for a few months. Images are fa…
Image-to-Video Is a Constraint Problem: A Practical Seedance 2.0 Workflow
Image-to-video generation is often described as a simple interaction: upload image -> describe motion -> get video That description hides the re…
The "AI avatar generator" category is three rendering architectures wearing one label
If you evaluate AI avatar tools as if they're interchangeable — type a script, get a talking head — you'll pick the wrong one and then blame the tool.…
Build an AI dubbing pipeline: faster-whisper + XTTS-v2 + FFmpeg
TL;DR We're building a script that takes a video in English and produces the same video narrated in Spanish, in a cloned version of the original speak…
Probing FFmpeg's av1_vulkan encoder: does your GPU actually support it?
TL;DR FFmpeg 8.x includes av1_vulkan , the first cross-vendor GPU AV1 encoder in mainline FFmpeg. We'll probe whether your GPU + driver actually expos…
Ship a 'Go Live' button: OBS in, LL-HLS out, webhooks in between
TL;DR We're adding live streaming to a SaaS dashboard: a backend endpoint that creates a stream, OBS as the broadcaster over RTMPS, LL-HLS playback wi…
Playing HLS through Managed Media Source on iPhone with hls.js
TL;DR iPhone Safari never supported Media Source Extensions, so JS-driven players fell back to native HLS. Since iOS 17.1, Apple ships Managed Media S…
Force keyframe-aligned GOPs across an ABR ladder with FFmpeg
TL;DR If your stream hitches on quality switches but shows zero rebuffering, your ABR renditions probably have keyframes in different places. We'll en…
Ship multi-language audio in HLS: author the manifest, wire the hls.js switcher
📦 Code: github.com/USER/hls-multi-audio - replace before publishing TL;DR We'll add a working language picker to an HLS player. The hard part isn't th…
Benchmark NVENC vs CPU transcoding (and find your real break-even) with FFmpeg
📦 Code: github.com/USER/nvenc-vs-cpu-bench - replace before publishing TL;DR A GPU encodes faster than a CPU, but "faster" and "cheaper" are different…
5 video APIs compared on what's included before you pay extra (2026)
📦 Code: github.com/USER/video-api-bench - replace before publishing TL;DR The per-minute delivery rate is the easiest number to compare and the least …
Build a UGC video moderation pipeline with FFmpeg + NudeNet
TL;DR If your product lets strangers upload video, you need moderation before launch, not after the first bad upload. We will build a small-team pipel…
FFmpeg HDR to SDR tone mapping that doesn't look washed out (2026)
TL;DR Converting HDR10 to SDR with a naive FFmpeg command gives you grey, washed-out video. The fix is tone mapping. We will detect HDR with ffprobe ,…
Media over QUIC in 2026: a hands-on intro for web devs
TL;DR Media over QUIC (MoQ) is an IETF pub/sub transport for live media running over QUIC and WebTransport. As of April 2026 WebTransport works in eve…
How I Built a Browser-Based Video to PowerPoint Converter
Long lecture recordings are a strange format. The useful part is often not the video itself. It is the slide deck trapped inside the video: a lecture,…