SpringBoot 使用Ffmpeg合并视频
一、安装ffmpeg环境:Docker Centos,进入容器1.1官网下载Index of /ffmpeg/release-source先下载安装包: wget https://johnvansickle.com/ffmpeg/release-source/ffmpeg-4.1.tar.xz建议在宿主机上下载安装包,因为docker中wget的命令都没有。下载并解压成功后,在复制到容器中,下面下
一、安装ffmpeg
环境:Docker Centos,进入容器
1.1官网下载 Index of /ffmpeg/release-source
先下载安装包: wget https://johnvansickle.com/ffmpeg/release-source/ffmpeg-4.1.tar.xz
建议在宿主机上下载安装包,因为docker中wget的命令都没有。下载并解压成功后,在复制到容器中,下面下载解压等操作在宿主机中执行.
在Linux下经常看到的压缩包为tar.gz的,然后习惯性去用tar命令去解压,今天突然看到个.tar.xz的,当用tar去解压的时候,顺理成章地报错了。。。在centos下可以直接yum install xz,安装完成后,通过xz来解压.xz文件,如xz -d (–decompress) xxx.tar.xz 利用xz解压后的文件为.tar文件,所以接着还需要通过tar来解压 总结一下,彻底解压.tar.xz需要两步:
xz -d ffmpeg-4.1.tar.xz #先将.xz解压为.tar
tar -xf ffmpeg-4.1.tar #在将.tar解压
docker cp ffmpeg-4.1 video:/mnt/ #将解压好的文件复制到容器中
1.2安装依赖
yum install -y gcc
yum install -y yasm
错误1:
因为在2022年1月31日,CentOS团队终于从官方镜像中移除CentOS 8的所有包。 CentOS 8已于2021年12月31日寿终正寝,但软件包仍在官方镜像上保留了一段时间。现在他们被转移到https://vault.centos.org 解决方法 如果你仍然需要运行你的旧CentOS 8,你可以在/etc/yum.repos中更新repos.d使用vault.centos.org代替mirror.centos.org。参照:CentOS8解决“Failed to download metadata for repo ‘appstream‘”错误_培根芝士的博客-CSDN博客
cd /etc/yum.repos.d
vi CentOS-Linux-BaseOS.repo
vi CentOS-Linux-AppStream.repo
[baseos]
name=CentOS Linux $releasever - BaseOS
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=BaseOS&infra=$infra
#baseurl=http://mirror.centos.org/$contentdir/$releasever/BaseOS/$basearch/os/
baseurl=https://vault.centos.org/centos/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
[appstream]
name=CentOS Linux $releasever - AppStream
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=AppStream&infra=$infra
#baseurl=http://mirror.centos.org/$contentdir/$releasever/AppStream/$basearch/os/
baseurl=https://vault.centos.org/centos/$releasever/AppStream/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
错误2:
yum install -y epel-release #产生这个错误的原因是未配置yum源,所以需要安装EPEL源
发现还是不能安装yasm,那就手动安装吧(还是在宿主机上执行)
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz #下载源码包
tar zxvf yasm-1.3.0.tar.gz #解压
docker cp yasm-1.3.0 video:/mnt/ # 复制到容器
cd yasm-1.3.0 #进入目录
./configure #配置
make && make install #编译安装 如果没有make 命令,可以 yum install -y make 安装
注意:如果涉及到推流或使用h264一定要安装请参照另外的h264安装,
容器安装 libx264_w13511069150的博客-CSDN博客
并且配置为 ./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-shared --enable-libx264
1.3安装ffmpeg
docker exec -it video bash #进入容器
/mnt/ffmpeg-4.1 #进入cp进来的目录
./configure --enable-shared --prefix=/usr/local/ffmpeg #配置
make && make install #编译安装 这个特别慢,需要多等会
vi /etc/ld.so.conf # 修改文件 增加一行 /usr/local/ffmpeg/lib/
ldconfig #使修改生效
/usr/local/ffmpeg/bin/ffmpeg -version #查看版本
如果:
开启了x264在查看版本时/usr/local/ffmpeg/bin/ffmpeg -version报如下错误
/usr/local/ffmpeg/bin/ffmpeg: error while loading shared libraries: libx264.so.164: cannot open shared object file: No such file or directory
解决:
vi /etc/ld.so.conf #在最后面加入一行 /usr/local/lib/
因为发现安装x264库之后,x264的库跑到这里了
vi /etc/profile #增加环境变量 最后一行增加 如下内容
PATH=$PATH:/usr/local/ffmpeg/bin
export PATH
source /etc/profile #使配置生效
ffmpeg -version #查看版本
问题:在容器实例中发现每次重启容器后,ffmpeg命令就不能用发,解决办法
vi ~/.bashrc 配置文件末尾添加 source /etc/profile,保存退出即可。这样就能够实现重启后自动刷新配置文件,而无需手动操作。但是容器跑的JAR文件没法使用ffmpeg命令,因为我是用.sh脚本启动挂载目录的方式,所以在启动.sh文件中也增加 source /etc/profile 就可以了。
至此ffmpeg 已完装成功。可参照 CentOs7.5安装FFmpeg - wintercloud - 博客园
二、Srping Boot 整合
因为有项目的配置文件,所以项目就不放出来了,可以参照 SpringBoot整合FFmpeg进行视频分片上传(Linux)_upupup-999的博客-CSDN博客
更多推荐
所有评论(0)