Hi everyone,
I am attempting to learn and use GStreamer, and especially it's plugin GStreamer-vaapi. Unfortunately, I can't figure out how to install this plugin, or more precisely, why it won't install. I've uninstalled GStreamer provided by Ubuntu and Mint (my project has to work on a Mint computer, but I work on Ubuntu 16.04), and then I installed GStreamer 1.12.0. In order to install GStreamer-Vaapi, the configure script tells me I need to install several plugins : Base, Good and Bad, what I've successfully done (I could check with gst-inspect-1.0, which tells me I have more plugins installed (160) than just after gstreamer (3)). After those plugins installed, I reran ./configure, which succeed ! I then run make && sudo make install, but I can't access vaapidecode and all elements provided by the plugin. I get this issue on both computers. A few things to say, the Ubuntu computer runs on a AMD config, and I tried to install gstreamer-vaapi-1.10.4, and the Mint one is running with an Intel i5 and Intel GPU also, and I tried to install gstreamer-vaapi-1.12.0. Does anyone know how to install gstreamer-vaapi correctly to have access to it's elements ? Thanks ! |
Hi Zelnes,
On Wed, Jun 07, 2017 at 04:42:56AM -0700, Zelnes wrote: > Hi everyone, > > I am attempting to learn and use GStreamer, and especially it's > plugin GStreamer-vaapi. Unfortunately, I can't figure out how > to install this plugin, or more precisely, why it won't install. > > I've uninstalled GStreamer provided by Ubuntu and Mint (my > project has to work on a Mint computer, but I work on Ubuntu > 16.04), and then I installed GStreamer 1.12.0. In order to > install GStreamer-Vaapi, the configure script tells me I need to > install several plugins : Base, Good and Bad, what I've > successfully done (I could check with gst-inspect-1.0, which > tells me I have more plugins installed (160) than just after > gstreamer (3)). After those plugins installed, I reran > ./configure, which succeed ! I then run make && sudo make > install, but I can't access vaapidecode and all elements > provided by the plugin. I get this issue on both computers. > > A few things to say, the Ubuntu computer runs on a AMD config, > and I tried to install gstreamer-vaapi-1.10.4, and the Mint one > is running with an Intel i5 and Intel GPU also, and I tried to > install gstreamer-vaapi-1.12.0. > > Does anyone know how to install gstreamer-vaapi correctly to > have access to it's elements ? Thanks ! gstreamer-vaapi tries to be clever about registering the plugin only when it finds a libva driver that is working on your system, and then only registering the codecs which it finds are supported on your system. Are you sure that you have a libva driver installed? I think ubuntu packages these drivers in packages like i965-va-driver and mesa-va-drivers. You can check with the `vainfo` command. You'll see a list of codecs that you have support for. Something like: libva info: VA-API version 0.40.0 libva info: va_getDriverName() returns 0 libva info: Trying to open /lib64/dri/i965_drv_video.so libva info: Found init function __vaDriverInit_0_40 libva info: va_openDriver() returns 0 vainfo: VA-API version: 0.40 (libva ) vainfo: Driver version: Intel i965 driver for Intel(R) Skylake - 1.8.1.pre1 (1.7.3-360-gcf087db) vainfo: Supported profile and entrypoints VAProfileMPEG2Simple : VAEntrypointVLD VAProfileMPEG2Simple : VAEntrypointEncSlice VAProfileMPEG2Main : VAEntrypointVLD VAProfileMPEG2Main : VAEntrypointEncSlice VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP VAProfileH264Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointEncSlice VAProfileH264Main : VAEntrypointEncSliceLP VAProfileH264High : VAEntrypointVLD VAProfileH264High : VAEntrypointEncSlice VAProfileH264High : VAEntrypointEncSliceLP VAProfileH264MultiviewHigh : VAEntrypointVLD VAProfileH264MultiviewHigh : VAEntrypointEncSlice VAProfileH264StereoHigh : VAEntrypointVLD VAProfileH264StereoHigh : VAEntrypointEncSlice VAProfileVC1Simple : VAEntrypointVLD VAProfileVC1Main : VAEntrypointVLD VAProfileVC1Advanced : VAEntrypointVLD VAProfileNone : VAEntrypointVideoProc VAProfileJPEGBaseline : VAEntrypointVLD VAProfileJPEGBaseline : VAEntrypointEncPicture VAProfileVP8Version0_3 : VAEntrypointVLD VAProfileVP8Version0_3 : VAEntrypointEncSlice VAProfileHEVCMain : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointEncSlice VAProfileVP9Profile0 : VAEntrypointVLD > -- > gstreamer-devel mailing list > [hidden email] > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
This post was updated on .
Hi Phillips,
Thanks for your details, I had the feeling that it won't work on my Ubuntu desktop for the reasons you mentioned. But as I said, I work on it, so I was hopping I could make it work in order to develop and test first on this machine and then port it to the other one. Are there any way I can use this computer to code my app for GStreamer-VAAPI ? On the Mint machine, here is the vainfo output : vainfo: VA-API version: 0.39 (libva 1.7.0) vainfo: Driver version: Intel i965 driver for Intel(R) Skylake - 1.7.0 vainfo: Supported profile and entrypoints VAProfileMPEG2Simple : VAEntrypointVLD VAProfileMPEG2Simple : VAEntrypointEncSlice VAProfileMPEG2Main : VAEntrypointVLD VAProfileMPEG2Main : VAEntrypointEncSlice VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice VAProfileH264Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointEncSlice VAProfileH264High : VAEntrypointVLD VAProfileH264High : VAEntrypointEncSlice VAProfileH264MultiviewHigh : VAEntrypointVLD VAProfileH264MultiviewHigh : VAEntrypointEncSlice VAProfileH264StereoHigh : VAEntrypointVLD VAProfileH264StereoHigh : VAEntrypointEncSlice VAProfileVC1Simple : VAEntrypointVLD VAProfileVC1Main : VAEntrypointVLD VAProfileVC1Advanced : VAEntrypointVLD VAProfileNone : VAEntrypointVideoProc VAProfileJPEGBaseline : VAEntrypointVLD VAProfileJPEGBaseline : VAEntrypointEncPicture VAProfileVP8Version0_3 : VAEntrypointVLD VAProfileVP8Version0_3 : VAEntrypointEncSlice VAProfileHEVCMain : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointEncSlice And what I don't understand is, why cannot I install the 1.12 version from sources while I can install from Ubuntu packages (I think it's the 1.8 version) ? Currently, I have on this machine GStreamer and GStreamer-VAAPI from apt-get repo. -- EDIT After verification, it is 1.8.3 gstreamer. Thanks |
On Thu, Jun 08, 2017 at 12:13:02AM -0700, Zelnes wrote:
> Hi Phillips, > > Thanks for your details, I had the feeling that it won't work on > my Ubuntu desktop for the reasons you mentioned. But as I said, > I work on it, so I was hopping I could make it work in order to > develop and test first on this machine and then port it to the > other one. Are there any way I can use this computer to code my > app for GStreamer-VAAPI ? > > On the Mint machine, here is the vainfo output : > vainfo: VA-API version: 0.39 (libva 1.7.0) > vainfo: Driver version: Intel i965 driver for Intel(R) Skylake - 1.7.0 > vainfo: Supported profile and entrypoints > VAProfileMPEG2Simple : VAEntrypointVLD > VAProfileMPEG2Simple : VAEntrypointEncSlice > VAProfileMPEG2Main : VAEntrypointVLD > VAProfileMPEG2Main : VAEntrypointEncSlice > VAProfileH264ConstrainedBaseline: VAEntrypointVLD > VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice > VAProfileH264Main : VAEntrypointVLD > VAProfileH264Main : VAEntrypointEncSlice > VAProfileH264High : VAEntrypointVLD > VAProfileH264High : VAEntrypointEncSlice > VAProfileH264MultiviewHigh : VAEntrypointVLD > VAProfileH264MultiviewHigh : VAEntrypointEncSlice > VAProfileH264StereoHigh : VAEntrypointVLD > VAProfileH264StereoHigh : VAEntrypointEncSlice > VAProfileVC1Simple : VAEntrypointVLD > VAProfileVC1Main : VAEntrypointVLD > VAProfileVC1Advanced : VAEntrypointVLD > VAProfileNone : VAEntrypointVideoProc > VAProfileJPEGBaseline : VAEntrypointVLD > VAProfileJPEGBaseline : VAEntrypointEncPicture > VAProfileVP8Version0_3 : VAEntrypointVLD > VAProfileVP8Version0_3 : VAEntrypointEncSlice > VAProfileHEVCMain : VAEntrypointVLD > VAProfileHEVCMain : VAEntrypointEncSlice > > And what I don't understand is, why cannot I install the 1.12 > version from sources while I can install from Ubuntu packages (I > think it's the 1.8 version) ? Currently, I have on this machine > GStreamer and GStreamer-VAAPI from apt-get repo. OK, it looks like you've got libva and a driver all configured here so gstreamer-vaapi should work. You can check that you have the plugin built and installed in the right place by doing `gst-inspect-1.0 vaapi`. If you see the message "No such element or plugin 'vaapi'" then you've got a problem with your building/installing. If you see output like: Plugin Details: Name vaapi Description VA-API based elements Filename /home/scott-ph/gst-build/build/subprojects/gstreamer-vaapi/gst/vaapi/libgstvaapi.so Version 1.13.0.1 License LGPL Source module gstreamer-vaapi Binary package gstreamer-vaapi Origin URL http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer 0 features: Make sure the filename is the right path for your new build. If you see the '0 features' bit at the end then it means that the plugin is built but it has not found supported codecs through libva and so hasn't registered anything. The determination that nothing should be registered is cached instead of checked each time, so to make it re-check with libva and see the error you can run with a temporary other registry file: GST_REGISTRY=/tmp/some-debug-registry GST_DEBUG=vaapi:5 gst-inspect-1.0 vaapi If instead of '0 features' you see some number of features then the plugin is working and ready to go. > Thanks > > -- > gstreamer-devel mailing list > [hidden email] > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Right, as I have something working today, with version 1.8.3, I will first finish my project before trying again the building.
Thank you a lot for all the details, I'll try asap, and of course I'll come back. |
In reply to this post by Scott D Phillips
On 06/07/17 at 05:58pm, Scott D Phillips wrote:
> gstreamer-vaapi tries to be clever about registering the plugin > only when it finds a libva driver that is working on your system, > and then only registering the codecs which it finds are supported > on your system. Are you sure that you have a libva driver > installed? This has been a repetitive question for a long time. Note to myself: write a blog post explaining this issue, to address it when the question shows up. vmjl _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
I'm back, with new informations ! So, I was trying to use vaapidecode for my project with 1.8 version, but as mentioned in this post, it is preferable to use 1.12. I have uninstalled 1.8 version again, in order to install correctly 1.12. I followed each step carefully, logged any "./configure ..." for each plugin, and now it's working. I can get info on vaapidecodebin (I think it replaces vapidecode in 1.12 ?). If you are interested in the logs, I can send it. And just a few details, I purged all the packets libgstreamer* and gstreamer* (before, I did a backup of apt), and after that I installed gstreamer-1.12, then plugins Base, Good, Bad and then Vaapi (with `./configure ... && make -j$(nproc) && sudo make install`) |
I'm coming back with bad news...
Actually, I don't really have 1.12 working. I mean, when I installed it first, and told you it was okay, I hadn't reboot the computer yet. And when I did it, I couldn't get the screen working, I was unable to access the Desktop, but only ttys. So I backup-ed my packets to get the screen working good, but it uninstalled 1.12 for 1.8 again. Finally, I deal with a loop, because whenever I try to purge three libgstreamers packets, it tries to purge also a bunch of others packets, and if it is not purged, I can't expect to install 1.12 version. I've just fail, I tried to uninstall the old version, listing every packets that shouldn't be purged, then install gstreamer 1.12 (with Base, Good, Bad an Vaapi plugins) and install back listed packets. Unfortunately, once done, Gstreamer 1.8 was back, instead of 1.12 ! Do you have any clue on what's going on ? |
Hmm, maybe you should try to build all gstreamer projects and use it without installation. There's a simple way provided by gstreamer. Note that this is going to pull out the master of gstreamer. Here's the step: 1. Pull and build all gstreamer projects 1) Download the script https://cgit.freedesktop.org/gstreamer/gstreamer/plain/scripts/create-uninstalled-setup.sh 2) Modify the script to add gstreamer-vaapi In line 46: from MODULES="gstreamer gst-plugins-base gst-plugins-good gst-plugins-ugly gst-plugins-bad gst-libav" to MODULES="gstreamer gst-plugins-base gst-plugins-good gst-plugins-ugly gst-plugins-bad gst-libav gstreamer-vaapi" 3) Run the script # sh ./create-uninstalled-setup.sh ( which creates ~/gst directory by default ) 4) Get into the gst-uninstalled shell and build all # ~/gst/gst-master ( by default ) # cd <MODULE>; ./autogen.sh; make ( First gstreamer, then gst-plugins-base, then the other modules. You do NOT need to do 'make install' ) 2. Test Once step 1 is all done, you should verify if it's built perfectly on gst-uninstalled shell. # gst-inspect-1.0 --version : this should print out "1.13" # gst-inspect-1.0 vaapi : this should print out information of vaapi elements. # gst-launch-1.0 playbin [file] : should play well. (check if vaapi elements are working with GST_DEUBG=vaapi*:6) This is not going to harm your system since they are not installed to your /usr/local/lib or /usr/lib. You can just run ~/gst/gst-master to get into the sandboxed shell and then you can use your new gstreamer. |
On 06/13/17 at 06:36pm, Hyunjun Ko wrote:
> Zelnes wrote > > I'm coming back with bad news... > > Actually, I don't really have 1.12 working. I mean, when I installed it > > first, and told you it was okay, I hadn't reboot the computer yet. And > > when I did it, I couldn't get the screen working, I was unable to access > > the Desktop, but only ttys. So I backup-ed my packets to get the screen > > working good, but it uninstalled 1.12 for 1.8 again. > > Finally, I deal with a loop, because whenever I try to purge three > > libgstreamers packets, it tries to purge also a bunch of others packets, > > and if it is not purged, I can't expect to install 1.12 version. I've just > > fail, I tried to uninstall the old version, listing every packets that > > shouldn't be purged, then install gstreamer 1.12 (with Base, Good, Bad an > > Vaapi plugins) and install back listed packets. Unfortunately, once done, > > Gstreamer 1.8 was back, instead of 1.12 ! > > > > Do you have any clue on what's going on ? Compiling gstreamer in general, and gstreamer-vaapi in particular, might a bit tricky because all the dependencies, either at compilation time and at run time. You must to keep in mind them while tinkering with them. What Hyunjun said is a way to simplify a development environment for gstreamer. You can find more info here: https://arunraghavan.net/2014/07/quick-start-guide-to-gst-uninstalled-1-x/ > > Hmm, maybe you should try to build all gstreamer projects and use it without > installation. > There's a simple way provided by gstreamer. > Note that this is going to pull out the master of gstreamer. > > Here's the step: > 1. Pull and build all gstreamer projects > 1) Download the script > https://cgit.freedesktop.org/gstreamer/gstreamer/plain/scripts/create-uninstalled-setup.sh > > 2) Modify the script to add gstreamer-vaapi > In line 46: > from MODULES="gstreamer gst-plugins-base gst-plugins-good gst-plugins-ugly > gst-plugins-bad gst-libav" > to MODULES="gstreamer gst-plugins-base gst-plugins-good gst-plugins-ugly > gst-plugins-bad gst-libav gstreamer-vaapi" > > 3) Run the script > # sh ./create-uninstalled-setup.sh ( which creates ~/gst directory by > default ) > > 4) Get into the gst-uninstalled shell and build all > # ~/gst/gst-master ( by default ) > # cd <MODULE>; ./autogen.sh; make > ( First gstreamer, then gst-plugins-base, then the other modules. > You do NOT need to do 'make install' ) > > 2. Test > Once step 1 is all done, you should verify if it's built perfectly on > gst-uninstalled shell. > # gst-inspect-1.0 --version : this should print out "1.13" The problem with version 1.13 is it's a development one. Which means it might be broken some days or hours, since it's changing constantly. Instead of creating a symbolic link called gst-master, create it named gst-1.12 and the script is smart enough to compile the release 1.12 > # gst-inspect-1.0 vaapi : this should print out information of vaapi > elements. > # gst-launch-1.0 playbin [file] : should play well. (check if vaapi > elements are working with GST_DEUBG=vaapi*:6) > > This is not going to harm your system since they are not installed to your > /usr/local/lib or /usr/lib. > You can just run ~/gst/gst-master to get into the sandboxed shell and then > you can use your new gstreamer. > > > > > > -- > View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Problem-installing-GStreamer-vaapi-tp4683225p4683365.html > Sent from the GStreamer-devel mailing list archive at Nabble.com. > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Hyunjun Ko
I have followed your advices, and I finally "installed" 1.12 (I couldn't get 1.13 working, because my libva version is 0.39 and it is required to have at least 0.40). I think every-thing's good now, I checked outside the shell, 3 plugins are present, and in the shell more (167), and vaapi is present. Now that's great, I can even compile without editing the makefile, as pkg-config treats correctly the requested uninstalled libs. But when I run my pipeline in the shell, that is : filesrc location="my_file.mp4" ! qtdemux ! vaapidecodebin ! autovideosink, it works great, and when I want to execute the same in-code (with appsink instead of autovideosink), it does not even recognize qtdemux element, fails at it's creation, and leave the program. Something must be missing, do you have any idea ? |
On 06/14/17 at 06:22am, Zelnes wrote:
> I have followed your advices, and I finally "installed" 1.12 (I couldn't get > 1.13 working, because my libva version is 0.39 and it is required to have at > least 0.40). That might be a bug, since we haven't upgraded the libva version requirement. > I think every-thing's good now, I checked outside the shell, 3 plugins are > present, and in the shell more (167), and vaapi is present. > > Now that's great, I can even compile without editing the makefile, as > pkg-config treats correctly the requested uninstalled libs. But when I run > my pipeline in the shell, that is : filesrc location="my_file.mp4" ! qtdemux > ! vaapidecodebin ! autovideosink, it works great, and when I want to execute > the same in-code (with appsink instead of autovideosink), it does not even > recognize qtdemux element, fails at it's creation, and leave the program. > Something must be missing, do you have any idea ? You need to run (and compile) your program in the gst-uninstalled shell. vmjl _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |