# Can you make a gstreamer element with a virtual camera?

**URL:** <https://community.stereolabs.com/t/can-you-make-a-gstreamer-element-with-a-virtual-camera/10314>\
**Category:** Software\
**Tags:** streaming\
**Created:** [November 13, 2025, 4:39am UTC](https://community.stereolabs.com/t/can-you-make-a-gstreamer-element-with-a-virtual-camera/10314 "2025-11-13T04:39:21Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![adinesh](https://community.stereolabs.com/letter_avatar_proxy/v4/letter/a/e495f1/32.png) [@adinesh](https://community.stereolabs.com/u/adinesh)\
**Post date:** [November 13, 2025, 4:39am UTC](https://community.stereolabs.com/t/can-you-make-a-gstreamer-element-with-a-virtual-camera/10314/1 "2025-11-13T04:39:21Z")

</div>

Two Questions:

1. how do you properly set up the configuration file for streaming a virtual camera? do you both a .yml? or just a .conf? and specifically where do each of them go?

[zed\_calibration\_115047324.yml](https://community.stereolabs.com/uploads/short-url/3CuJoJtgm78ktxpXytV5YUZlPnL.yml) (1.2 KB)

[SN115047324.conf](https://community.stereolabs.com/uploads/short-url/1UFgleMsTn7iPhMR5sq4V2Uj52x.conf) (755 Bytes)

How do I tell if I am supposed to be using LEFT\_CAMERA\_2K or in another mode (like HD)?

1. does zed-gstreamer support virtual stereocameras?  
I don’t see this clarified in the [docs](https://www.stereolabs.com/docs/gstreamer) anywhere or in the code. I tried running `gst-launch-1.0 zedsrc ! autovideoconvert ! queue ! fpsdisplaysink` and I got this output. What setup do I need to make this work?

```auto
Setting pipeline to PAUSED ...
Setting depth_mode to NONE
ERROR: from element /GstPipeline:pipeline0/GstZedSrc:zedsrc0: Failed to open camera, 'CAMERA STREAM FAILED TO START'
Additional debug info:
/home/jetson/perception/zed-gstreamer/gst-zed-src/gstzedsrc.cpp(2343): gst_zedsrc_start (): /GstPipeline:pipeline0/GstZedSrc:zedsrc0
ERROR: pipeline doesn't want to preroll.
ERROR: from element /GstPipeline:pipeline0/GstZedSrc:zedsrc0: GStreamer error: state change failed and some element failed to post a proper error message with the reason for the failure.
Additional debug info:
../libs/gst/base/gstbasesrc.c(3556): gst_base_src_start (): /GstPipeline:pipeline0/GstZedSrc:zedsrc0:
Failed to start
ERROR: pipeline doesn't want to preroll.
Failed to set pipeline to PAUSED.
Setting pipeline to NULL ...
Freeing pipeline ...

```

---

<div class="post-metadata">

**Author:** ![Myzhar](https://community.stereolabs.com/user_avatar/community.stereolabs.com/myzhar/32/11_2.png) [@Myzhar](https://community.stereolabs.com/u/Myzhar)\
**Post date:** [November 13, 2025, 11:26am UTC](https://community.stereolabs.com/t/can-you-make-a-gstreamer-element-with-a-virtual-camera/10314/2 "2025-11-13T11:26:53Z")

</div>

Hi @adinesh  
this is only supported by using the ZED Media Server by setting the `input-stream-ip` and `input-stream-port` `zedsrc` parameters.  
The parameter `opencv-calibration-file` can be used to specify the calibration file.

---

<div class="post-metadata">

**Author:** ![adinesh](https://community.stereolabs.com/letter_avatar_proxy/v4/letter/a/e495f1/32.png) [@adinesh](https://community.stereolabs.com/u/adinesh)\
**Post date:** [November 13, 2025, 4:49pm UTC](https://community.stereolabs.com/t/can-you-make-a-gstreamer-element-with-a-virtual-camera/10314/3 "2025-11-13T16:49:42Z")

</div>

Would it be possible for [StereoLabs](https://www.stereolabs.com/) to develop that? Or could I start developing that if the code is available? Even if there are simply CLI arguments you can add to the launch of ZED\_MEDIA\_SERVER that will let you set the input-stream-ip , input-stream-port, and opencv-calibration-file so you can run the whole thing headlessly or using X11 forwarding (without a keyboard and mouse).

Moreover, is there any way to stream via a different protocol? like SRT instead of RTP?

---

<div class="post-metadata">

**Author:** ![adinesh](https://community.stereolabs.com/letter_avatar_proxy/v4/letter/a/e495f1/32.png) [@adinesh](https://community.stereolabs.com/u/adinesh)\
**Post date:** [November 13, 2025, 6:30pm UTC](https://community.stereolabs.com/t/can-you-make-a-gstreamer-element-with-a-virtual-camera/10314/4 "2025-11-13T18:30:52Z")

</div>

Also, is there a way to send a stream from a virtual camera, and on the receiver side, ingest that stream as a Gstreamer pipeline? This is in the set of scenarios where the reciever (like an IPad) can’t install the SDK. how does the ZED streaming work under the hood? is it making a GStreamer stream?

---

<div class="post-metadata">

**Author:** ![Myzhar](https://community.stereolabs.com/user_avatar/community.stereolabs.com/myzhar/32/11_2.png) [@Myzhar](https://community.stereolabs.com/u/Myzhar)\
**Post date:** [November 14, 2025, 1:43pm UTC](https://community.stereolabs.com/t/can-you-make-a-gstreamer-element-with-a-virtual-camera/10314/5 "2025-11-14T13:43:46Z")

</div>

> [@adinesh](#):
>
> Would it be possible for [StereoLabs](https://www.stereolabs.com/) to develop that?

It’s in the roadmap, but low priority.

> [@adinesh](#):
>
> Moreover, is there any way to stream via a different protocol? like SRT instead of RTP?

You should check GStreamer capabilities for this. It does not depend on us.

> [@adinesh](#):
>
> how does the ZED streaming work under the hood? is it making a GStreamer stream?

No, it’s a proprietary protocol. We are not allowed to provide this type of information.
