HACKER Q&A
📣 71a54xd

Suggested NON-FFmpeg GPU accelerate video pipelines?


I'm working on a project that needs to leverage very fast video resizing and blurring. I can do this with fast enough CPU's with complex filters in FFMPEG but I'm running into the upper limit of what FFMPEG can handle in terms of nVidia acceleration. Specifically, with how slow blurring is on CPU and the fact that OpenCL / Vulkan blurring "filters" are basically no longer actively supported.

Their license is also kind of insane, so I'm curious other than building my own bespoke pipeline if anyone else has suggestions for rust / go high performance video manipulation libraries or sdk's that leverage nVidia GPUs?

Thanks!


  👤 hello_computer Accepted Answer ✓
Unless you are applying a very complex calculation to each frame, I'm not sure this is a win. With most filters, the parallelism of the GPU isn't going to overcome the traffic of shoveling uncompressed rasters back-and forth to the GPU over the PCIe bus (i.e. 500-2000MB/s PCIe vs 1600-3200MB/s DDR4).

👤 speedgoose
I’m not an expert but have you considered GLSL shaders?

I have used them to apply real-time effects on high resolution videos and it worked well and with almost no performance impact using modern GPUs. It wasn’t through a ffmpeg pipeline but it looks to be possible.


👤 pizza
GStreamer is used for this kind of thing, right? I would google around to find out what the jetson nano people use to do on-device lightweight gpu video processing