ffvideo
msdfgen
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ffvideo
-
Ask HN: What apps have you created for your own use?
I wrote an optimized C++ FFMPEG player as a video surveillance system, initially to watch my pets in my yard, and then kept going adding (human) face detection, and then a DL/ML training scaffold, then Live555 re-encoding, then an embedded web browser, then I added tons of comments and turned it into a learning demo project. It's on Github, I still use it to watch my pets: https://github.com/bsenftner/ffvideo
-
Looking for a VMS and some doubts
Are your camera's ONVIF compatible? You can confirm this by running this free open source software: https://sourceforge.net/projects/onvifdm/ If your cameras appear in this software, then they are ONVIF compatible. If they are, then you can use my free and open source windows video player to view as many stream as you want: https://github.com/bsenftner/ffvideo This player is CPU efficient, intended for use when training video based machine learning models, so it leaves processor available for machine training. Used as a pure video player, I've had 32 video windows playing at 30 fps simultaneously using it on an i9 3.2 Ghz workstation.
-
[Question] I'm running facial recognition code however the video and the detection is extremely slow. Is there a way to reduce the lag of the video
In my ffmpeg playback library, be aware it is optimized for computer vision; therefore any audio is ignored and if playing from a file any timing information is ignored as well. When playing real time streams, such as from an IP camera or USB camera that playback is as close to real time as possible. I seem to remember something like under 20 ms per frame latency. However, IP video services expect timing information to be honored, and because mine ignores timing a YouTube video will fly by a few hundred frames per second. Likewise, playing from a local stored video file will playback as fast as your drive delivers frames. It was designed this way to minimize overhead and delay when training algorithms with video. Here's the essential source to the playback lib: https://github.com/bsenftner/ffvideo/tree/master/ffvideolib_src
-
Anyone have experience using modern OpenGL w/ wxWidgets?
Okay, thanks to u/bsenftner I was able to figure this out by looking at his Github repository. Essentially, if you want to use a specific version of OpenGL with wxGLCanvas you have to specify the major and minor versions in the attribute list passed to the constructor of wxGLCanvas.
-
Parallel programming for computer vision applications
If you take a look at my ffvideo github project (linked in my reply above) you can search for instances of std::thread and see they are fairly self contained, with logical data fencing protecting data shared between threads. Here's an example: a video frame exporter that runs in it's own thread, enabled when the end-user wants video frames written to disk: https://github.com/bsenftner/ffvideo/blob/aed42b5a3e856e24b030e71f6d92bcbabf5d6829/ffvideolib_src/ffvideo_frameExporter.h
- USB camera feed lagging when used with openCV
- Ways to create GUI for computer vision software
-
RTSP program
Try this: https://github.com/bsenftner/ffvideo
-
Video + bounding box coupled stream transmission
I do this in C++ here: https://github.com/bsenftner/ffvideo I think I'm using DLib rather than OpenCV, but at this level the difference between the two is negligible.
-
Doable? Cropping and alignment of photo set based on facial landmarks
I have some code doing this in an open source C++ project here: https://github.com/bsenftner/ffvideo Towards the bottom of the README on that page you'll see an image titled "demonstrating tilted head registration" describing what you're trying to do here.
msdfgen
-
Shader Park Is Kinda Neat
This very well explained here https://github.com/Chlumsky/msdfgen and with more details in link d pdf.
Basically, signed distance fields allow high resolution renders from low resolution rasters which represent character shape.
-
SDF font rendering & cuttoff parameter value
No idea how to help you but I will just drop this since it improved the quality for me by 1000 https://github.com/Chlumsky/msdfgen
-
Best approach to render a lot of text.
And that's the complicated state of the art version for 3D perspective. Other versions are even simpler.
-
Leveraging Rust and the GPU to render user interfaces at 120 FPS
This is known as a “multi-channel signed distance field”, or “msdf”.
https://github.com/Chlumsky/msdfgen
-
Font question: What software do you use to create "Signed Distance Field" from OTF or TTF?
I use this, free and has been very good for me https://github.com/Chlumsky/msdfgen
- MelonJS – a fresh and lightweight JavaScript game engine
- What is the maximum number of texture2D's I can have in a single texture array uniform binding?
-
Why are SDF editors not more popular for creating assets?
Distance fields are not slow to render. They don't need a powerful gpu. Valve was already using SDF for textures in 2007 and released a paper about it. MSDF (multi channel signed distance fields) is a popular text libraries for game engine devs that uses distance fields. Distance fields are fast to render in 2D and even 3D. The problem is with everything around it. Lighting, shadows, shading will all require specialized tooling and likely a specialized engine for very little benefit (imo).
-
Vector Graphics on GPU
Signed distance fields only work well for relatively simple characters.
If you have highly detailed characters like Chinese or emojis, you need larger resolution to faithfully represent every detail. One way to get around excessive memory requirements is to store the characters in their default vector forms and only render the required characters on demand, but then you might as well render them at the required pixel resolution and do away with the additional complexity of SDF rendering.
SDFs are still useful though if you have to render text at many different resolutions, for example on signs in computer games, as seen in the original paper https://steamcdn-a.akamaihd.net/apps/valve/2007/SIGGRAPH2007...
In the past, SDFs also had problems with sharp corners, which has been solved in https://github.com/Chlumsky/msdfgen
-
Adventures in Text Rendering: Kerning and Glyph Atlases
MSDFGen looks pretty sweet. https://github.com/Chlumsky/msdfgen
What are some alternatives?
nicegui - Create web-based user interfaces with Python. The nice way.
msdf-atlas-gen - MSDF font atlas generator
Dlib - A toolkit for making real world machine learning and data analysis applications in C++
8SSEDT - Tutorial about 8-points Signed Sequential Euclidean Distance Transform
ffmpeg_shadertoy_filter
vello - An experimental GPU compute-centric 2D renderer.
miniCMS - A document and content managment system for small businesses
troika - A JavaScript framework for interactive 3D and 2D visualizations
fastAPI_TDD_Docker - A simple secure blog & basic CMS built with Python FastAPI, JWT, Postgres, TDD & Docker
nanovg - Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations.
CV-camera-finder - A simple function to find devices on windows using media foundation
msdfgl - OpenGL implementation of the MSDF algorithm