# GStreamer daemon
Source: [https://docs.qualcomm.com/doc/80-70014-50/topic/gstreamer-daemon.html](https://docs.qualcomm.com/doc/80-70014-50/topic/gstreamer-daemon.html)
GStreamer daemon (GStD) is a process that simplifies the task of creating custom
GStreamer applications. It also eliminates the boilerplate code that needed to write
applications from scratch.
GStD runs independently and exposes a public interface over a variety of IPC mechanisms
for other processes to communicate with and control the daemon. The design behind GStD
follows a model-view-controller (MVC) architecture.
## 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 state of the GStD
core using an interprocess communication 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 new 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 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-70014-50/topic/local-use-cases.html)**
- **[TCP use cases](https://docs.qualcomm.com/doc/80-70014-50/topic/tcp-use-cases.html)**
- **[HTTP use cases](https://docs.qualcomm.com/doc/80-70014-50/topic/run-http-use-cases.html)**
Last Published: Oct 27, 2025
[Previous Topic
Efficient data/control flow for ML pipelines](https://docs.qualcomm.com/bundle/publicresource/80-70014-50/topics/efficient-data-control-flow.md) [Next Topic
Local use cases](https://docs.qualcomm.com/bundle/publicresource/80-70014-50/topics/local-use-cases.md)