Gstreamer Example

0, follow the instructions below: Find the install directory of the GStreamer plug-ins. I would like to know if it's possible to use GStreamer's library to capture video from this camera and transfer the frames to OpenCV for a video processing. Orange Box Ceo 8,498,537 views. Your first application. To see GStreamer-0. Example Windows. For instance Debian stable doesn't ship > gstreamer0. The following examples show how you can perform JPEG decode on Gstreamer-1. To achieve synchronization among multiple sinks (for example and audio and a video sink) a global clock is used. gst-openmax is a GStreamer plug-in that allows communication with OpenMAX IL components. Some of the pipelines may need modification for things such as file names, ip addresses, etc. gStreamer is a multimedia tool that connects a sequence of elements through a pipeline. Here is an example of RTP network audio with gstreamer. Unlike the jerky MJPG-Streamer, the GStreamer pipeline has <. I've done nothing to tell petalinux that I want to use the VCU so I don't know why that is being included in the build. 0) and they're being used in parallel (they should be treated as separate). Developers can map sets of GStreamer plugins from the DeepStream SDK to form a complete solution. My first target is to create a simple rtp stream of h264 video between two devices. There are several ways to achieve this on Linux: Video Acceleration API (VA-API) is a specification and open source library to provide both hardware accelerated video encoding and decoding, developed by Intel. All structured data from the main, Property, Lexeme, and EntitySchema namespaces is available under the Creative Commons CC0 License; text in the other namespaces is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply. Basic tutorial 10: GStreamer tools Goal. The code posted here is derived from this playbin example. After some research (read googling for play video using gstreamer), I concluded that gstreamer-appsrc is the way to go. This project is a collaboration between Nokia, NXP, Collabora, STMicroelectronics, Texas Instruments, and the open source community. My first target is to create a simple rtp stream of h264 video between two devices. This is a computer translation of the original content. Read and Write Video Frames in Python Using FFMPEG Sep 27 th , 2013 | Comments This article shows how easy it is to read or write video frames with a few lines of Python, by calling the external software FFMPEG through pipes. GStreamer async. I read a little bit in the configure script code and at the part where the "Configure summary" is generated I found nothing where it is possible to add additional Packages (for example found by pkg-config) so is it even possible that the configure script finds gstreamer or is it even searching?. GStreamer C# Binding Update As many may know, there was once a valiant attempt to bind GStreamer in C# a couple of years ago against 0. gst-inspect-1. In the initial release, the documentation indicated Gstreamer 0. It works together with the GStreamer multimedia framework to give developers a powerfull and flexible set of tools for quickly assembling applications which needs to handle non-linear multimedia editing. Meanwhile on the server, Gstreamer is waiting to pack everything from RTP to RTMP. The OpenCV Video I/O module is a set of classes and functions to read and write video or images sequence. gStreamer is a multimedia tool that connects a sequence of elements through a pipeline. You can help. 10 content removed. Discover the dynamics of GStreamer MPEG2 TS pipelines at. How to quickly build a pipeline from a textual description using gst_parse_launch(). 10) and as a new feature metasrc allows sending metadata periodically and supports metadata with date-time format. The OpenCV Video I/O module is a set of classes and functions to read and write video or images sequence. Use of GStreamer version 1. 0 is the main command-line interface to GStreamer, available by default. GStreamer pipeline GStreamer pipeline example: Rodrigo Costa (TeleM´ıdia Lab. /gstreamer-discoverer. This example is in C, but GStreamer also has bindings for Rust, Python, Java, C#, Vala, and so on. The parameter-sets value is just an example of how the udpsink caps must be copied and changed for. Hi, I am new to gstreamer, i downloaded the package and compiled it sucessfully but while running a sample application i am getting some errors. An audio test source. GStreamer is a library for constructing graphs of media-handling components. Starting with an example, a simple video player, we introduce the main concepts of GStreamer’s basic C API and implement them over the initial example incrementally, so that at the end of the. My first impressions were tiny, super cheap camera. A protip by christurnbull about ffmpeg, raspberry pi, and gstreamer. GStreamer is a pipeline-based multimedia framework written in the C programming language with the type system based on GObject. gboolean gst_caps_is_fixed (const GstCaps *caps); Fixed GstCaps describe exactly one format, that is, they have exactly one structure, and each field in the structure describes a fixed type. For example, mpegtsmux accepts video and audio in separate sinks and produces MPEG Transport Stream (MPEG TS) exposing it as a source. Examples Installation or Setup. I have GUVCview and V4L installed. See figure 1 for details. It is an example GStreamer application that, you can pass in a custom pipeline to create an RTSP server out of, but extends the usage quite a bit in order to showcase GStreamer call-backs, among other things. Webcam streaming using gstreamer over UDP. How to create a 3D Terrain with Google Maps and height maps in Photoshop - 3D Map Generator Terrain - Duration: 20:32. GStreamer mailing list, where development discussions occur. 3 was release, the release notes stated that Gstreamer 1. For eg: I have a custom hardware interfaced to imx6, that outputs data at 60Hz. The GStreamer library should be initialized with gst_init() before it can be used. 0 appsrc sample example. Create a gstreamer pipeline and run it using gst-launch command. ) GStreamer April 16, 2015 8 / 22 9. Here's an example of GStreamer call capturing video and audio from webcam and publishing RTMP stream to server. Is there any appsrc pipline sample code is available which can solve my problem. 0 - Simple command line playback testing tool SYNOPSIS gst-play-1. Basic tutorial 10: GStreamer tools Goal. mzensius : Minor updates to video encoder features. Example Pipeline Here is an example setup for a GStreamer pipeline I am using in my first application (click to enlarge): You can see the toplevel pipeline, a bin for each of the actual sound files to be played and a number of elements making up the stream chain for file reading, a stream adder, and in the end the sound output alsasink. There are also some example coding distributed with the PyGST source which you may browse at the gst-python git repository. Gstreamer plugin development 1. To see the collection of prior postings to the list, visit the gstreamer-devel Archives. Use the gst-element-factory-find and gst-element-factory-create functions to create element instances or use gst-element-factory-make as a convenient shortcut. Orange Box Ceo 7,012,496 views. GStreamer Python Bindings is a set of Python bindings for GStreamer, using the same system as PyGTK. Thanks, Leonardo. Elements can be grouped into bins, which can be further aggregated, thus forming a hierarchical graph. The names of the image files are listed as follows. sdp files compatible string. The first example is a GTK application, using the gtkglsink (or gtksink if no GL support is available) GStreamer elements to show a test video in a GTK window and the current playback position in a GTK label below the video. 3 was release, the release notes stated that Gstreamer 1. Gstreamer Basics 1. example appsrc for gstreamer 1. Hi , I am trying to test the streaming of mpeg4 encoded over udp. working on target memory; a plugin can, for example, write directly to extended cards’ memory space or X server, allowing hardware acceleration by using specialized plugins [4]. Hi, I am new to gstreamer, i downloaded the package and compiled it sucessfully but while running a sample application i am getting some errors. gst-python git repository. For example, in 1. Gstreamer Options. So, gstreamer can provide an excellent low latency video link, which is great if you are techy enough to set it up at both ends, but its no good if you want to directly stream so that Joe public can see the video on a web site for instance. Most users will just think "totem-gstreamer sucks", "rhythmbox sucks" or maybe "GStreamer-based players suck". Gstreamer-Android-example has the following Java source files. DevOps Automation. Refer to Example 4. GStreamer RTSP to WebBrowser. Both applications need to set environment variable QT_GSTREAMER_CAMERABIN_VIDEOSRC to use imxv4l2src If camera device is other than /dev/video0, set environment variable QT_GSTREAMER_CAMERABIN_VIDEOSRC_DEVICE to the right camera device, such as "/dev/video1" , for example: export QT_GSTREAMER_CAMERABIN_VIDEOSRC=imxv4l2src export DISPLAY=:0. Then, the files move on to an nginx media server for multicasting and finally into a web browser with TCP. GStreamer examples. Create a GStreamer powered Java media player For something to do I decided to see if I could create a very simple Java media player. This page will show several example pipelines for getting video through our boards using the gstreamer-imx set of plugins. Getting gStreamer¶ Now we will get into the main focus of this tutorial, gStreamer. Our mission is to put the power of computing and digital making into the hands of people all over the world. overlay (or play an )video over an image as background - using gstreamer Tag: cmd , gstreamer I am working on a project where I need to display a video with "alpha keying" a region of interest based on color and run it over an image so the image under the region of interest is visible over the video. Gstreamer Plugin Development Session VII 2. Element • Core of Gstreamer • Object derived from GstElement • Source elements provides data to stream • Filter elements acts on a data in stream • Sink elements consumes data of stream. 0 API which all v1. 265 encoder. Thanks, Bruno. 35-2026-geaaf30e. For the past week I have been trying to get my Logitech c920 to act as my default webcam. Since this seemed pretty straightforward, I thought I'd post it here. GStreamer C# Binding Update As many may know, there was once a valiant attempt to bind GStreamer in C# a couple of years ago against 0. Optionally, serde trait implementations for the Serialize and Deserialize trait can be enabled for various fundamental GStreamer types, including caps, buffers, events, messages and tag lists. [email protected] On the TX2 there is gstreamer0. 14 and Ubuntu 16 has Gstreamer 1. During the time number of desired features and configuration options grow, so application is morphing into gstreamer viewer. 0) and they're being used in parallel (they should be treated as separate). For example, mpegtsmux accepts video and audio in separate sinks and produces MPEG Transport Stream (MPEG TS) exposing it as a source. Despite everything seeming to be in order, it's just not working. (Composite going into > > capture device, into computer). 0 "GstOverlay and Qt" but the video is not displayed in my widget I play the same video with the same pipeline with gst-launch but in my program with Qt the video is not displayed (Qt5. To build the stream, gstreamer has been chosen as the best open source multimedia framework. The GStreamer app works with 'plugins'. Select Archive Format. Examples of non-fixed types are GST_TYPE_INT_RANGE and GST_TYPE_LIST. 1 port=5000. After you install the gstreamer you may be tempted to run the examples. compilation instructions. The main part of the tutorial covers how that is done. 0 on the platform with the following commands: sudo add-apt-repository universe sudo add-apt-repository multiverse sudo apt-get update. Libav is free software licensed under the LGPL or GPL depending on your choice of configuration options. The samples. The receiver side i can able to view stream on vlc or ffmpeg or mplayer. Refer to this Gstreamer article for more information on downloading and building TI Gstreamer elements. Stack Exchange network consists of 175 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers. gstreamer send and receive h264 rtp stream. It reads anything GStreamer can read (Ogg Vorbis, AAC, MP3, FLAC, WAV, AVI, MPEG, MOV. Let's say you are developing a video phone with audio and video. The applications it supports range from simple Ogg/Vorbis playback, audio/video streaming to complex audio (mixing) and video (non-linear editing) processing. The audio output would then have one pad, through which data is pushed in which has to be played back using the sound card. During the time number of desired features and configuration options grow, so application is morphing into gstreamer viewer. Could you give me some example?. You can vote up the examples you like and your votes will be used in our system to generate more good examples. Introduction to gstreamer gstreamer is a streaming media framework that enables applications to share a common set of plugins for things like video encoding and decoding, audio encoding and decoding, audio and video filters, audio visualisation, web streaming and anything else that streams in real-time or otherwise. For this to work, the owner of the object needs to implement the org. To see the collection of prior postings to the list, visit the gstreamer-devel Archives. Gstreamer is constructed using a pipes and filter architecture. As I only need the the latency I just wanted to create one simple pipeline for audio and video. I am trying to figure out, if I can trigger a gstreamer pipeline, based on an external signal. Prints out interfaces and property values for a remote object. To run GStreamer with the Kinesis Video Streams Producer SDK element as a sink, execute the gst-launch-1. working on target memory; a plugin can, for example, write directly to extended cards’ memory space or X server, allowing hardware acceleration by using specialized plugins [4]. (If they aren't there, check the numpy package) Install both gstreamer-runtime and gstreamer-development package in the…. 10 is not available. If you want to learn how to use GStreamer, Jan Schmidt's tutorial from LCA 2018 is a good place to start. You can vote up the examples you like and your votes will be used in our system to generate more good examples. However, this binding was never complete and had a number of problems, but it was nonetheless promising. Run the GStreamer Example. Elements receive input and produce output. What Is Amazon Kinesis Video Streams? Amazon Kinesis Video Streams is a fully managed AWS service that you can use to stream live video from devices to the AWS Cloud, or build applications for real-time video processing or batch-oriented video analytics. Note: Display detailed information on omxh264enc or omxh265enc encoder. GStreamer-based applications, what features they provide (and miss), so people can use GStreamer in their own applications too. gstreamer, version 0. Who am I ? GStreamer at Collabora since 2007 Example: A RTSP to MP4 file segments. Every plugin used in the pipeline is an element. 4 in a few weeks, OpenGL will be a first-class citizen in GStreamer pipelines. 14 and Ubuntu 16 has Gstreamer 1. In Gstreamer events can transfer up and down the pipeline. We will be defaulting to the older version (GStreamer-. You need to edit the sources. Above figure shows an example GStreamer pipeline for MCN Streaming sender. 0-tools \ gstreamer1. These events can be used to pause the pipeline for example but it can also be used for exchanging the capabilities. If you use Libav or its constituent libraries, you must adhere to the terms of the license in question. The example pipeline shown in the figure below demonstrates the demuxing and playback of a transport stream. There are different versions and sets of plugins available. The codec string with *'H265', nothing gets written This will work with GStreamer:. - John U Dec 7 '12 at 12:04. v4l2src ! xvimagesink. There are multiple versions of gstreamer (mainly 0. How to sit back and relax, while GStreamer takes care of everything, using gst_element_get_bus() and gst_bus_timed_pop_filtered(). The problem comes when downstream does not handle this meta, for example, appsink. It includes many low-level libraries for encoding. Other answers are all pretty good, but I just want to clarify a bit more: FFmpeg is NOT an independent program only. It reads anything GStreamer can read (Ogg Vorbis, AAC, MP3, FLAC, WAV, AVI, MPEG, MOV. Is there an example on how I can send a video from Jetson TX2 to another computer via ethernet using GStreamer? rishabh. The theory was that GStreamer was too high level and would never be able to provide accurate enough delay information for any canceller to work. I am trying to figure out, if I can trigger a gstreamer pipeline, based on an external signal. The following code example shows you how to create a GstFileSrc element. Could you maybe give an example over tcp? This comment has. Webcam streaming using gstreamer over UDP. 4 in the Raspian repository is to old (had problems with G. 0-1 Use espeak as a sound source for gstreamer The second example (I didnt. 90) GStreamer core development files adep: libqt5opengl5-dev Qt 5 OpenGL library development files adep: pkg-config manage compile and link flags for libraries also a virtual package provided by pkgconf. the Qt Multimedia example is working. Hi I have made a program based on the example of gstreamer-1. Configuration Setup Howdy to start when needed. GStreamer async. GStreamer comes with a set of tools which range from handy to absolutely essential. It has important applications in networking, bioinformatics, software engineering, database and web design, machine learning, and in visual interfaces for other technical domains. I'm very new to GStreamer and not too > > certain where to start with this. Examples Installation or Setup. The modification is done atomically (so this is useful for ensuring thread safety in some cases), and the reference counts are updated appropriately (the old buffer is unreffed, the new is reffed). Very simple example of appsrc [appsrc -> fakesink]. Setting Up The Raspberry Pi To Use gstreamer. Packaging a video app with gstreamer¶ Following we’ll slightly modify the example above to package a app that uses gstreamer for video. During the last couple of months I’ve been learning the Meson build system. In > particular I like the seperation of filters from the sinks and sources. To play webcam using gstreamer, we will need to use v4l2 driver input (v4l2src) $ gst-launch-. > I'm new to this list and in fact to gstreamer as a whole. 0 is recommended for development. 0 "GstOverlay and Qt" but the video is not displayed in my widget I play the same video with the same pipeline with gst-launch but in my program with Qt the video is not displayed (Qt5. The samples. This is a file from the Wikimedia Commons. You have probably noticed by now that working with GStreamer and Python is quite difficult, mainly because of the lack of real documentation and examples. GStreamer library for creating audio/video editors 20 community/gst-plugins-espeak 0. You should pass a pointer to the main argc and argv variables so that GStreamer can process its own command line options, as shown in the following example. Applicati. 0 usage for features supported by the NVIDIA accelerated H. This post is specifically about the plugins. GStreamer i. 2 : 12 Jan. GStreamer allows a programmer to create a variety of media-handling components, including simple audio playback, audio and video playback, recording, streaming and editing. Prerequisite Set the nvmedia plugins rank as primary by setting the environmental variable GST_NVMEDIA_PLUGIN_RANK to PRIMARY. It is a server written in C which can stream any GStreamer supported file over RTSP using any of the wide range of RTP formats supported by GStreamer. To make this transformation usable in Pitivi, we need some transformation interface. The main part of the tutorial covers how that is done. Most GStreamer examples found online are either for Linux or for gstreamer 0. A plugin comprises of elements that can do work on a media stream. Information from its description page there is shown below. GStreamer examples. GStreamer is a library for constructing graphs of media-handling components. The plugins are provided by gstreamer-vaapi. Its low light capabilities are not great but I can live with that. The next tutorial will keep introducing more basic GStreamer elements, and show you how to build a pipeline manually. There are also many examples for reference. It is supported on gstreamer above 1. GStreamer Element Parameter Reference To send video to the Amazon Kinesis Video Streams Producer SDK, you specify kvssink as the sink, or final destination of the pipeline. In > particular I like the seperation of filters from the sinks and sources. 0 also accepts the following options that are common to all GStreamer applications:--gst-version. The same with gst-proxy. gstreamer is a development framework not a media player and there isn't a way to stream so that common players such as VLC can display the stream (without users having to. 10 anymore, because they > can be mutually exclusive. DevOps Services. Refer to this Gstreamer article for more information on downloading and building TI Gstreamer elements. de Abstract GStreamer is mostly known for its use in media players. Follow their code on GitHub. This establishes a clear link between 01 and the project, and help to have a stronger presence in all Internet. 10 on the target platform with the following command:. These events can be used to pause the pipeline for example but it can also be used for exchanging the capabilities. Could you give me some example?. The use of UDP in most of them may result in network collapse due to lack of congestion control. 35 version to a 1. This page was last edited on 21 January 2016, at 10:16. Found 66 matching packages. JACK Audio Connection Kit (or JACK; a recursive acronym) is a professional sound server daemon that provides real-time, low-latency connections for both audio and MIDI data between applications that implement its API. Switch branch/tag. This page will show several example pipelines for getting video through our boards using the gstreamer-imx set of plugins. Elements communicate by means of pads. After you install the gstreamer you may be tempted to run the examples. I want to stream live camera video of TX1 using gstreamer. 1 : 21 Nov 2016. Shared components used by Firefox and other Mozilla software, including handling of Web content; Gecko, HTML, CSS, layout, DOM, scripts, images, networking, etc. Now it's time to look at compositing between two or more video streams, also called picture in picture. The GStreamer module needs a control channel to communicate with snowmix. Last update. Create a folder somewhere called VideoPlayer and on the command line change your current directory to that folder and do:. de Abstract GStreamer is mostly known for its use in media players. GStreamer pipeline example: Input from File. Developers can map sets of GStreamer plugins from the DeepStream SDK to form a complete solution. The following is an example of a GStreamer pipeline for video playback using decodebin. 0, follow the instructions below: Find the install directory of the GStreamer plug-ins. I would like to use GStreamer for the video management. The GStreamer backend now accepts relative paths. GStreamer could define it how it likes) > - RTCP [RTP Control Protocol, used for delivery monitoring] has > 64-bit NTP timestamps, and is used to report back the network delay and > packet loss. For example libcanberra loads GStreamer itself usually and is also loaded into Firefox. gstreamer-1. Once the echo canceller state is created, audio can be processed by: speex_echo_cancellation(echo_state, input_frame, echo_frame, output_frame);. gst-rtsp-server is a library on top of GStreamer for building an RTSP server There are some examples in the examples/ directory and more comprehensive documentation in docs/README. It is an example GStreamer application that, you can pass in a custom pipeline to create an RTSP server out of, but extends the usage quite a bit in order to showcase GStreamer call-backs, among other things. Using OpenMAX Integration Layer with GStreamer Page 10 of 21 White paper STMicroelectronics 4. Gstreamer plugin development 1. Ask Question replacing udpsink with autovideosink for example I can see the webcam just fine - David Benko Oct 6 '11. Video Decode Using gst-omx The following examples show how you can perform video decode using the gst-omx. Today we have learned: How to initialize GStreamer using gst_init(). GStreamer pipeline GStreamer pipeline example: Rodrigo Costa (TeleM´ıdia Lab. 0-dev (>= 1. The names of the image files are listed as follows. It is a fully open-source program to provide you, the developer, a working example of a solution to some commonly asked questions. Travis-CI current status: This project aims to show how to do some things with GStreamer. The audio output would then have one pad, through which data is pushed in which has to be played back using the sound card. Switch branch/tag. For example, we can replace the example under the first example with the following:. I'm writing my own application where in I read from a 1920x1080 YUV file, resize it into different dimensions namely 1280x720, 800x480. I read a little bit in the configure script code and at the part where the "Configure summary" is generated I found nothing where it is possible to add additional Packages (for example found by pkg-config) so is it even possible that the configure script finds gstreamer or is it even searching?. These were modified somewhat, since this is retroactively documented for my own benefit. GStreamer is a library for constructing graphs of media-handling components. The GStreamer backend now accepts relative paths. For GStreamer Core 1. 4, released on 2014/11/10. It describes all aspects of a simple GStreamer application, including initializing libraries, creating elements, packing elements together in a pipeline and playing this pipeline. JACK Audio Connection Kit (or JACK; a recursive acronym) is a professional sound server daemon that provides real-time, low-latency connections for both audio and MIDI data between applications that implement its API. Generating GStreamer Pipeline Graphs. Every element has its own set of caps defined for src pad and sink pad. The code posted here is derived from this playbin example. Then, the user expect the “normal” values for those variable, but in the case of GStreamer VA-API with a hardware based driver, when the user displays the frame, it is shown corrupted. Thread-Sharing GStreamer Elements. To install Gstreamer-1. What this means is that the PocketSphinx decoder can be treated as an element in a media processing pipeline, specifically, one which filters audio into text. You can help. Accelerated GStreamer User Guide DA_07303 | 7. gstreamer-0. GStreamer GitHub mirrors has 22 repositories available. These functionalities are mostly related to my Digital Video Transmission experiments. Causes GStreamer to abort if a warning message occurs. We will be defaulting to the older version (GStreamer-. Example Windows. x releases should follow. retitle 742729 RFP: gstreamer-sharp-1. I looked on the internet and most of the articles saying about Gstreamer. But entrans is a bit smarter: it provides partly-automated composition of GStreamer pipelines it allows you to cut streams, for example to capture for a predefined duration. Each element is provided by a plug-in. GStreamer example applications. I have apache serving the following example page: (the "capture agent") that uses > gstreamer,. Let's say you are developing a video phone with audio and video. A GstElementfactory can be added to a as it is also a. Target Device. In general, GStreamer provides a superset of the functionality found in OMX IL, but. What’s Gstreamer § GStreamer is, in short, an engine used by other applications to play media files § In more detail it is a framework based on graphs of filters which operate on media data. Gstreamer plugin development 1. So I create simple. Description. I have a program written in C that uses x264enc and some other stuff and after the upgrade to Ubuntu 10. 10 support is deprecated in Linux for Tegra (L4T) Release 24. To provide more information about a Project, an external dedicated Website is created. We hope its brevity serves as an example of how powerful this framework is! Let's recap a bit. There are also some example coding distributed with the PyGST source which you may browse at the gst-python git repository. DevOps Services. Advertiser Disclosure: Some of the products that appear on this site are from companies from which QuinStreet receives compensation. Essentially, GStreamer plugins are the main element of applications. 0) and they're being used in parallel (they should be treated as separate). I looked on the internet and most of the articles saying about Gstreamer. Every element has its own set of caps defined for src pad and sink pad. There are several ways to achieve this on Linux: Video Acceleration API (VA-API) is a specification and open source library to provide both hardware accelerated video encoding and decoding, developed by Intel. Files for kivy-deps. Since my personal interests in Open Source Software are around GLib and GStreamer, and they both have Meson and Autotools build systems in parallel, I’ve set as personal goal to list (and try to fix) blocker bugs preventing from switching them to Meson-only. sudo apt-get install gstreamer0. For example, if the input is 1920x1080i 30 frames per second (or 60 fields per second) - the deiscaler element outputs 60 frames per second. -plugins-base \ gstreamer1. The code posted here is derived from this playbin example. Tools: gst-launch. It is an example GStreamer application that, you can pass in a custom pipeline to create an RTSP server out of, but extends the usage quite a bit in order to showcase GStreamer call-backs, among other things.