3 ms·
I like this. This reminds me a lot of GStreamer. If you are not familiar with it, it is a decades-old media platform that is still used extensively today in ev
by SavantIdiot 5y ago
I like this.
This reminds me a lot of GStreamer. If you are not familiar with it, it is a decades-old media platform that is still used extensively today in everything from DVD / Music players to deep learning on NVIDIA and Intel hardware. It's a swiss army knife of time-based media.
It has this really cool concept where elements can connect together in directed acyclic graphs to create amazingly complex pipelines that are all synchronized and buffered. Like connecting an "RTSP source to an mp4decoder to an image resizer to JPEG images" as a trivial example. Each pad defines a format it speaks (like RGB or YUV) called capabilities, and then GStreamer matches up the pad capabilities transparently to the user. There's no need to explicitly tell the pipeline manager how to connect the two pads, it will automatically pick a shared capability. Of course, the can be forced explicitly, but it doesn't need to be.
I wonder if executables that are pipe-friendly could expose formats in much the same way GStreamer pads do instead of your ".typed" properties file. It wouldn't require explicitly coercing the pipe, but it wouldn't be a type, it would be more flexible...
- stuaxo 5y agoAdding support to gstreamer, avconf/ffmpeg and imagemagick would be a great starting point for this.
- CarelessExpert 5y ago> a decades-old media platform Huh, I was gonna nitpick about this phrase, but then I checked and... look at that, GStreamer turns (turned?) 20 this year. So, technically correct! The best kind of correct!
- DannyB2 5y agoSee my post elsewhere here that begins: What if every source or sink had a MIME type? Extend the concept of GStreamer out to the shell, filesystem and command line tools. You could still process sound and video this way. Tools would indicate what type of data they emit, and other tools could check the incoming type of data to be sure it is something they can handle. (eg, you can't pipe a PNG file into a tool expecting JSON.)