An open source alternative to Nvidia DeepStream
Pipeless vs Nvidia DeepStream
Miguel A. Cabrera Minagorri2023-09-29
This week I attended the YOLO Vision 2023 event and a common question when talking about Pipeless was, "what are the differences between Pipeless and Nvidia DeepStream?" So,
today, I am going to elaborate on them.

If you don’t have time to read the entire article, you can directly check the conclusions table at the end.

What is a computer vision application?
A computer vision application is a software that takes a video stream as input, analyzes the video frame by
frame (usually using a machine learning model) and produces an output. The output can be as simple as a new
video stream with some modifications, like when you see bounding boxes, or more complex, like telling a robot what to do.
When you create a computer vision application you usually require a multimedia pipeline to handle the streams, and
it is a common approach to use Gstreamer.
What is GStreamer?
To provide some context, GStreamer is a framework to create media streaming applications. It is widely adopted
and allows to create really complex multimedia pipelines.
GStreamer is a great solution, however, it has a steep learning curve so it requires you to have time to learn
it and develop your pipelines depending on their complexity.
Both, Pipeless and Nvidia DeepStream make use of GStreamer, but in different ways.
Nvidia DeepStream vs Pipeless
Let's comment some differences between Pipeless and Nvidia DeepStream
GStreamer usage
Nvidia DeepStream can be seen as a bunch of GStreamer components that you can include as part of your GStreamer
pipelines to incorporate computer vision tasks.
Using DeepStream components requires the developer to create the GStreamer pipelines, which is usually not an easy task.
Pipeless, on the other hand, is a complete framework shipping everything a developer needs
to create a computer vision application just by knowing some basics Python.
Pipeless is not a bunch of GStreamer components, instead, Pipeless uses existing open-source components and abstracts
you from creating and maintaining the multimedia pipelines, allowing you to focus on your particular application and
releasing you from learning GStreamer.
Licenses and code availability
Nvidia DeepStream components are closed source, meaning they work as a black box, making it complex to debug or identify possible issues.
Pipeless is open-source, making use of the Apache License 2.0, so you can deep dive into the code if required to
understand what is happening or modify it at any moment.
Development experience
When using Nvidia DeepStream, a developer needs to learn GStreamer as part of the process, then learn how to use the Deeptream
components to incorporate those to the pipeline and after all that, develop the concrete application for the particular use case.
Using Pipeless, a developer just needs to implement some hooks (Python functions) that will be automatically called at the proper
time, significantly improving the development experience.
Time to market
As mentioned above, to develop an application making use of Nvidia DeepStream, you need to first learn GStreamer. The whole
process of learning and developing may depend on how skilled you are, but on average it will take you at least two or three
weeks to have something functional.
In the case of Pipeless you should be able to have an application running within minutes. For example, you can create a whole
application just by writing a single Python function with less than 10 lines of code.
Extensibility
Even though Nvidia DeepStream has some plugins, they are also closed source and developed by the Nvidia team. People can’t
easily register plugins to be used by others.
Pipeless contains a fully extensible plugin system. Anyone can create and register a plugin and other people will be able to
use it out of the box, simply installing it with a single command. We think this will generate a great ecosystem of
reusable code in the medium term.
Scalability
Some components of Nvidia DeepStream allow you to add distributed capacities to your applications, however, you will need
to modify your pipelines and configure those components properly.
Using Pipeless the scalability layer is already built-in, it processes frames in a distributed way out of the box
(if you deploy more than one worker). Pipeless allows you to reach any FPS rate even without using GPUs by running several
workers among different machines.
Conclusions
The following table summarizes the mentioned points:
Pipeless
Nvidia DeepStreamDesign
Complete framework to enhance developer experience
Bunch of GStreamer componentsLearning curve
Inexistent
HighCode accessibility
Open source
Closed source / PrivateTime to market
Minutes
WeeksExtensibility
Fully extensible by anyone
Some plugins available from the Nvidia teamScalability
Built-in
You can add some extra components

Our mission at Pipeless is to support developers on building  a new generation of vision powered applications.
If you would like to support what we do, consider starring our repository and joining the community on GitHub discussions or in our new Discord server.
