I’m building a carousel slideshow, using go-gst, that will need to run 24/7, so I want to avoid reading from disk every 10 seconds for each slide. I wish to pre-load all the pictures into an []image.Image array, but I don’t know how to insert an image.Image into pipeline.
So, I’m asking how this can be done, or is there another way to avoid repetitive disk access?
But I don’t think that []image.Image will help you much. You’ll need the raw non decoded bytes to be inserted into the pipeline. You can also pre decode them, but you’ll still need to have a valid format that gstreamer knows to work with.
The code I’m having trouble with is copy/pasted from the go-gst appscr example here ,but I’m not experienced enough to figure out why. I have other examples running just fine, so I don’t think it’s anything I’m doing.
You can’t just copy paste the whole appsrc example, the constructed pipeline expects video/x-raw caps from the appsrc. Copy and pasting and inserting (encoded) images wont work. You’d need to go more into detail about what you want to do exactly.
Thank you for sticking with me. The objective is to have an in-memory dynamic slideshow. Dynamic meaning the slides with contain real-time application data with text over backgrounds. Some with data plotted over time. Real-time doesn’t mean 25fps, but more like minutes or hours. The order in which the slides are presented must also be dynamic.
In addition, the slideshow may be overdidden at any moment by either a live RTMP or SRT input stream. I intend to switch between sources with an input-selector before being streamed out over RTMP and SRT for public consumption.
The business logic, data collection and image production is almost complete, but I’m having difficulty in finding any real-world gstreamer examples.
This is an over ambitious project for me, but it’s the only one I have. It’s an open source DATV repeater project for the licensed amateur television community. For sure, I need help and hope you will find time to stick around a bit longer.
Gstreamer “only” needs to accept in-memory slides (with audio), and the RTMP & SRT input streams. The audio will need some thought to avoid upsetting end user receivers. The RTMP & SRT inputs will always have audio, but the slides will need silence (or low level music) and a morse code ident every 15 minutes or so.
To be clear, I’m not asking for someone to write an application for me. I just want to know why example/appsrc doesn’t work or if there’s a bug with the binding or gstreaamer.
I did get this working a few days ago using RGBA as the format. It displays RGBA graphic images, generated in memory by the Go image library. Also, It can display PNG photographic files loaded from disk, but they become heavily corrupted. I think there’s more to PNG than I realised!