# GStD
Source: [https://docs.qualcomm.com/doc/80-70015-50/topic/gstreamer-daemon.html](https://docs.qualcomm.com/doc/80-70015-50/topic/gstreamer-daemon.html)
GStreamer daemon (GStD) is a framework for controlling audio-video streaming using an
interprocess communication protocol (IPC).
- It is an enhancement to the `gst-launch` tool.
- It enables you to create a pipeline, and control the settings such as play and pause
when the pipeline is active.
GStD deploys in two parts:
- **Daemon** starts the process in the background.
- **Control application**, which can be written in any language, can run on the
same processor or a separate machine.
## GStD project
The GStD project includes the core, the GstdClient, and IPC interfaces.
GStD provides core and IPC end point. | GStD design components | Description |
| --- | --- |
| Core | Holds the current state of the GStreamer daemon pipelines along
with their respective states, elements in each pipeline, and
properties of each element, and so on. |
| IPC |
- Allows client applications to change the GStD core state
using an IPC mechanism such as TCP, HTTP, DBus, sockets, and
so on.
- Enables custom applications to modify the state of the GStD
core. For example, IPC can be used to do the following:
- Create a pipeline.
- Set the state to play.
- Change an element property while the pipeline is
running.
|
The custom application provides view and client logic. | Custom application design | Description |
| --- | --- |
| View |
- Provides visual feedback of the GStD core state.
- Represents a graphical user interface, a web page, a
command-line application.
- Enables you to see the view that is updated by the
model.
|
| Client logic |
- Provides the custom functionality of the application.
- Enables you to use IPC to modify the GStD core or model, and
receive feedback through the GUI/view.
|
A GStreamer client (GstdClient) is distributed with the project. It is a command-line
based application that communicates with GStD through TCP.
- GstdClient allows you to create and start pipelines.
- Unlike gst-launch, GstdClient allows you to have several active pipelines with
the ability to control the pipeline and receive feedback after the pipeline has
been created.
For more information on GStD, see [https://developer.ridgerun.com/wiki/index.php/GStreamer_Daemon](https://developer.ridgerun.com/wiki/index.php/GStreamer_Daemon).
## Run GStD
1. Start GStD:
gstd
# This will start the process in the background. Using 'gstd &' is not required becauses gstd daemonizes itself by default.
# To run gstd in foreground
gstd -D
# To view a list of all supported options,
gstd --help-all
Copy to clipboard
2. Start GstdClient:
gst-client
# gstd prompt will appear like,
# gstd>
# In the prompt, we can interact with the server creating/playing pipelines, etc.
# To list all the possible commands
gstd> help
# Alternatively, instead of opening gstd prompt, can give the command as argument to gst-client
gst-client list-pipelines
Copy to clipboard
- **[Local use cases](https://docs.qualcomm.com/doc/80-70015-50/topic/local-use-cases.html)**
Control the GStD framework using a control application that is running on same processor.
- **[TCP use cases](https://docs.qualcomm.com/doc/80-70015-50/topic/tcp-use-cases.html)**
Control the GStD framework using a control application that is remotely interfacing through TCP.
- **[HTTP use cases](https://docs.qualcomm.com/doc/80-70015-50/topic/run-http-use-cases.html)**
Control the GStD framework using a control application that is remotely interfacing through HTTP.
**Parent Topic:** [GStreamer utilities](https://docs.qualcomm.com/doc/80-70015-50/topic/im-sdk-base-uitilities.html)
Last Published: Oct 27, 2025
[Previous Topic
GSt debugging tools](https://docs.qualcomm.com/bundle/publicresource/80-70015-50/topics/imsdk_debug_gst.md) [Next Topic
Local use cases](https://docs.qualcomm.com/bundle/publicresource/80-70015-50/topics/local-use-cases.md)