麒麟OS怎么安装FFmpeg_麒麟OS FFmpeg视频处理工具安装教程【进阶】

老辰酱_6846

老辰酱_6846

2026-04-09

1256人浏览

原创

麒麟os部署ffmpeg有五种方法:一、apt在线安装;二、离线.deb包安装;三、源码编译(支持h.264/h.265等自定义编码器);四、符号链接补全动态库路径;五、opencv联动配置确保视频解码正常。

麒麟os怎么安装ffmpeg_麒麟os ffmpeg视频处理工具安装教程【进阶】

如果您在麒麟操作系统上需要部署FFmpeg以支持视频转码、推流、裁剪等多媒体处理任务,但执行ffmpeg -version提示命令未找到或动态库加载失败,则很可能是由于缺少编译依赖、路径未纳入系统环境或共享库未正确链接。以下是针对麒麟OS(特别是银河麒麟V10)的多种可靠安装方法:

一、使用APT包管理器在线安装(推荐初学者)

该方法依赖麒麟OS官方源及适配的deb包,无需手动编译,适合网络通畅且对版本兼容性要求不苛刻的场景。系统会自动解决基础依赖关系。

1、更新软件包索引列表,确保获取最新可用包信息:
sudo apt update

2、执行FFmpeg及其核心开发库的一键安装:
sudo apt install ffmpeg libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libswresample-dev libavfilter-dev -y

3、验证是否安装成功:
ffmpeg -version

若输出包含版本号及编译配置信息,则表明已就绪;如提示command not found,请检查是否因系统为精简版而未启用multiverse源,需先运行:
sudo sed -i 's/main/main universe/g' /etc/apt/sources.list && sudo apt update

二、离线.deb包批量安装(适用于无网络的目标机)

该方法适用于生产环境隔离网络、内网服务器或安全策略禁止在线下载的场景。通过在联网机器预下载所有依赖包,再拷贝至目标机统一安装,可规避网络不可达导致的中断风险。

1、在同版本麒麟OS联网机器上执行下载命令,将FFmpeg及相关依赖缓存至本地:
sudo apt update && sudo apt install --download-only ffmpeg libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libswresample-dev libavfilter-dev

2、进入APT缓存目录并复制全部.deb文件至U盘:
cd /var/cache/apt/archives/ && cp *.deb /media/usb/ffmpeg-offline/

3、在目标麒麟OS机器插入U盘,进入对应路径后创建临时安装目录:
mkdir -p /tmp/ffmpeg-debs && cp /media/usb/ffmpeg-offline/*.deb /tmp/ffmpeg-debs/

4、切换至该目录并执行批量安装:
cd /tmp/ffmpeg-debs && sudo dpkg -i *.deb

5、若出现依赖未满足错误,立即运行修复命令:
sudo apt-get install -f

6、验证安装结果:
ffmpeg -version

若仍报错libavdevice.so.61: cannot open shared object file,说明部分动态库未被系统识别,需手动执行ldconfig刷新缓存:
sudo ldconfig

三、源码编译安装(推荐进阶用户,支持自定义编码器)

该方式可精确控制FFmpeg功能模块(如启用libx264、libfdk-aac、硬件加速等),适用于需H.264/H.265硬编解码、AI视频推理(RKNN协同)或与OpenCV深度集成的场景。需预先安装底层汇编器与编码库。

1、安装前置工具链与依赖库:
sudo apt install build-essential yasm nasm pkg-config libtool autoconf automake cmake -y

2、下载并编译NASM(避免configure阶段因汇编器缺失报错):
wget https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/nasm-2.16.01.tar.xz && tar -xf nasm-2.16.01.tar.xz && cd nasm-2.16.01 && ./configure && make -j$(nproc) && sudo make install

3、下载并编译x264(为启用H.264编码器):
git clone https://code.videolan.org/videolan/x264.git && cd x264 && ./configure --enable-shared --prefix=/usr/local && make -j$(nproc) && sudo make install

4、下载FFmpeg源码并配置编译选项:
wget https://ffmpeg.org/releases/ffmpeg-6.1.1.tar.xz && tar -xf ffmpeg-6.1.1.tar.xz && cd ffmpeg-6.1.1 && ./configure --prefix=/usr/local/ffmpeg --enable-shared --disable-static --enable-gpl --enable-libx264 --enable-libx265 --enable-nonfree --extra-cflags="-I/usr/local/include" --extra-ldflags="-L/usr/local/lib"

5、执行编译与安装:
make -j$(nproc) && sudo make install

6、配置系统级动态库路径:
echo "/usr/local/ffmpeg/lib" | sudo tee /etc/ld.so.conf.d/ffmpeg.conf && sudo ldconfig

7、添加FFmpeg二进制路径至环境变量:
echo 'export PATH=$PATH:/usr/local/ffmpeg/bin' | sudo tee -a /etc/profile && source /etc/profile

8、验证最终安装状态:
/usr/local/ffmpeg/bin/ffmpeg -version

若输出中显示configuration: --enable-libx264 --enable-libx265,表示H.264/H.265编码器已成功启用。

四、符号链接补全法(专治“找不到so文件”类故障)

该方法用于修复已安装FFmpeg但运行时报“cannot open shared object file”错误的情形,本质是强制建立/usr/lib到/usr/local/ffmpeg/lib下各so文件的软链接,使系统加载器能定位到动态库。

1、确认FFmpeg安装路径下的lib目录存在且包含所需so文件:
ls /usr/local/ffmpeg/lib/ | grep -E "libavcodec|libavformat|libavutil"

2、依次为关键动态库创建全局符号链接:
sudo ln -sf /usr/local/ffmpeg/lib/libavcodec.so.61 /usr/lib/libavcodec.so.61

3、继续链接其余必要库:
sudo ln -sf /usr/local/ffmpeg/lib/libavformat.so.61 /usr/lib/libavformat.so.61

4、链接音视频工具链核心库:
sudo ln -sf /usr/local/ffmpeg/lib/libavutil.so.59 /usr/lib/libavutil.so.59

5、链接滤镜与重采样模块:
sudo ln -sf /usr/local/ffmpeg/lib/libavfilter.so.10 /usr/lib/libavfilter.so.10 && sudo ln -sf /usr/local/ffmpeg/lib/libswresample.so.5 /usr/lib/libswresample.so.5

6、刷新动态链接缓存以生效:
sudo ldconfig

7、再次运行验证命令:
ffmpeg -version

若仍提示某so文件缺失,可通过find /usr/local/ffmpeg/lib -name "lib*.so*"定位实际文件名,并按相同格式补全对应链接。

五、OpenCV联动配置(确保cv2.VideoCapture正常读取MP4)

该步骤专为需在Python中调用OpenCV进行视频帧处理的用户设计,解决OpenCV因未链接FFmpeg后端而导致无法解码MP4/H.265等格式的问题。

1、确认OpenCV已启用FFmpeg支持:
python3 -c "import cv2; print(cv2.getBuildInformation())" | grep -A 5 "Video I/O"

2、若输出中显示FFMPEG: NO,说明OpenCV编译时未关联FFmpeg库,需重新编译OpenCV并显式指定路径。

3、创建OpenCV构建目录并执行CMake配置:
mkdir -p opencv-build && cd opencv-build && cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_FFMPEG=ON -D OPENCV_DNN_CUDA=OFF -D OPENCV_ENABLE_NONFREE=ON -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules -D CMAKE_LIBRARY_PATH=/usr/local/ffmpeg/lib -D PKG_CONFIG_EXECUTABLE=/usr/bin/pkg-config ..

4、编译并安装OpenCV:
make -j$(nproc) && sudo make install

5、更新系统库缓存并验证:
sudo ldconfig && python3 -c "import cv2; cap = cv2.VideoCapture('test.mp4'); print(cap.isOpened())"

若返回True,表明OpenCV已成功通过FFmpeg后端打开MP4文件。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end='\n', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.27

2420

5

python print用法与作用
python print用法与作用

本专题整合了python print的用法、作用、函数功能相关内容,阅读专题下面的文章了解更多详细教程。

2026.02.03

229

24

自建git服务器
自建git服务器

git服务器是目前流行的分布式版本控制系统之一,可以让多人协同开发同一个项目。本专题为大家提供自建git服务器相关的各种文章、以及下载和课程。

2023.07.05

5319

9

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

2023.07.06

1620

6

git撤销提交的commit
git撤销提交的commit

Git是一个强大的版本控制系统,它提供了很多功能帮助开发人员有效地管理和控制代码的变更,本专题为大家提供git 撤销提交的commit相关的各种文章内容,供大家免费下载体验。

2023.07.24

934

5

git提交错误怎么撤回
git提交错误怎么撤回

git提交错误撤回的方法:git reset head^:撤回最后一次提交,恢复到提交前状态。git revert head:创建新提交,内容与之前提交相反。git reset :使用提交的 sha-1 哈希撤回指定提交。交互式舞台区:标记要撤回的特定更改,然后提交,排除已撤回更改。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.09

3477

7

git怎么对比两个版本的文件内容
git怎么对比两个版本的文件内容

要对比两个版本的 git 文件,请使用 git diff 命令:git diff 比较工作树和暂存区之间的差异。git diff 比较两个提交或标签之间的差异。git diff 输出显示差异块,其中 + 表示添加的行,- 表示删除的行, 表示修改的行。可使用 gitkraken、meld、beyond compare 等可视化工具更直观地查看差异。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.09

3141

6

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.08.16

5290

6

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.3万人学习