- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi All,
We have developed a set of GStreamer plugins that uses Intel Media SDK on Linux, and we'd like to share out our work here in the forums for those who might find this useful for their projects. This project was done for a major customer targeting the Apollo Lake platform, but we made sure that these GStreamer Media SDK plugins work on Haswell, Broadwell and Skylake platforms as well. The plugins can perform hardware-accelerated decode, encode, VPP, transcode, rendering with zero-copy, etc. and works for all video formats currently supported by Intel Media Server Studio 2016 / 2017 Community, Essential or Professional Editions.
The validated stable versions can be cloned from Intel's official 01.org repository below:
https://github.com/01org/gstreamer-media-SDK
Windows support is completed, with full D3D11 hardware acceleration including zero-copy feature and deep color support when rendering with mfxsink. Please feel free to test it out from the below repos and report any issues you may find.
https://github.com/ishmael1985/gstreamer-media-SDK
https://github.com/ph0b/gstreamer-media-SDK
Any contributions to these repos are most welcome :)
Since I am no longer associated with Intel, please contact me via my personal email below strictly for GST-MSDK plugin issues / matters. As for other MSDK matters, it's best to contact Intel MSDK team since I do not represent Intel in official capacity.
Regards,
Ishmael Sameen
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Ishmael,
I just want to confirm that all issues that I have reported have been solved, the memory has been the same for 4 hours, we also have implemented the plugin to work with our internal application you can see the time and memory usage on the screenshot in the attachment.
Thanks again for the help
Best Regards
Ben
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Ishmael & Mantas,
First I want to thank Ishmael for the hard work and making this great plugin, we already started using it in production and dropped VAAPI due to quality and bug issues. I don't know how you did this but it's amazing for what I can see you are the only one developing this and solved every bug we found, thanks to Mantas as well for helping us find bugs.
Back to my last test results: I did run a pipeline with udpsrc and audio is good, i did make the source mess up by making the bandwidth lower then what source was in my switch to see if it goes out of sync then after it went back in sync again, I wasnt able to reproduce Mantas issue, maybe last fix solved it.
I tried running other sources as well like rtmp hls tcp they all worked fine.
As far as memory that seems to be good too i have a process running for 21 hours at only 110MB.
Link Copied
- « Previous
- Next »
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Nilesh,
Surprisingly, I somehow failed to catch your recent post early enough!
You shouldn't use the gold branch, it's vastly outdated, rather you should use the latest from here:
https://github.com/01org/gstreamer-media-SDK/tree/topic_linux_and_window
This is much more improved, refined version with both Windows and Linux support in a single unified codebase (they should work more or less the same from a functional point of view), so it's best to follow the latest. As for design docs, we don't have them yet, but we are working on that :)
Please let me know how it's working out for you.
Cheers,
Ishmael
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Ishmael,
Thank you for a gread job with GST-MFX plugin.
Are you planning a some work for implementation a screen capture gstreamer element based on mfxplugin_screen_capture.dll ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Mikhaylo,
To perform screen capture with GStreamer you can use ximagesrc or dx9screencapsrc element. You can then construct a pipeline with those screen capture elements together with the MFX plugins to achieve your target use case.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks Ishmael,
I have other question. Seems MFX plugin affects some how some other GStreamer plugins and prevents them executing correctly. Could you please check the execution details below.
I run it on windows env with MFX plugin from the branch "topic_linux_and_window".
I only need to remove MFX plugin from plugins folder to make that pipeline executing with no errors.
D:\gstreamer\1.0\x86_64\
bin>gst-launch-1.0 rtspsrc location="rtsp://127.0.0.1: 8554/test" ! queue ! rtph264depay ! h264parse ! capsfilter caps="video/x-h264" ! openh264dec ! autovideosink Setting pipeline to PAUSED ...Pipeline is live and does not need PREROLL ...Got context from element 'mfxsink0': gst.mfx.Aggregator=context, gst.mfx.Aggregator=(GstMfxTaskAggregator)"\( GstMfxTaskAggregator\)\ mfxtaskaggregator1"; Progress: (open) Opening StreamProgress: (connect) Connecting to rtsp://127.0.0.1:8554/testProgress: (open) Retrieving server optionsProgress: (open) Retrieving media infoProgress: (request) SETUP stream 0Progress: (open) Opened StreamSetting pipeline to PLAYING ...New clock: GstSystemClockProgress: (request) Sending PLAY requestProgress: (request) Sending PLAY requestProgress: (request) Sent PLAY requestERROR: from element /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc: udpsrc0: Internal data stream error. Additional debug info:gstbasesrc.c(2939): gst_base_src_loop (): /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc: udpsrc0: streaming stopped, reason error (-5)Execution ended after 0:00:00.210417103Setting pipeline to PAUSED ...Setting pipeline to READY ...Setting pipeline to NULL ...Freeing pipeline ...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Mikhaylo,
mfxsink plugin has the highest priority ranking, so when you call autovideosink in your pipeline, it will automatically call mfxsink. You can simply replace autovideosink with d3dvideosink or glimagesink, or you can customize the meson installation to not build mfxsink, i.e."mesonconf -DMFX_SINK_BIN=false"
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Ishmael,
Thank you, that works
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- « Previous
- Next »