Learning Gstreamer isn’t easy. As there is a limited number of available resources over the Internet so be ready to become frequent user of StackOverflow, Reddit, Quora. (Attention: No images in this post)
Firstly, I think the best way to learn Gstreamer is to use Community. There are many developers who works for companies like RidgeRun, Samsung, Collabora, Igalia. These companies extensively use Gstreamer in projects for thousands of people and they could help to solve some of your issues. For the same purpose you can use Bugs Forum for Gstreamer.
Note: “The developers tend to live in IRC on Freenode, in #gstreamer” (taken from here)
Also there is awesome-gstreamer list on Github. Those are list of my favourite sources that I’ve used during my research. You are welcome to edit this repository 🙂
Now let’s start with Top 5 resources I use to learn Gstreamer.
The best way is to go through official documentation and tutorials. But they are far from real world problems when creating own application. And there is a lack of practical examples on how to solve such problems.
Also, there proposed manuals in PDF format for each release of Gstreamer Library – Manual, Plugin’s writer guide. (I consider those docs hard to learn, but some of ideas may come from it)
Personally, I use those project to learn coding style and approaches.
My favourite source is videos from conferences. Look at those topics (Home surveillance, Video streaming from Drone, Virtual Reality, Computer Vision, Photobooth). Those motivate me most 🙂
Since, I’ve been using Gstreamer Machine Learning I started to look at advantages of fast prototyping with Gstreamer in Python. PyGObject docs are very helpful, almost every C API has it’s analogue in Python with great description.
You start to understand Gstreamer when you understand how works it’s smallest pieces. Profiling and debugging Gstreamer Pipelines is the hardest and most time consuming task. But developers from RidgeRun made it much simpler.
Learning from other’s projects is one of my favourite approaches to learn any framework. In previous article “Top 5 Coolest projects with Gstreamer” you can find links to project’s code and docs. You even can contribute to some of them (for example, look at discovering Gravitational Waves project).