WHAT IT IS ---------- This is GStreamer, a framework for streaming media. This package is in the 0.9.x series. This means that this is a development series leading up to a stable 0.10.x series. You have been warned. OVERVIEW -------- GStreamer is split up over a number of modules, tarballs and packages: - gstreamer: The core. It contains the main library and header files, as well as some fundamental elements. Every GStreamer project needs at least this installed. - gst-plugins-base: A base set of plugins. This set is the set we actively keep synchronized with the core and are also meant to serve as examples on how to write GStreamer elements. It also contains a number of base classes for writing GStreamer elements. INSTALLING FROM PACKAGES ------------------------ You should always prefer installing from packages first. GStreamer is well-maintained for a number of distributions, including Fedora, Debian, Ubuntu, Mandrake, Gentoo, ... Only in cases where you: - want to hack on GStreamer - want to verify that a bug has been fixed - do not have a sane distribution should you choose to build from source tarballs or CVS. Find more information about the various packages at http://gstreamer.freedesktop.org/download/ COMPILING FROM SOURCE TARBALLS ------------------------------ - again, make sure that you really need to install from source ! If GStreamer is one of your first projects ever that you build from source, consider taking on an easier project. - check output of ./configure --help to see if any options apply to you - run ./configure make to build GStreamer. - if you want to install it (not required), run make install - You should create a registry for things to work. If you ran make install in the previous step, run gst-register as root. If you didn't install, run tools/gst-register as a normal user. - try out a simple test: gst-launch fakesrc num_buffers=5 ! fakesink (If you didn't install GStreamer, again prefix gst-launch with tools/) If it outputs a bunch of messages from fakesrc and fakesink, everything is ok. - After this, you're ready to install gst-plugins, which will provide the functionality you're probably looking for by now, so go on and read that README. COMPILING FROM CVS ------------------ When building from CVS sources, you will need to run autogen.sh to generate the build system files. You will need a set of additional tools typical for building from CVS, including: - autoconf - automake - libtool autogen.sh will check for recent enough versions and complain if you don't have them. You can also specify specific versions of automake and autoconf with --with-automake and --with-autoconf Check autogen.sh options by running autogen.sh --help autogen.sh can pass on arguments to configure - you just need to separate them from autogen.sh with -- between the two. prefix has been added to autogen.sh but will be passed on to configure because some build scripts like that. When you have done this once, you can use autoregen.sh to re-autogen with the last passed options as a handy shortcut. Use it. After the autogen.sh stage, you can follow the directions listed in "COMPILING FROM SOURCE" You can also run your whole cvs stack uninstalled. The script in the gstreamer module /docs/faq/gst-uninstalled) is helpful in setting up your environment for this. PLUG-IN DEPENDENCIES AND LICENSES --------------------------------- GStreamer is developed under the terms of the LGPL (see LICENSE file for details). Some of our plug-ins however rely on libraries which are available under other licenses. This means that if you are using an application which has a non-GPL compatible license (for instance a closed-source application) with GStreamer, you have to make sure not to use GPL-linked plug-ins. When using GPL-linked plug-ins, GStreamer is for all practical reasons under the GPL itself. HISTORY ------- The fundamental design comes from the video pipeline at Oregon Graduate Institute, as well as some ideas from DirectMedia. It's based on plug-ins that will provide the various codec and other functionality. The interface hopefully is generic enough for various companies (ahem, Apple) to release binary codecs for Linux, until such time as they get a clue and release the source.