ffmpeg: symbol lookup error: /usr/lib/aarch64-linux-gnu/libavutil.so.56: undefined symbol: drmGetRenderDeviceNameFromFd
Installation instructions were:
RUN export DEBIAN_FRONTEND=noninteractive; \
apt-get -y update && apt-get -y install software-properties-common \
&& add-apt-repository -y ppa:jonathonf/ffmpeg-4 \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.1 LTS
Release: 16.04
Codename: xenial
Running on a Tx2
DaneLLL
October 23, 2020, 3:43am
#3
Hi,
Do you use r32.4.3? We enable hardware decoding in ffmpeg from r32.4.3. Previous release doesn’t support it.
No, R28 (release), REVISION: 2.0. Is there a way to use ffmpeg without hardware decoding? I just want it to work, I don’t need it to be fast
DaneLLL
October 25, 2020, 11:18pm
#5
Hi,
On r28 release(2), ffmpeg with hardware acceleration is not supported. Suggest use gstreamer and jetson_multiedia_api.
https://developer.nvidia.com/embedded/linux-tegra-r2821
And if you use TX2, we would suggest upgrade to r28.2.1. We only support r28.2/TX1. Please check
https://developer.nvidia.com/embedded/linux-tegra-r282
NVIDIA Tegra Linux Driver Package supports development for the following platform:
* NVIDIA® Tegra® X1 series (Jetson TX1)
Hi, that does not answer my question.
What I would like to know is whether it’s possible to install and use ffmpeg on my version with only cpu decoding (not with hardware acceleration).
Thanks!
Hi there, following up on this
DaneLLL
November 6, 2020, 4:46am
#8
Hi,
You can install the package through
$ sudo apt install ffmpeg
Or download the source code package and compile it:
Perhaps you just didn’t read the prior parts of this thread. This does not work.
$ sudo apt install ffmpeg
Reading package lists... Done
Building dependency tree
Reading state information... Done
ffmpeg is already the newest version (7:4.2.2-0york0~16.04).
The following packages were automatically installed and are no longer required:
debhelper dh-strip-nondeterminism gettext gettext-base gfortran-5
gir1.2-atk-1.0 gir1.2-gdkpixbuf-2.0 gir1.2-gtk-2.0 gir1.2-pango-1.0
groff-base hicolor-icon-theme intltool-debian libarchive-zip-perl
libasprintf-dev libasprintf0v5 libatk1.0-0 libatk1.0-data libatk1.0-dev
libatlas3-base libavahi-client3 libavahi-common-data libavahi-common3
libavformat-ffmpeg56 libavutil-dev libblas-common libblas3 libcups2
libdc1394-22-dev libfile-stripnondeterminism-perl libgdk-pixbuf2.0-dev
libgettextpo-dev libgettextpo0 libgfortran-5-dev libgfortran3 libgtk2.0-0
libgtk2.0-bin libgtk2.0-common libgtkglext1 libharfbuzz-dev
libharfbuzz-gobject0 libharfbuzz-icu0 libilmbase-dev libilmbase12 libjasper1
libjpeg8-dev libmail-sendmail-perl libmodplug1 libopencv-calib3d-dev
libopencv-calib3d2.4v5 libopencv-contrib2.4v5 libopencv-core-dev
libopencv-core2.4v5 libopencv-features2d-dev libopencv-features2d2.4v5
libopencv-flann-dev libopencv-flann2.4v5 libopencv-gpu-dev
libopencv-gpu2.4v5 libopencv-highgui2.4v5 libopencv-imgproc-dev
libopencv-imgproc2.4v5 libopencv-legacy2.4v5 libopencv-ml-dev
libopencv-ml2.4v5 libopencv-objdetect2.4v5 libopencv-ocl2.4v5
libopencv-photo-dev libopencv-photo2.4v5 libopencv-stitching-dev
libopencv-stitching2.4v5 libopencv-superres2.4v5 libopencv-ts-dev
libopencv-ts2.4v5 libopencv-video-dev libopencv-video2.4v5
libopencv-videostab2.4v5 libopencv2.4-java libopencv2.4-jni libopenexr-dev
libopenexr22 libpango1.0-dev libpangox-1.0-0 libpangoxft-1.0-0 libpipeline1
libraw1394-dev libraw1394-tools libswresample-dev libswscale-ffmpeg3
libsys-hostname-long-perl libtimedate-perl libunistring0 libv4l-0
libv4l2rds0 libv4lconvert0 libxcomposite-dev libxcomposite1 libxcursor-dev
libxft-dev libxft2 libxinerama-dev libxml2-utils libxrandr-dev man-db
opencv-data po-debconf x11proto-composite-dev x11proto-randr-dev
x11proto-xinerama-dev
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 156 not upgraded.
$ ffmpeg
ffmpeg: symbol lookup error: /usr/lib/aarch64-linux-gnu/libavdevice.so.58: undefined symbol: drmModeFreeFB
DaneLLL
November 9, 2020, 1:56am
#10
Hi,
Please refer to the post:
There appears to be some issues with symbolic links. /usr/lib/aarch64-linux-gnu/libdrm.so.2 appears to be a symbolic link which points to the wrong file. It’s hard to tell if it gets overwritten or is setup incorrectly to begin with. As a workaround, you can try:
sudo rm /usr/lib/aarch64-linux-gnu/libdrm.so.2
sudo -H ln -s /usr/lib/aarch64-linux-gnu/libdrm.so /usr/lib/aarch64-linux-gnu/libdrm.so.2
Installing gazebo from the repositories worked correctly once that change was made on this Xavi…
Pease try to hard link libdrm.so.2 to correct file.
I tried to link libdrm.so.2
to the correct file with
sudo rm /usr/lib/aarch64-linux-gnu/libdrm.so.2
sudo -H ln -s /usr/lib/aarch64-linux-gnu/libdrm.so.2.4.0 /usr/lib/aarch64-linux-gnu/libdrm.so.2
but it remains in a broken state:
ffmpeg: symbol lookup error: /usr/lib/aarch64-linux-gnu/libavdevice.so.58: undefined symbol: drmModeFreeFB
DaneLLL
November 10, 2020, 8:38am
#12
Hi,
Are you able to down the source code and build it on TX2? Since r28 release(s) is old, maybe try ffmpeg2.6.9 or 3.3.9.
Yes, rebuilding ffmpeg 3.4.8 works just fine. Since many of the devices I maintain are in remote settings and require cellular data to be updated, I would prefer to avoid having to push an update as large as the ffmpeg package.
Do you think there may be a smaller change I can make, or am I stuck with the solution of pushing a wholly new ffmpeg version?