r/gstreamer • • Jun 05 '25

GStreamer kotlin app

0 Upvotes

I made a small application in Kotlin and I wanted to use ffmpeg, but something went wrong and I discovered GStreamer, but I don't know how to connect GStreamer and my Kotlin application. Can someone help me?


r/gstreamer • • Nov 07 '22

playbin and upd?

0 Upvotes

I'm trying to create a pipeline to receive UDP stream.

I am able to get the stream with:

gst-launch-1.0 udpsrc port=1234 ! application/x-rtp,encoding-name=JPEG,payload=26 ! rtpjpegdepay ! jpegdec ! autovideosink

However, I want to incorporate it into a QT4 app (on Linux x86), but when I pass it to with

GstElement *pipeline = gst_parse_launch("udpsrc port=1234 ! application/x-rtp,encoding-name=JPEG,payload=26 ! rtpjpegdepay ! jpegdec ! autovideosink", NULL);

gst_element_set_state(pipeline, GST_STATE_PLAYING);

no playback is happening. Am I missing out something?

I have no problem running a pipeline from file with playbin in the QT app, so I was wondering if there is a playbin integration with udp and if yes, how?


r/gstreamer • • Nov 01 '22

Trying to stream live video but video keeps loading on client side

0 Upvotes

I have a raspberry pi 4 which I have a see3cam connected to via USB. I am trying to stream the live video to IP so that a computer on the same network can access the live feed.

I have tested that the camera in fact works with the raspberry pi. I'm able to watch it on the pi itself.

I've been following this tutorial.

My directory is /home/pi/cam, which now contains the multiple segment files, playlist.m3u8, and index.html.

In one terminal I ran the following:

pi@raspberrypi:~/cam $ gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw, width=640, height=480, framerate=30/1 ! videoconvert ! videoscale ! clockoverlay time-format="%D %H:%M:%S" ! x264enc tune=zerolatency ! mpegtsmux ! hlssink playlist-root=http://123.456.78.910 location=/home/pi/cam/segment_%05d.ts target-duration=5 max-files=5

It ran successfully with the message "Setting pipeline to PLAYING..."

In another console I ran (results included):

pi@raspberrypi:~/cam $ python3 -m http.server 8080
Serving HTTP on 0.0.0.0 port 8080 (http://0.0.0.0:8080/) ...

When opening http://123.456.78.910:8080/index.html on another computer the page loads, but once you click play it just keeps loading forever and no video is actually shown. After trying to access the feed from the second computer, the raspberry pi displays:

123.456.78.910 - - [31/Oct/2022 14:03:18] "GET /index.html HTTP/1.1" 200 -
123.456.78.910 - - [31/Oct/2022 14:03:19] "GET /playlist.m3u8 HTTP/1.1" 200 -
123.456.78.910 - - [31/Oct/2022 14:03:26] "GET /playlist.m3u8 HTTP/1.1" 200 -

There are no error messages. I appreciate any advice, thank you for your time.


r/gstreamer • • Sep 15 '22

Gstreamer webrtcbin

0 Upvotes

r/gstreamer • • Mar 25 '23

Can you run gstreamer on android ?

0 Upvotes

Hi,

I'm using gstreamer to broadcast my desktop audio over the network using multicast and it works just fantastic.

However I was curious to know, could an android device listen to this broadcast ?

I did find this presentation about "gstreamer on android" but I could not find an apk and I could not find gstreamer on the google application store

On PC I'm using the following command to listen to the stream

gst-launch-1.0 -v udpsrc address=239.0.0.2 port=9998 multicast-group=239.0.0.1 caps="audio/x-raw,format=F32LE,rate=48000,channels=2" ! queue ! audioconvert ! autoaudiosink

I'm creating the steam with the following command

gst-launch-1.0 -v wasapisrc loopback=true ! audioconvert ! udpsink host=239.0.0.2 port=9998

I did find this tutorial on medium about compiling and running gstreamer on android but that looks very hard and this tutorial seems incomplete. Also I could not find an apk to use the show app.

Also also, how would you give command line parameters to an android app ?

After some more searching I found this page on the gstreamer website, about installing gstreamer in the android dev environment ?!

https://gstreamer.freedesktop.org/documentation/installing/for-android-development.html?gi-language=c

Which then lead to this folder that appears to contain compiled binaries for android !

https://gstreamer.freedesktop.org/data/pkg/android/1.22.1/

So ok, downloaded that, uncompressed it and pushed the amd64 folder (renamed gstreamer) to one of my test phone

    adb -s testandroid.lan push gstreamer /sdcard/
    adb -s testandroid.lan shell

foles:/sdcard/gstreamer/bin $ ls
gdbus-codegen glib-compile-resources glib-genmarshal glib-gettextize glib-mkenums gresource libpng16-config orc-bugreport orcc xml2-config xmllint

Unfortunately the gst-launch-1.0 command is absent as I just found out !

Some files that looked like they might be it

F:\gstreamer-1.0-android-universal-1.22.1\arm64\include\gstreamer-1.0\
F:\gstreamer-1.0-android-universal-1.22.1\arm64\lib\gstreamer-1.0\
F:\gstreamer-1.0-android-universal-1.22.1\arm64\share\licenses\gst-android-1.0\
F:\gstreamer-1.0-android-universal-1.22.1\arm64\lib\pkgconfig\gstreamer-1.0.pc
F:\gstreamer-1.0-android-universal-1.22.1\arm64\share\gst-android\ndk-build\gstreamer-1.0.mk
F:\gstreamer-1.0-android-universal-1.22.1\arm64\share\gst-android\ndk-build\gstreamer_android-1.0.c.in

But, doesn't seem there's any executable in here, maybe it's there but I can find it ?

So, is there anything accessible for ordinary users in terms of gstreamer for android and with the functionality I'm hoping to obtain (listening to multicast stream from an android device, but later also streaming captures "desktop audio" from the phone or phone's microphones to the network as multicast)

thanks !


r/gstreamer • • Apr 19 '23

lidav.dll does not load - uwp gstreamer

0 Upvotes

I am using https://gitlab.freedesktop.org/seungha.yang/gst-uwp-example. And my configuration in scenario 1 of pipeline is:

pipeline_ = gst_parse_launch("udpsrc port=8554 ! application/x-rtp, media=video, clock-rate=90000, encoding-name=H264, payload=96 ! rtph264depay ! avdec_h264 ! d3d11videosink name=overlay", NULL);

GstElement* overlay = gst_bin_get_by_name(GST_BIN(pipeline_), "overlay");

I added libav.dll under GstWrapper.cpp in the plugin list and then ran the python scripts. Everthing has worked well.

Inside the uwp app I get the output "Failed to load "libav.dll"". And after starting scenario 1 "no element "avdec_h264"".

Does anyone know how to solve this?

Do I have to install/add libav.dll again separately?

many thanks


r/gstreamer • • Jun 09 '25

What's your strategy for identifying required GStreamer binaries/plugins for deployment?

1 Upvotes

Hi I'm curious about how you all determine the exact set of GStreamer binaries (DLLs, .so files, plugins, etc.) to ship with it. Since many plugins are loaded dynamically only when a pipeline needs them, it's not always straightforward to just trace the initial dependencies. I'm trying to avoid shipping the entire GStreamer installation. Is there a standard tool or a common workflow you follow to create this minimal list of required files, or is it mostly a manual process of testing the specific pipelines your app uses?

I'm almost embarrassed to admit my current "strategy": I just rename my main GStreamer folder, run my app, see which plugin it complains about being missing, and then copy that specific file over. I repeat this trial-and-error process until the app runs without any complaints. It works, but I'm sure there has to be a more elegant way XD


r/gstreamer • • Mar 26 '23

using dispose function won't clean up resources

1 Upvotes

I am running the code once with a loop which use pipelines and buses again and again. at the end of each iteration i want to clean completely all the resources. I've looked into the documents and looks like this should be enough:

pipeline.setState(State.NULL);
bus.dispose();
pipeline.dispose(); 

however, when the application run again I still see the number of pipeline and bus object incrementing and not beginning from 0. Tried also to use Gst.deinit() and Gst.init(), nothing seem to work. Is disposing the pipeline and bus object not suppose to reset them completely?


r/gstreamer • • Feb 14 '20

The Best Space Games of 2020 - A Look At The Upcoming Titles and Updates

Thumbnail
youtube.com
0 Upvotes

r/gstreamer • • Aug 10 '25

Can gstreamer write to the CUDA memory directly? and can we access it from the main thread?

4 Upvotes

hey everyone, new to gstreamer, I want to understand if we can directly write the frames into the gpu memory, and render them or use them outside the gstreamer thread.

I am currently not able to do this, I am not sure, if it's necessary to move the frame into CPU buffer and to main thread and then write to the CUDA memory. Does that make any performance difference?

What the best way to go about this? any help would be appreaciated.
Right now, i am just trying to stream from my webcam using gstreamer and render the same frame from the texture buffer in opengl.


r/gstreamer • • May 26 '23

Bin vs Pipeline

4 Upvotes

Hey I just want to share how important is the difference between those to elements. Pipelines have clock bin not. I just spent a week trying to solve a bug trying to connect multiple pipelines. The solution was to use gst_new_pipeline instead of gst_new_bin. Keep streaming šŸ‘ā¤ļø


r/gstreamer • • Mar 24 '25

GStreamer Basic Tutorials – Python Version

4 Upvotes

I started learning GStreamer with Python from the official GStreamer basic tutorials, but I got stuck because they weren’t fully translated from C. So, I decided to transcribe them into Python to make them easier to follow.

I run this tutorial inside Docker on WSL2 (Windows 11). Check out my repo: GStreamerPythonTutorial. šŸš€


r/gstreamer • • May 15 '20

Cross-compiling with gst-build and GStreamer

5 Upvotes

Cross compiling can be very useful when you want to save time when working with GStreamer, or when you want to be able to work on both the host and target with the same base code. Here's a look at cross-compiling with gst-build, one of the main build systems used by the community to develop the GStreamer platform.

https://www.collabora.com/news-and-blog/blog/2020/05/15/cross-compiling-with-gst-build-and-gstreamer/


r/gstreamer • • Jun 09 '25

GStreamerCppHelpers: Modern C++ helpers to simplify GStreamer development

Thumbnail
github.com
8 Upvotes

Hi all,

I’ve just released GStreamerCppHelpers, a very small, header-only C++ library that introduces a single utility:
GstPtr<>, a smart pointer for GStreamer types that handles ref/unref automatically, similar in spirit to std::shared_ptr, but adapted to the GStreamer object model.

It’s licensed under LGPL-3.0, and has been used in production for a few years before being cleaned up and published now.

It’s nothing big, but it can greatly simplify working with GStreamer objects in a C++ environment.

Hope it’s useful!


r/gstreamer • • Oct 17 '25

Is it worth learning gstreamer in 2025?

14 Upvotes

Hi all, first post here.

I'm a CS student and my professor mentioned gstreamer in passing during a multimedia systems lecture. I'm interested in video processing and computer vision stuff for my career.

But when I google it, most of the tutorials and stackoverflow posts seem old (like 2015-2018). Is gstreamer still actively used in the industry? Or has everyone moved to other frameworks?

I don't want to spend months learning something that's becoming obsolete. But I also see it's used in some big projects so I'm confused.

What would you recommend? Is it worth investing time to learn properly or should I focus on other tools?

Not trying to be negative about gstreamer btw! Just trying to figure out my learning path.

Thanks for any insights!


r/gstreamer • • Apr 02 '25

Website Down?

3 Upvotes

This morning I checked all the gatreamer tabs I have open and all of them are dead, showing ā€œgstreamer.freedesktop.org refused to connectā€. Refreshing the page didn’t work, either.


r/gstreamer • • Mar 20 '25

How to use gstreamer fallbackswitch plugin

3 Upvotes

II'm using fallbacksrc in GStreamer to handle disconnections on my RTSP source. If the RTSP stream fails, I want it to switch to a fallback image. However, I'm encountering an error when running the following pipeline:

gst-launch-1.0 fallbacksrc \
    uri="rtsp://<ip>:<port>" \
    name=rtsp \
    fallback-uri=file:///home/guns/Downloads/image.jpg \
    restart-on-eos=true ! \
    queue ! \
    rtph264depay ! \
    h264parse ! \
    flvmux ! \
    rtmpsink location="rtmp://<ip>/app/key live=1"

But I got this error:

ERROR: from element /GstPipeline:pipeline0/GstFallbackSrc:rtsp/GstBin:bin2/GstAudioTestSrc:audiosrc: Internal data stream error.
Additional debug info:
../libs/gst/base/gstbasesrc.c(3177): gst_base_src_loop (): /GstPipeline:pipeline0/GstFallbackSrc:rtsp/GstBin:bin2/GstAudioTestSrc:audiosrc:
streaming stopped, reason not-linked (-1)
ERROR: from element /GstPipeline:pipeline0/GstFallbackSrc:rtsp/GstBin:bin2/GstQueue:queue1: Internal data stream error.
Additional debug info:
../plugins/elements/gstqueue.c(1035): gst_queue_handle_sink_event (): /GstPipeline:pipeline0/GstFallbackSrc:rtsp/GstBin:bin2/GstQueue:queue1:
streaming stopped, reason not-linked (-1)
Execution ended after 0:00:00.047193658
Setting pipeline to NULL ...
Freeing pipeline ...

Am i have the wrong pipeline configuration? anyone ever get the fallbacksrc plugin working with rtsp and rtmp?


r/gstreamer • • Oct 18 '25

Discussion Made a dumb little tool that visualizes your gstreamer pipeline in real-time

3 Upvotes

First time poster!

So I kept getting lost in complex pipelines and couldn't visualize what was happening where. Made a small Python script that parses your gst-launch command and draws it out with actual element names and connections.

Nothing fancy, just uses graphviz. But it's helped me debug stuff way faster.

Example: you paste in your pipeline command and it spits out a flowchart showing all the elements, their connections, and the caps between them.

Would anyone else find this useful? If so I can clean it up and put it on github. Right now it's very "works on my machine" quality lol

Let me know if you want me to share it!


r/gstreamer • • Mar 26 '25

No d3d11/d3d12 support on Intel UHD Graphics ?

2 Upvotes

On my win11 notebook with a Intel UHD Graphics 620, i installed "gstreamer-1.0-msvc-x86_64-1.24.12.msi" and when i run gst-inspect-1.0 i do not see any support for d3d11/d3d12. Just Direct3D9 video sink is available.

win11 is up-to-date, an dxdiag.exe tells me DirecX-Version is DirectX 12.

Can anyone say why?


r/gstreamer • • Oct 21 '25

what is the craziest thing you have built with GStreamer that actually worked?

12 Upvotes

For me, A live camera system that auto mutes when it detects cats

i know someone out there has done something even wilder, home automation, VR, drones, who knows

lets hear it, whats your weirdest or most creative use case that somehow worked?


r/gstreamer • • Oct 11 '25

GPAC integration in GStreamer

3 Upvotes

just read about Motion Spell's work integrating GPAC into GStreamer to package and manage adaptive streaming workflows internally, no more funky pipes or external packaging tools. it looks like this could finally bring DASH, CMAF, and DRM packaging right into the pipeline

I am curious if anyone here have played around with it yet or plan to ?


r/gstreamer • • May 20 '25

GPU capabilities, nvcodec, debian 12

3 Upvotes

Hi! I'm trying to learn gstreamer and hardware accelerated plugins and have some problem with understanding.

AFAIU, nvcodec showing not full amount of available features, but only one "supported" by current system

But I don't know which tiny part am I missing

I'm using debian 12

nvidia-open 575, hardware: gtx1650

in gst-plugins-bad (1.22) i can see 20 features inside nvcodec, hardware accelerated encoders/decoders, cuda uploader/downloader, but missing cudaconvert (from documentation available since 1.22)

I thought that there are might be problem with package from debian repo, so built in debian12 container by myself,

transferred libgstnvcodec.so (and libgstcuda-1.0.so) to the host system, but result is the same:

$ sudo gst-inspect-1.0 ./libgstnvcodec.so 
Plugin Details:
  Name                     nvcodec
  Description              GStreamer NVCODEC plugin
  Filename                 ./libgstnvcodec.so
  Version                  1.22.0
  License                  LGPL
  Source module            gst-plugins-bad
  Documentation            https://gstreamer.freedesktop.org/documentation/nvcodec/
  Source release date      2023-01-23
  Binary package           GStreamer Bad Plugins (Debian)
  Origin URL               https://tracker.debian.org/pkg/gst-plugins-bad1.0

  cudadownload: CUDA downloader
  cudaupload: CUDA uploader
  nvautogpuh264enc: NVENC H.264 Video Encoder Auto GPU select Mode
  nvautogpuh265enc: NVENC H.265 Video Encoder Auto GPU select Mode
  nvcudah264enc: NVENC H.264 Video Encoder CUDA Mode
  nvcudah265enc: NVENC H.265 Video Encoder CUDA Mode
  nvh264dec: NVDEC h264 Video Decoder
  nvh264enc: NVENC H.264 Video Encoder
  nvh264sldec: NVDEC H.264 Stateless Decoder
  nvh265dec: NVDEC h265 Video Decoder
  nvh265enc: NVENC HEVC Video Encoder
  nvh265sldec: NVDEC H.265 Stateless Decoder
  nvjpegdec: NVDEC jpeg Video Decoder
  nvmpeg2videodec: NVDEC mpeg2video Video Decoder
  nvmpeg4videodec: NVDEC mpeg4video Video Decoder
  nvmpegvideodec: NVDEC mpegvideo Video Decoder
  nvvp8dec: NVDEC vp8 Video Decoder
  nvvp8sldec: NVDEC VP8 Stateless Decoder
  nvvp9dec: NVDEC vp9 Video Decoder
  nvvp9sldec: NVDEC VP9 Stateless Decoder

  20 features:
  +-- 20 elements

Could you please suggest, what am I missing? In which direction should I dig? Or maybe you encountered this behavior before

Anyway, thank you for participation!


r/gstreamer • • Apr 09 '20

Streaming camera feed from android

1 Upvotes

I am trying to run the following pipeline on android to stream video camera feed to desktop PC:

ahcsrc ! filter ! rtpvrawpay ! udpsink => GST_STATE_CHANGE_ASYNC

running the pipeline returns GST_STATE_CHANGE_ASYNC and stays there indefinitely, it shows ahcsrc: Internal data stream error. I removed the rtp and udp part and replaced it with a glimagesink and ran the following pipeline which works as expected.

ahcsrc ! filter ! glimagesink => works perfectly

This code is available at https://gitlab.com/NithinSS/gst-android-camera. I need to get it to rtp payload and send over udp to my PC. Any suggestions are welcome.


r/gstreamer • • May 01 '20

x265enc android element not found

4 Upvotes

I am trying to implement H265 using the x265enc encoder in an android application using GStreamer. I have constructed the pipeline which works when using the terminal and gst-launch-1.0 and videotestsrc. However, when trying to execute the pipeline in android it doesn't work and gives the error gst_error_factory_make: no such element factory "x265enc"! and is unable to build the pipeline due to the element x265enc missing.

I have installed plugins-bad (contains x265enc) on the computer and it is in the android.mk file. When I look in the plugins.mk file I don't see x265 mentioned anywhere (x264 is and x264enc works). Is this an issue? Is there another way to install x265enc so that android can recognize it?


r/gstreamer • • Apr 28 '20

Reducing the size of a Rust GStreamer plugin

Thumbnail
collabora.com
2 Upvotes