Introduction to network streaming using GStreamer

From RidgeRun Developer Connection

Revision as of 15:38, 15 March 2011 by Mmadrigal (Talk | contribs)
Jump to:navigation, search



This document is a basic guide to understand how to use GStreamer for network transmissions using the LeopardBoard DM365.

Basics of GStreamer and network streaming

GStreamer is a framework for multimedia applications that allows to you to create multimedia applications. You can find a detailed information about GStreamer in the GStreamer Application Development Manual. Basically GStreamer works by using the elements concept, that is, it uses a group of plugins each one is designed to do a specific function, for example there are plugins that encode/decode video in a specific format.

Each element has one or more sink paths and one or more source paths, these paths allows to input a media flow into an element and keep the flow to others elements when the data is dropout from the source path. There are some elements that only have source paths (called source elements) , they supply data to the pipeline; also there are sink elements which only have sink paths, they act as sink for the data such as a file or the ALSA sound system.

One or more elements that executes a specific function is called a pipeline. A pipeline could be seem as an element by itself with source and sink paths. In Figure 1 is show a simple example of a pipeline, in this case all elements are chained in order to act as a OGG files player.

Figure 1. Simple pipeline example: a OGG player. [1]

It work in a basic idea for pipes, where you can use different element in order to get a functional pipeline. Each element give you a special function such as decode a specific video format or create a file to store data.

A basic video streaming example using the LeopardBoard DM365

Making a video streaming from camera sensor at 720P