결론
1.12와 1.8간의 버젼차이로 주요 plugin들이 제대로 동작하지 않습니다.
같은 방법으로 1.8.3을 manual로 재설치하면 잘 동작합니다.
TX2 Board는 ubuntu 기반으로 되어 있습니다.
기존 Gstreamer 1.8 가 설치되어 있는데, 17년 7월 중순에 릴리즈된 1.12을 설치하는 방법입니다. NVIDIA 공식문서에도 간단히 설명이 되어 있지만 시행착오부분이 있어 정리합니다.
원래 gst-install 이라는 툴을 제공해서 간단히 설치하면 되지만, 본인의 환경에서는 (JetSon3 설치이후) gst-install에서 내부적으로 수행하는 wget 이 인증문제가 발생하여 사용할 수 없었습니다.
참고내용
설치하려는 위치
/home/nvidia/works/fakeroot
Gstreamer 파일을 다운받을 위치는 아무곳이나 상관없지만 여기서는
/home/nvidia/works/gst
라고 가정합니다.
mkdir -p /home/nvidia/works/fakeroot
mkdir -p /home/nvidia/works/gst
cd /home/nvidia/works/gst
Gstreamer 패키지를 다운받습니다.
● gstreamer-1.12.2.tar.xz
● gst-plugins-base-1.12.2.tar.xz
● gst-plugins-good-1.12.2.tar.xz
● gst-plugins-bad-1.12.2.tar.xz
● gst-plugins-ugly-1.12.2.tar.xz
wget 인증에러가 발생하므로(개별 환경마다 다른것 같습니다)
wget --no-check-certificate https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.12.2.tar.xz
--no-check-certificate 옵션을 붙여서 전부 다운받고 압축을 해제합니다.
빌드에 필요한 패키지를 설치합니다.
sudo apt-get install build-essential dpkg-dev flex bison autotools-dev automake liborc-dev autopoint libtool gtk-doc-tools libgstreamer1.0-dev
sudo apt-get install libxv-dev libasound2-dev libtheora-dev libogg-dev libvorbis-dev
sudo apt-get install libbz2-dev libv4l-dev libvpx-dev libjack-dev libsoup2.4-dev libpulse-dev
sudo apt-get install faad libfaad-dev libfaac-dev libgl1-mesa-dev libgles2-mesa-dev libopencv-dev
sudo apt-get install libx264-dev libmad0-dev
환경변수를 변경합니다.
압축이 풀린 개별 directory로 이동해서 configure합니다. prefix인자를 지정합니다.
./configure --prefix=/home/nvidia/works/fakeroot
단 bad plugin은 DRM관련 인증에러가 발생합니다.
이것을 피하려면 --disable-examples 을 추가합니다.
./configure --prefix=/home/nvidia/works/fakeroot --disable-examples
이것을 추가했을때 side effect는 확인못했습니다.
끝으로 nvidia 독점권이 있는 plugin과 h파일을 새로운 위치로 복사합니다.
libgstnvcamera.so
libgstnveglglessink.so
libgstnveglstreamsrc.so
libgstnvegltransform.so
libgstnvivafilter.so
libgstnvvidconv.so
libgstnvvideosink.so
libnvgstjpeg.so
libgstomx.so
끝
1.12와 1.8간의 버젼차이로 주요 plugin들이 제대로 동작하지 않습니다.
같은 방법으로 1.8.3을 manual로 재설치하면 잘 동작합니다.
---------------------------------------------------------------------------------
TX2 Board는 ubuntu 기반으로 되어 있습니다.
기존 Gstreamer 1.8 가 설치되어 있는데, 17년 7월 중순에 릴리즈된 1.12을 설치하는 방법입니다. NVIDIA 공식문서에도 간단히 설명이 되어 있지만 시행착오부분이 있어 정리합니다.
원래 gst-install 이라는 툴을 제공해서 간단히 설치하면 되지만, 본인의 환경에서는 (JetSon3 설치이후) gst-install에서 내부적으로 수행하는 wget 이 인증문제가 발생하여 사용할 수 없었습니다.
참고내용
- http://developer.download.nvidia.com/embedded/L4T/r23_Release_v1.0/L4T_Tegra_X1_Multimedia_User_Guide.pdf
- https://developer.nvidia.com/embedded/dlc/l4t-accelerated-gstreamer-guide-27-1
설치하려는 위치
/home/nvidia/works/fakeroot
Gstreamer 파일을 다운받을 위치는 아무곳이나 상관없지만 여기서는
/home/nvidia/works/gst
라고 가정합니다.
mkdir -p /home/nvidia/works/fakeroot
mkdir -p /home/nvidia/works/gst
cd /home/nvidia/works/gst
Gstreamer 패키지를 다운받습니다.
● gstreamer-1.12.2.tar.xz
● gst-plugins-base-1.12.2.tar.xz
● gst-plugins-good-1.12.2.tar.xz
● gst-plugins-bad-1.12.2.tar.xz
● gst-plugins-ugly-1.12.2.tar.xz
wget 인증에러가 발생하므로(개별 환경마다 다른것 같습니다)
wget --no-check-certificate https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.12.2.tar.xz
--no-check-certificate 옵션을 붙여서 전부 다운받고 압축을 해제합니다.
빌드에 필요한 패키지를 설치합니다.
sudo apt-get install build-essential dpkg-dev flex bison autotools-dev automake liborc-dev autopoint libtool gtk-doc-tools libgstreamer1.0-dev
sudo apt-get install libxv-dev libasound2-dev libtheora-dev libogg-dev libvorbis-dev
sudo apt-get install libbz2-dev libv4l-dev libvpx-dev libjack-dev libsoup2.4-dev libpulse-dev
sudo apt-get install faad libfaad-dev libfaac-dev libgl1-mesa-dev libgles2-mesa-dev libopencv-dev
sudo apt-get install libx264-dev libmad0-dev
환경변수를 변경합니다.
export LD_LIBRARY_PATH=/home/nvidia/works/fakeroot/lib/
export
PKG_CONFIG_PATH=/home/nvidia/works/fakeroot/lib/pkgconfig
압축이 풀린 개별 directory로 이동해서 configure합니다. prefix인자를 지정합니다.
./configure --prefix=/home/nvidia/works/fakeroot
단 bad plugin은 DRM관련 인증에러가 발생합니다.
- ake[5]: Entering directory '/home/nvidia/works/gst/gst-plugins-bad-1.12.2/tests/examples/gl/generic/cube'
- CXX cube-main.o
- CXXLD cube
- /usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmMap'
- /usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmCloseOnce'
- /usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmUnmap'
- /usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmOpenOnce'
- collect2: error: ld returned 1 exit status
이것을 피하려면 --disable-examples 을 추가합니다.
./configure --prefix=/home/nvidia/works/fakeroot --disable-examples
이것을 추가했을때 side effect는 확인못했습니다.
끝으로 nvidia 독점권이 있는 plugin과 h파일을 새로운 위치로 복사합니다.
libgstnvcamera.so
libgstnveglglessink.so
libgstnveglstreamsrc.so
libgstnvegltransform.so
libgstnvivafilter.so
libgstnvvidconv.so
libgstnvvideosink.so
libnvgstjpeg.so
libgstomx.so
cp /usr/lib/aarch64-linux-gnu/gstreamer-1.0/*
home/nvidia/works/fakeroot/lib/gstreamer-1.0/ -n
cp
/usr/lib/aarch64-linux-gnu/gstreamer-1.0/include/gst/gstconfig.h /home/nvidia/works/fakeroot/lib/gstreamer-1.0/include/gst
끝
댓글