New wxWidgets FFmpeg player example application with Face Detection

If you have a cool piece of software to share, but you are not hosting it officially yet, please dump it in here. If you have code snippets that are useful, please donate!
Post Reply
User avatar
bsenftner
Experienced Solver
Experienced Solver
Posts: 85
Joined: Thu May 26, 2016 9:19 pm

New wxWidgets FFmpeg player example application with Face Detection

Post by bsenftner »

I put a project I've been doing on Github yesterday:

https://github.com/bsenftner/ffvideo

It is an example wxWidgets application with:
* a custom FFmpeg library supporting media files, USB camera, IP cameras and IP video services,
* Multi-threading, multiple simultaneous video windows, with no audio processing nor media playback delays,
* it is integrated with Dlib and has an example of real time Face Detection and Facial Feature Recovery,
* the AVFilterGraph is exposed and it is very easy to experiment with video filters,
* the FFmpeg wrapper can be configured to export video frames to disk...
* ...and the application captures them and can optionally encode them to MP4s and .264 Elementary Streams,
* the idea is a lowest possible CPU/GPU overhead to leave maximum processor and resources for video analysis, experiments, and model training,
* the project is 80% of the requirements for a state of the art Video Surveillance System,
* it's a Visual Studio 2019 IDE project with the integration details for your dev environment documented
* it plays video fast - media files on an SSD can play up to 700 fps...

The application is at version 0.9, is in beta, and has some instability issues yet.
The primary issues being:
* how USB cameras initialize impact other non-USB cameras if the play request is simultaneous across USB and non-USB cameras
* re-plays are unstable, something is not being cleaned up and that needs to be fixed. An earlier version of the FFmpeg wrapper had no issues with replays, so it is just some debugging time to figure that out...

If you're interested in learning how to program FFmpeg, now to program video in wxWidgets, how to embed a web browser in wxWidgets (I use that for the application's help) or want to see an example of a moderately professional application's architecture: this is such a project. It has documentation explaining how, what and why in key places, and I'll be adding more. This is an educational project intended to help fellow developers.
User avatar
doublemax
Moderator
Moderator
Posts: 19159
Joined: Fri Apr 21, 2006 8:03 pm
Location: $FCE2

Re: New wxWidgets FFmpeg player example application with Face Detection

Post by doublemax »

Nice work =D>

I'm a little but confused about the licence terms though. Is there any combination of configure options that allows the use in a statically linked commercial application? And if yes, which features will be missing?
Use the source, Luke!
User avatar
bsenftner
Experienced Solver
Experienced Solver
Posts: 85
Joined: Thu May 26, 2016 9:19 pm

Re: New wxWidgets FFmpeg player example application with Face Detection

Post by bsenftner »

The face detection part cannot be used in a commercial application, but the rest is open and free to use. This project is intended for learning; the Dlib face detection data set is for noncommercial learning purposes only. But the ffmpeg, Boost, wxWidgets, image libs and such are fine to use in commercial projects.
Post Reply