Closed serhan-gul closed 4 years ago
You may need to build gst-plugins-bad with the git patch applied from this repo for it to work
Hi @serhannn, I hope you build and installed svt hevc library already. Could you check that?
Make sure first that SVT-HEVC library is installed and can be found using pkg-config. You can do that using CMake:
cmake -P SVT-HEVC/Build/linux/release/Source/Lib/cmake_install.cmake
You may need to build gst-plugins-bad with the git patch applied from this repo for it to work
Hi Chris, what you mentioned is another way to build gst plugin. Both methods should work. https://github.com/OpenVisualCloud/SVT-HEVC/tree/master/gstreamer-plugin/git-patch
Hi @tianjunwork, yes I can confirm that SvtHevcEncApp is installed under /usr/local/bin
and works.
It is strange that the plugin is installed in the right place but not recognized by gstreamer.
Hi @serhannn I noticed your gst is 1.16.1, on which we did have same issue. #391 is the fix. Please try it out.
@tianjunwork My clone already includes that fix and Gstreamer already finds pbutils as I posted above:
Run-time dependency gstreamer-pbutils-1.0 found: YES 1.16.1
Is there a linking problem to Gstreamer v1.16.1?
Hi @serhannn , Seems like the build process has a missing link to svthevc lib. could you verify if you've updated the library path to include /usr/local/lib by,
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
If not, please try cleaning and rebuilding gst plugin after updating the lib path.
Hi @serhannn , Please let us know if you still see the issue.
Hi @gokul989, I updated the library path as you suggested but svthevcenc still can't be found by Gstreamer. Below you can see the locations where the svthevcenc library and the gst-plugin are installed.
$ ll /usr/local/lib/libSvt*
lrwxrwxrwx 1 root 18 Nov 13 13:14 /usr/local/lib/libSvtHevcEnc.so -> libSvtHevcEnc.so.1
-rw-r--r-- 1 root 3.7M Nov 13 11:17 /usr/local/lib/libSvtHevcEnc.so.1
$ ll /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstsvt*
-rwxr-xr-x 1 root 138K Nov 21 11:15 /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstsvthevcenc.so*
Hi @serhannn , I've compiled this dockerfile that you can try,
FROM ubuntu:18.04 AS build
WORKDIR /root
RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y -q --no-install-recommends build-essential autoconf make git wget pciutils cpio libtool lsb-release ca-certificates pkg-config bison flex libcurl4-gnutls-dev zlib1g-dev ubuntu-restricted-extras gtk-doc-tools yasm cmake libssl-dev python3-pip libperl-dev libgtk2.0-dev
RUN apt-get install -y python3-setuptools
RUN pip3 install meson
RUN pip3 install ninja
RUN wget http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.16.1.tar.xz && \
tar -xvf gstreamer-1.16* && \
cd gstreamer-1.16.1 && \
./configure --libdir=/usr/lib/x86_64-linux-gnu && \
make && make install
RUN wget http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.16.1.tar.xz && \
tar -xvf gst-plugins-base-1.16* && \
cd gst-plugins-bas* && \
./configure --libdir=/usr/lib/x86_64-linux-gnu && \
make && make install
RUN wget http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.16.1.tar.xz && \
tar -xvf gst-plugins-good-1.16* && \
cd gst-plugins-go* && \
./configure --libdir=/usr/lib/x86_64-linux-gnu && \
make && make install
RUN wget http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.16.1.tar.xz && \
tar -xvf gst-plugins-bad-1.16* && \
cd gst-plugins-bad* && \
./configure --libdir=/usr/lib/x86_64-linux-gnu && \
make && make install
RUN wget http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.16.1.tar.xz && \
tar -xvf gst-plugins-ugly-1.16* && \
cd gst-plugins-ug* && \
./configure --libdir=/usr/lib/x86_64-linux-gnu && \
make && make install
RUN git clone https://github.com/intel/SVT-HEVC && \
cd SVT-HEVC/Build/linux && \
git checkout v1.4.1 && \
./build.sh release shared install
After this, you can build gst-plugin in the container by,
cd /root/SVT-HEVC/gstr*/ && \
meson -Dprefix=/usr build && ninja -C build && ninja -C build install
I've tried this and it works. Please let me know if you face any issues running this.
I followed the instructions to build the Gstreamer plugin for SVT-HEVC and received the following output:
According to the log, everything seems to be fine. However, when I run:
gst-inspect-1.0 svthevcenc
, I get the error:I double-checked to make sure that the file
libgstsvthevcenc.so
is actually in/usr/lib/x86_64-linux-gnu/gstreamer-1.0
. For all other plugins,gst-inspect-1.0
works fine. I also tried building a pipeline using the elementsvthevcenc
to see whether it works but is not recognized bygst-inspect-1.0
; that didn't work too.It seems like something went wrong with the installation. Any ideas?