记录一次FFmpeg的安装过程

ops/2025/1/15 12:11:20/

系统版本:CentOS 7

事情起因:

生产环境因为外网开放,密码强度为初始密码,造成挖矿病毒攻击,删除过程中发现,删除文件的同时,病毒会同时从外网下载,怎么也删除不干净,故决定重装系统。

同事是在2024年6月19日部署的生产环境,不巧的是CentOS 7在2024年6月30日停止维护了,造成无法通过yum命令直接从http://mirrorlist.centos.org下载相应的插件,换成阿里云、网易云、腾讯云之后相应的nasm、yasm、libx264都无法下载下来,所以只能通过下载安装包的形式操作,除此之外,还需要考虑安装版本的问题,最初始的时候没考虑到,造成安装成功,执行的过程中有错误出现。

 

 一、查看nasm、yasm、libx264是否已经安装

-bash-4.2# nasm -version
NASM version 2.13.03 compiled on Jan  7 2025
-bash-4.2# yasm --version
yasm 1.3.0
Compiled on Jan  7 2025.
Copyright (c) 2001-2014 Peter Johnson and other Yasm developers.
Run yasm --license for licensing overview and summary.
-bash-4.2# x264 --version
x264 0.164.3204 373697b
built on Jan  7 2025, gcc: 4.8.5 20150623 (Red Hat 4.8.5-44)
x264 configuration: --chroma-format=all
libx264 configuration: --chroma-format=all
x264 license: GPL version 2 or later

已安装的情况下,可自动忽略下方的安装过程

 二、安装nasm

wget https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/nasm-2.13.03.tar.gz

tar -xvf nasm-2.13.03.tar.gz
cd nasm-2.13.03/
./configure
make && sudo make install

验证是否安装成功

nasm -version

 三、安装yasm

wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz

tar zxvf yasm-1.3.0.tar.gz
cd yasm-1.3.0/
./configure
make && sudo make install

验证是否安装成功

yasm --version

 四、安装x264

git clone https://code.videolan.org/videolan/x264.git

cd x264/
./configure --enable-shared --enable-static
make && sudo make install

验证是否安装成功

x264 --version

 x264配置过程

# 先找到缺失文件的位置,例如执行
find / -name ‘libx264.so.164’
# 得到
/home/soft/x264/libx264.so.164
/usr/local/lib/libx264.so.164
如果查询的时候没有找到的话,直接去/usr/local/lib 查看是否有libx264.so.164# 修改ld.so.conf
vim /etc/ld.so.conf
最后一行添加:/usr/local/lib/#执行 cat /etc/ld.so.conf 命令 展示下方说明修改成功include ld.so.conf.d/*.conf
/usr/local/lib/# 加载改动
ldconfig

五、安装FFmpeg

wget http://ffmpeg.org/releases/ffmpeg-5.0.1.tar.xz

tar -xvJf ffmpeg-5.0.1.tar.xz

mv ffmpeg-5.0.1/ /usr/local/ffmpeg/

cd /usr/local/ffmpeg

./configure --prefix=/home/newdisk/project/video-flv/ffmpeg-5.0 --enable-gpl --enable-libx264 --enable-static --disable-shared --enable-encoder=libx264 --extra-libs=-ldl

【我这里指定了安装位置,你也可以不指定{/home/newdisk/project/video-flv/ffmpeg-5.0}】

make && sudo make install

检查是否安装成功

-bash-4.2# ffmpeg
ffmpeg version 5.0.1 Copyright (c) 2000-2022 the FFmpeg developersbuilt with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-44)configuration: --enable-gpl --enable-libx264 --enable-static --disable-shared --enable-encoder=libx264 --extra-libs=-ldllibavutil      57. 17.100 / 57. 17.100libavcodec     59. 18.100 / 59. 18.100libavformat    59. 16.100 / 59. 16.100libavdevice    59.  4.100 / 59.  4.100libavfilter     8. 24.100 /  8. 24.100libswscale      6.  4.100 /  6.  4.100libswresample   4.  3.100 /  4.  3.100libpostproc    56.  3.100 / 56.  3.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...Use -h to get full help or, even better, run 'man ffmpeg'上方的提示说明安装成功了,如果有红色或者error说明安装失败了
[root@x ffmpeg]# ffmpeg
ffmpeg: error while loading shared libraries: libx264.so.164: cannot open shared object file: No such file or directory
如果出现这种就是x264没有配置成功,找不到,重新配置一下,按照x264的配置过程

 

vim /etc/profile
# 新增
export PATH=$PATH:/usr/local/ffmpeg/bin

# 加载配置 ----必须加载配置,否则不生效
source /etc/profile

 六、测试是否成功

ffprobe rtsp地址

-bash-4.2# ffprobe rtsp://admin:xxxx@xxxxxx:554/Streaming/Channels/101
ffprobe version 5.0.1 Copyright (c) 2007-2022 the FFmpeg developersbuilt with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-44)configuration: --enable-gpl --enable-libx264 --enable-static --disable-shared --enable-encoder=libx264 --extra-libs=-ldllibavutil      57. 17.100 / 57. 17.100libavcodec     59. 18.100 / 59. 18.100libavformat    59. 16.100 / 59. 16.100libavdevice    59.  4.100 / 59.  4.100libavfilter     8. 24.100 /  8. 24.100libswscale      6.  4.100 /  6.  4.100libswresample   4.  3.100 /  4.  3.100libpostproc    56.  3.100 / 56.  3.100
Input #0, rtsp, from 'rtsp://admin:xxx@xxxx:554/Streaming/Channels/101':Metadata:title           : HIK Media Server V4.32.110comment         : HIK Media Server Session Description : standardDuration: N/A, start: 0.040000, bitrate: N/AStream #0:0: Video: h264 (Main), yuvj420p(pc, bt709, progressive), 2560x1440, 25 fps, 25 tbr, 90k tbn

至此整个过程就结束了,如果还有问题,留言一起解决


http://www.ppmy.cn/ops/150004.html

相关文章

使用 Python 实现自动化办公(邮件、Excel)

目录 一、Python 自动化办公的准备工作 1.1 安装必要的库 1.2 设置邮件服务 二、邮件自动化处理 2.1 发送邮件 示例代码 注意事项 2.2 接收和读取邮件 示例代码 三、Excel 自动化处理 3.1 读取和写入 Excel 文件 示例代码 3.2 数据处理和分析 示例代码 四、综合…

泛目录和泛站有什么差别

啥是 SEO 泛目录? 咱先来说说 SEO 泛目录是啥。想象一下,你有一个巨大的图书馆,里面的书架上摆满了各种各样的书,每一本书都代表着一个网页。而 SEO 泛目录呢,就像是一个超级图书管理员,它的任务就是把这些…

CV(9)--迁移学习

前言 仅记录学习过程,有问题欢迎讨论 fine-tuning 在实践中,由于数据集不够大,很少有人从头开始训练网络。常见的做法是使用预训练的网络 (例如在ImageNet上训练的分类1000类的网络)来重新fine-tuning(也…

浅谈云计算06 | 云管理系统架构

云管理系统架构 一、云管理系统架构(一)远程管理系统(二)资源管理系统(三)SLA 管理系统(四)计费管理系统 二、安全与可靠性保障(一)数据安全防线(…

React 进阶之路:深入详解事件绑定的多样方式与区别,促使更加容易理解

React 中的事件绑定是处理用户交互的一个重要方面。React 的事件系统与传统的 DOM 事件系统有所不同,它在设计时考虑了性能、可维护性和易用性,因此 React 提供了多种方式来绑定事件处理程序。理解这些绑定方式及其区别,有助于在实际项目中做…

快速上手 INFINI Console 的 TopN 指标功能

背景 在分布式搜索引擎系统(如 Easysearch、Elasticsearch 和 OpenSearch)中,性能监控至关重要。为了确保系统的高效运行和资源的合理分配,我们通常需要关注一段时间内关键资源的使用情况,特别是索引、节点和分片的内…

多活架构的实现原理与应用场景解析

一、多活架构为何如此重要? 企业的业务运营与各类线上服务紧密相连,从日常的购物消费、社交娱乐,到金融交易、在线教育等关键领域,无一不依赖于稳定可靠的信息系统。多活架构的重要性愈发凸显,它宛如一位忠诚的卫士,为业务的平稳运行保驾护航。 回想那些因系统故障引发的…

SpringCloud:gateway分发服务报302,Network Error

springcloud使用gateway分发服务&#xff0c;访问接口时一直报错&#xff1a; 多次试验后发现是pom.xml文件中引入的security依赖的问题&#xff0c;注释后重新启动&#xff0c;可以正常访问。 <!-- spring security 安全认证 --> <dependency><groupId>org…