View Full Version : Vapoursynth processing LIVE stream
dbadovsky
21st November 2025, 16:00
Hi friends!
Trying to find the way to apply VS filter (nnedi3cl) to live stream. The goal is good-quality transform 1080i50 to 1080p50. Input and output can be SRT/NDI/UDP - whatever, doesn't really matter at this point.
I have compiled ffmpeg with --enable-vapoursynth flag but ffmpeg uses VS as input and can't pass input stream into vapoursynth (or, to pecise, I coudn'd do it :) ) Also I tried to use pipeline but no results too. (ffmpeg|vspipe|ffmpeg)
I'm not hard-fixed to exactly vapoursynth and ffmpeg, so as OS too. Now it's Fedora42 but only because of VS repos to easily install VS with plugins. Or nnedi can be replaced with qtgmc, for file-based processing it gives very good results too.
Well, I'll be glad to any kind of advice to help me achieve the goal.
Cary Knoop
21st November 2025, 20:30
I would advice a hardware deinterlacer as opposed to a Linux box with software for various reasons.
Lookup Decimator or Blackmagic Teranex. Avoid AJA unless you are not the one who foots the bill!
dbadovsky
21st November 2025, 21:14
Oh, tried Teranex - looks aweful, just like yadif. BMD UpDownCross is better but not enough though. Trying to find Decimator MD-HX for test, it's the last chance to do it in my budget.
But anyway i'd like to try software solution :-) Especially having enough hardware power already.
_Al_
21st November 2025, 22:27
vspipe is a stream throttle/bottleneck, would output only video or audio, one stream, not both, that cannot work as a pipe for both video and audio stream
so instead of ffmpeg|vspipe|ffmpeg then just vspipe|ffmpeg makes kind of sense (or I'm wrong ...)
if wanting both streams in a single command, audio would need to be taken from the source and added in that ffmpeg (after vspipe),
or create a virtual audio pipe beforehand using windows named pipe if audio is fixed in vapoursynth script as well, but that would take a time (not live to say)
Adub
25th November 2025, 19:21
It seems like you just want a quality deinterlacing of a live video stream. I've done experiments with ffmpeg, and the motion-compensated bwdif implementation (https://ffmpeg.org/ffmpeg-all.html#bwdif-1) is pretty good and pretty fast. There's even a CUDA (https://ffmpeg.org/ffmpeg-all.html#bwdif_005fcuda) and Vulkan (https://ffmpeg.org/ffmpeg-all.html#bwdif_005fvulkan) implementation for hardware acceleration if you end up being CPU bound (although I found bwdif to be pretty darn fast even with just CPU).
This would let you do all live processing with ffmpeg, with no need for Vapoursynth to be in the middle of it.
That said, if you *really* want it, there is the vsrawsource plugin that can be fed via stdin: https://github.com/AmusementClub/vsrawsource/blob/mod/rawsource.c#L93-L94
As _AI_ calls out though, you'll only be able to process a single video or audio stream though, as vspipe doesn't support outputting both (yet).
dbadovsky
1st December 2025, 15:28
It seems like you just want a quality deinterlacing of a live video stream.
Yes, exactly. Deinterlacing doubling the framerate.
Bwdif is good. It's on the same level as nvidia's cuvid embedded algo. Slightly better then BMD and decimator. But still not enough.
Next step is to try ffmpeg's nnedi on modern powerful cpu (ryzen 7900x for example). Maybe it will be enough (xeon gold 6150 is enough for 25 fps). Finding one for testing..
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.