FFmpeg | 视频工具安装及【转码】配置详解

时间:2024-03-24 17:14:16

简介:

在实际工作当中,服务器上难免会有一些视频文件需要去处理,甚至想要把这些视频文件的格式进行一个转换,那么怎么办呢?

于是本人上网查了查,就发现了这款视频处理工具,顺便研究研究,给大家介绍一下这个视频工具,他就是ffmpeg。

相信这款工具用的人还是蛮多的。

什么是ffmpeg?what......

ffmpeg是一个很强大的音视频处理工具,它是一个完整的、跨平台的解决方案,可以记录、转换和传输音频和视频。

ffmpeg既可以播放视频,也提供命令行工具来处理视频,另外还有强大的视频处理库用于开发。

下面是以Linux中的centos7.6系统为例介绍ffmpeg视频工具的安装以及后续的简单转码操作和批量视频转码操作。


首先去官网:www.ffmpeg.org 下载源码包,这里下载的是最新的ffmpeg-4.1.2.tar.gz软件包

FFmpeg | 视频工具安装及【转码】配置详解


下载完成后解压安装包,进到目录里面,进行配置

tar -xjvf ffmpeg-3.3.1.tar.bz2
cd ffmpeg-3.3.1/

FFmpeg | 视频工具安装及【转码】配置详解


./configure --prefix=/app/ffmpeg

敲回车执行配置发现报错如下: 

FFmpeg | 视频工具安装及【转码】配置详解

如上图所示:错误的意思是 yasm/nasm 包不存在或者很旧。

提示:可以使用--disable-yasm禁用这个选项编译。

yasm是一款汇编器,并且是完全重写了nasm的汇编环境,接收nasm和gas语法,支持x86和amd64指令集,所以这里安装一下yasm即可,下载地址是:http://yasm.tortall.net/Download.html 进入后下载1.3.0的源码包,执行下面命令安装:

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

FFmpeg | 视频工具安装及【转码】配置详解

配置编译如下: 

FFmpeg | 视频工具安装及【转码】配置详解

编译安装完成之后,查看yasm版本,说明安装成功:

FFmpeg | 视频工具安装及【转码】配置详解


提示:安装成功之后继续回到ffmpeg解压后的目录,执行下面命令继续之前的编译和安装:

./configure --prefix=/app/ffmpeg && make && make install

提示:编译安装过程有点长,需耐心等待,这个时候可以抽根烟,喝个coffee~~~,嗨一会~~~~~。

FFmpeg | 视频工具安装及【转码】配置详解


安装完成之后进入到目录查看一下

FFmpeg | 视频工具安装及【转码】配置详解

如上图所示,有bin,include,lib,share这4个目录,其中bin是ffmpeg主程序二进制目录,include是C/C++头文件目录,lib是编译好的库文件目录,share是文档目录

然后进入bin目录,执行 ./ffmpeg -version

FFmpeg | 视频工具安装及【转码】配置详解

如上图所示显示版本号说明已经安装成功。


为 Ffmpeg 加入环境变量

vi /etc/profile
export PATH="/app/ffmpeg/bin:$PATH"

FFmpeg | 视频工具安装及【转码】配置详解


然后保存并加载运行

source /etc/profile

 

执行ffmpeg命令时报错问题的解决

报错:ffmpeg: error while loading shared libraries: libavdevice.so.7: cannot open shared object file: No

报错:ffmpeg: error while loading shared libraries: libavdevice.so.58: cannot open shared object file: No

报错:flibavdevice.so.157: cannot open shared object file: No such file or directory

报错:flibavdevice.so.158: cannot open shared object file: No such file or directory


解决:

原因是lib目录未加载到链接到系统库中,系统ld目录列表在/etc/ld.so.conf中,打开文件会发现,里面引用了/etc/ld.so.conf.d/下面所有的.conf文件,比如mariadb-x86_64.conf我们只需要创建一个文件并写入lib路径即可


vim /etc/ld.so.conf.d/ffmpeg.conf

FFmpeg | 视频工具安装及【转码】配置详解

保存退出加载配置文件

ldconfig

通过上面的命令基本可以解决了报错的问题。


下面测试对一个视频进行转码:

首先由一个flv格式的视频文件,大小是14MB,现在使用ffmpeg转换为mp4格式。

FFmpeg | 视频工具安装及【转码】配置详解

语法格式: 

ffmpeg -i 要转换的视频文件.flv  -y  -ab 128 -ar 22050 -vcodec h264 -b 96k -r 25 转换后的视频文件.mp4

执行下面命令过程如下:

FFmpeg | 视频工具安装及【转码】配置详解

转换后的结果:

FFmpeg | 视频工具安装及【转码】配置详解

将转换后的.mp4文件从服务器上下载到本地桌面并打开视频进行测试:

提示:由于我这的sz命令出现了点问题,所以直接用winSCP工具来进行测试


FFmpeg | 视频工具安装及【转码】配置详解

到桌面查看视频如下:

Windows Media Player播放器~~~~咳咳、OK

FFmpeg | 视频工具安装及【转码】配置详解

 

到这里BLXH-AS就要对你说声拜拜了,记得点击关注,你会发现更多的秘密,希望对你有所帮助,再见!!!!