I recently played with GStreamer for the first time. I'd heard plenty of good stuff about the framework but had never spent any time developing with it.
In a nutshell, it's very powerful and very cool. Complex multimedia apps can be created with very little code. You link together small blocks to form a useful chain of functionality. The Python API is quite nice because the Python bindings are well supported by the developers.
The big problem is lack of documentation. The best starting point I found was Jono Bacon's excellent Getting Started with GStreamer with Python. After that, the C based docs and the
gst-inspect tool are probably your best friends. They make sense once you get your head around the general architecture.
In the interest of expanding the amount of reference information available for GStreamer I've put the results of a few hours of messing around online. It's a simple program that illustrates some interesting stuff using GStreamer. Despite the low line-count, what it does is somewhat impressive; it takes 2 arbitrary audio files and plays them over the top of each mixing in real-time. More details and the download link can be found on my code page.