Altas200环境搭建踩坑记录-ffmpeg安装、卸载、升级
文章目录
环境介绍
环境搭建过程中的踩坑记录
开发板:Huawei Atals 200I DK A2 内存:4G NPU:Ascend 310B4 CANN:7.0.RC1
提示:以下是本篇文章正文内容,下面案例可供参考
一、编译代码时报错信息
安装ffmpeg后,报错及解决方案libavdevice.so.58:,ffmpeg找不到avpriv_packet_list_free、avpriv_packet_list_get、avpriv_packet_list_put。
[17:40:17:294]/usr/bin/ld: /lib/aarch64-linux-gnu/libavformat.so.58: undefined reference to `avpriv_packet_list_free@LIBAVCODEC_58'
[17:40:17:306]/usr/bin/ld: /lib/aarch64-linux-gnu/libavformat.so.58: undefined reference to `avpriv_packet_list_get@LIBAVCODEC_58'
[17:40:17:314]/usr/bin/ld: /lib/aarch64-linux-gnu/libavformat.so.58: undefined reference to `avpriv_packet_list_put@LIBAVCODEC_58'
[17:40:17:318]/usr/bin/ld: /lib/aarch64-linux-gnu/libavformat.so.58: undefined reference to `avpriv_mpeg4audio_get_config2@LIBAVCODEC_58'
[17:40:17:326]collect2: error: ld returned 1 exit status
[17:40:17:338]make[2]: *** [CMakeFiles/main.dir/build.make:98: /root/EdgeAndRobotics/Samples/HandWritingTrainAndInfer/omInfer/out/main] Error 1
[17:40:17:338]make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/main.dir/all] Error 2
[17:40:17:342]make: *** [Makefile:136: all] Error 2
[17:40:17:342][ERROR] build failed, Please check your environment!
二、问题分析
1.查询版本:ffmpeg -version
发现ffmpeg version 4.2.9
[08:47:20:705](base) root@davinci-mini:~# ffmpeg -version
[08:47:20:830]ffmpeg version 4.2.9 Copyright (c) 2000-2023 the FFmpeg developers
[08:47:20:845]built with gcc 11 (Ubuntu 11.3.0-1ubuntu1~22.04.1)
2.确认ffmpeg4.2.9中是否有avpriv_packet_list_free
接下来需要确认ffmpeg version 4.2.9中是否有avpriv_packet_list_free这个函数。
点击进入:
https://ffmpeg.org/doxygen/4.2/files.html
查找avpriv_packet_list_free,没有找到。
查看4.3版本的依然没有
3.找个包含该函数的version
查看V4.4版本,已包含avpriv_packet_list_free、avpriv_packet_list_get、avpriv_packet_list_put。
4.解决方案
更新FFmpeg版本。卸载旧版本,安装新版本。
三、安装与卸载
1.安装ffmpeg
如果有旧版本,先按照下面内容卸载掉。
开始安装:(可以制定需要下载的版本号)
wget https://ffmpeg.org/releases/ffmpeg-4.4.4.tar.gz
详细信息:
[10:41:14:868](base) root@davinci-mini:/home/HwHiAiUser# wget https://ffmpeg.org/releases/ffmpeg-4.4.4.tar.gz
[10:41:14:868]--2024-04-11 10:40:13-- https://ffmpeg.org/releases/ffmpeg-4.4.4.tar.gz
[10:41:15:243]Resolving ffmpeg.org (ffmpeg.org)... 79.124.17.100
[10:41:15:477]Connecting to ffmpeg.org (ffmpeg.org)|79.124.17.100|:443... connected.
[10:41:16:243]HTTP request sent, awaiting response... 200 OK
[10:41:16:243]Length: 14369543 (14M) [application/x-gzip]
[10:41:16:243]Saving to: ‘ffmpeg-4.4.4.tar.gz’
[10:41:16:243]
[10:41:51:256]ffmpeg-4.4.4.tar.gz 100%[===================================================================================================================>] 13.70M 1.59MB/s in 35s
[10:41:51:256]
[10:41:51:256]2024-04-11 10:40:50 (401 KB/s) - ‘ffmpeg-4.4.4.tar.gz’ saved [14369543/14369543]
[10:41:51:256]
[10:41:54:224](base) root@davinci-mini:/home/HwHiAiUser#
[10:42:20:645](base) root@davinci-mini:/home/HwHiAiUser# ls
[10:42:20:672]ACLLite Desktop Downloads Music Public Videos aicpu_package_install.info hdc_ppc mysample samples
[10:42:20:694]Ascend Documents E2ESamples Pictures Templates aicpu_kernels ffmpeg-4.4.4.tar.gz ide_daemon new_sd_initialization var
依次执行:
tar -zxvf ffmpeg-4.4.4.tar.gz
cd ffmpeg-4.4.4
./configure --disable-static --enable-shared --disable-doc --enable-ffplay --enable-ffprobe --enable-avdevice --disable-debug --enable-demuxers --enable-parsers --enable-protocols --enable-small --enable-avresample
make
make install
cd /etc/ld.so.conf.d
给ffmpeg.conf中添加/usr/local/lib
vim ffmpeg.conf
ldconfig
export FFMPEG_PATH=/usr/local/lib
查看版本:ffmpeg -version
[11:10:15:579](base) root@davinci-mini:/home/HwHiAiUser/ffmpeg-4.4.4# ffmpeg -version
[11:10:15:735]ffmpeg version 4.4.4 Copyright (c) 2000-2023 the FFmpeg developers
[11:10:15:735]built with gcc 11 (Ubuntu 11.3.0-1ubuntu1~22.04.1)
[11:10:15:751]configuration: --disable-static --enable-shared --disable-doc --enable-ffplay --enable-ffprobe --enable-avdevice --disable-debug --enable-demuxers --enable-parsers --enable-protocols --enable-small --enable-avresample
[11:10:15:751]libavutil 56. 70.100 / 56. 70.100
[11:10:15:751]libavcodec 58.134.100 / 58.134.100
[11:10:15:751]libavformat 58. 76.100 / 58. 76.100
[11:10:15:751]libavdevice 58. 13.100 / 58. 13.100
[11:10:15:751]libavfilter 7.110.100 / 7.110.100
[11:10:15:751]libavresample 4. 0. 0 / 4. 0. 0
[11:10:15:751]libswscale 5. 9.100 / 5. 9.100
[11:10:15:751]libswresample 3. 9.100 / 3. 9.100
[11:10:52:221](base) root@davinci-mini:
2.ubuntu彻底卸载ffmpeg
卸载前查看版本:ffmpeg -version
[10:29:01:451](base) root@davinci-mini:/home/HwHiAiUser/ffmpeg# ffmpeg -version
[10:29:01:592]ffmpeg version 4.2.9 Copyright (c) 2000-2023 the FFmpeg developers
[10:29:01:592]built with gcc 11 (Ubuntu 11.3.0-1ubuntu1~22.04.1)
[10:29:01:592]configuration: --disable-static --enable-shared --disable-doc --enable-ffplay --enable-ffprobe --enable-avdevice --disable-debug --enable-demuxers --enable-parsers --enable-protocols --enable-small --enable-avresample
[10:29:01:607]libavutil 56. 31.100 / 56. 70.100
[10:29:01:607]libavcodec 58. 54.100 / 58.134.100
[10:29:01:607]libavformat 58. 29.100 / 58. 76.100
[10:29:01:607]libavdevice 58. 8.100 / 58. 13.100
[10:29:01:607]libavfilter 7. 57.100 / 7.110.100
[10:29:01:607]libavresample 4. 0. 0 / 4. 0. 0
[10:29:01:607]libswscale 5. 5.100 / 5. 9.100
[10:29:01:607]libswresample 3. 5.100 / 3. 9.100
彻底卸载,查看ffmpeg:
sudo dpkg -l | grep ffmpeg
如下:
[10:31:40:809](base) root@davinci-mini:/home/HwHiAiUser/ffmpeg# dpkg -l | grep ffmpeg
[10:31:40:857]ii ffmpeg 7:4.4.2-0ubuntu0.22.04.1 arm64 Tools for transcoding, streaming and playing of multimedia files
[10:31:40:872]ii ffmpegthumbnailer 2.2.2+dfsg-1 arm64 fast and lightweight video thumbnailer
[10:31:40:894]ii libffmpegthumbnailer4v5:arm64 2.2.2+dfsg-1 arm64 shared library for ffmpegthumbnailer
卸载:
sudo find / | grep -w ffmpeg | sudo xargs rm -r -f
sudo apt-get --purge remove ffmpeg
sudo apt-get --purge autoremove
详细信息:
[10:32:00:909](base) root@davinci-mini:/home/HwHiAiUser/ffmpeg# find / | grep -w ffmpeg | sudo xargs rm -r -f
[10:32:18:685](base) root@davinci-mini:/home/HwHiAiUser/ffmpeg# apt-get --purge remove ffmpeg
[10:32:18:998]Reading package lists... Done
[10:32:19:545]Building dependency tree... Done
[10:32:19:560]Reading state information... Done
[10:32:20:398]sh: 0: getcwd() failed: No such file or directory
[10:32:20:486]The following packages will be REMOVED:
[10:32:20:501] ffmpeg*
[10:32:20:517]sh: 0: getcwd() failed: No such file or directory
[10:32:20:580]0 upgraded, 0 newly installed, 1 to remove and 171 not upgraded.
[10:32:20:593]sh: 0: getcwd() failed: No such file or directory
[10:32:20:625]After this operation, 2251 kB disk space will be freed.
[10:32:25:189]Do you want to continue? [Y/n] y
[10:32:25:819]sh: 0: getcwd() failed: No such file or directory
[10:32:26:437]dpkg: warning: files list file for package 'ffmpeg' missing; assuming package has no files currently installed
[10:32:27:160](Reading database ... 230183 files and directories currently installed.)
[10:32:27:175]Removing ffmpeg (7:4.4.2-0ubuntu0.22.04.1) ...
[10:32:29:657]sh: 0: getcwd() failed: No such file or directory
[10:32:57:443](base) root@davinci-mini:/home/HwHiAiUser/ffmpeg# sudo apt-get --purge autoremove
[10:32:57:771]Reading package lists... Done
[10:32:58:311]Building dependency tree... Done
[10:32:58:311]Reading state information... Done
[10:32:59:155]sh: 0: getcwd() failed: No such file or directory
[10:32:59:280]sh: 0: getcwd() failed: No such file or directory
[10:32:59:342]0 upgraded, 0 newly installed, 0 to remove and 171 not upgraded.
[10:32:59:358]sh: 0: getcwd() failed: No such file or directory
[10:32:59:389]sh: 0: getcwd() failed: No such file or directory
查看是否卸载成功:
ffmpeg -version
如下,卸载成功。
[10:33:05:476](base) root@davinci-mini:/home/HwHiAiUser/ffmpeg# ffmpeg -version
[10:33:05:476]-bash: /usr/local/bin/ffmpeg: No such file or directory