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.
New wxWidgets FFmpeg player example application with Face Detection
Re: New wxWidgets FFmpeg player example application with Face Detection
Nice work
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?
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!
Re: New wxWidgets FFmpeg player example application with Face Detection
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.