网上的资料比较少,本人也是不断摸索,现在将安装过程中出现的问题,以及解决方法依次分享出来,供大家参考。
安装ffmpeg之前需要进行准备,安装一些解码工具
准备工作
在/usr/local/下新建一个ffmpeg文件夹
mkdir /usr/local/ffmpeg
第一步,安装nasm.
nasm下载链接如下:
https://www.linuxfromscratch.org/blfs/view/8.2/general/mercurial.html 进入网址后,界面如下
选择红框选中区域,下载nasm
下载完成后进入到下载目录执行下面的操作
tar -xvzf nasm-2.13.03.tar.gz
cd nasm-2.13.03/
./configure
make
make install
执行上述过程中make时可能会报错,错误结果如下
./include/nasmlib.h:194:1: error: ‘pure’ attribute on function returning ‘void’ [-Werror=attributes] 194 | void pure_func seg_init(void);
这是由于gcc版本过新,解决方案如下
vim ./include/nasmlib.h
在vim编译器中找到大概193行位置,对下面一行代码进行注释
void pure_func seg_init(void);
然后重新make,再执行make install,完美解决。输入下面的命令,查看nasm版本号,打印出来表示安装成功。
nasm --verison
第二步安装yasm
官网下载链接http://www.tortall.net/projects/yasm/releases/
如上图红框所示,下载相应的版本
将下载后的文件解压到/usr/local/ffmpeg文件夹内,主要操作如下
cd /usr/local/ffmpeg
tar -xvzf yasm-1.2.0.tar.gz
cd yasm-1.2.0/
./configure
make
make install
最后安装成功后可以使用如下命令查看
yasm --version
显示下面结果表示安装成功
第三步 安装x264
官网链接如下
https://www.videolan.org/developers/x264.html 进去之后界面如下
点击红框选中位置进行下载,同样,下载后放入/usr/local/ffmpeg文件夹内进行解压等后续操作
tar -xvf x264-master.tar.bz2
cd x264-master
./configure --enable-shared
make
make install
安装完成后同样可以使用下面命令进行测试
x264 --version
出现下面界面表示安装成功
第四步 安装ffmpeg
首先去官网下载ffmpeg,链接如下
http://ffmpeg.org/download.html#build-linux 进去之后按照下面提示操作
当然,如果想下载.tar.bz2类型的,直接点击右边的位置即可
下载之后放入/usr/local/ffmpeg文件夹内
然后依次执行下面步骤
tar -xjvf ffmpeg-4.4.tar.bz2
cd ffmpeg-4.4
./configure --enable-shared --prefix=/monchickey/ffmpeg
make -j8
make install -j8
上面执行完成后,安装基本算是成功了,至于为什么没全成功,后面还需要再进一步配置方可使用。
配置过程如下
配置1
cd /monchickey/ffmpeg/
查看该目录下是否包含下图的几个文件目录
这几个目录,在此稍微介绍一下
bin目录中包含了ffmpeg的二进制文件
include目中包含了编程需要引入的头文件目录
lib是编译好的库文件目录
share是文档目录
配置2
cd bin
./ffmpeg -version
一般情况下会看到下图的结果
说明至此,ffmpeg真的安装成功了
如果,出现特殊情况,那就是报错了,不要慌,继续执行下面
配置3
vim /etc/ld.so.conf.d/ffmpeg.conf
可能是一个新文件。如果不是就在文档末尾添加下面一句话
/monchickey/ffmpeg/lib
保存退出,使用ldconfig使得配置生效
ldconfig
最后,再执行配置2的语句,此时应该出现配置2 的截图了,说明至此安装完毕。
当然,到此,我们还没有对安装进行实际测试,不确定安装后是否能达到预期的效果,为此,本文专门使用了一个mp4视频进行了测试,将mp4转换为avi格式,测试步骤和结果如下,此处截图时转换后的格式为mp4,后面命令中进行了修改
首先,查看一下原视频,格式为mp4,大小为17507051,位置在桌面,名称叫test.mp4,为了方便测试,可以将该文件拷贝到/monchickey/ffmpeg/bin目录下。
然后在/monchickey/ffmpeg/bin目录下执行下面的命令
./ffmpeg -i test.mp4 -f psp -r 29.97 -b 768k -ar 24000 -ab 64k -s 320*240 destination.avi
此时你会看到下面的运行界面
紧接着是这样的画面
恭喜,终于通过实际的测试了,等待程序执行完成之后,会发现bin目录下多了一个destination.avi文件
可以看到后,格式转换后,文件的大小发生了变化,打开视频后发现与原视频效果差不多。
最后放上ffmpeg的命令参数
#ffmpeg常用参数的介绍
#-i 指定要转换视频的源文件
#-s 视频转换后视频的分辨率
#-vcodec 视频转换时使用的编解码器
#-r 视频转换换的桢率(默认25桢每秒)
#-b 视频转换换的bit率
#-ab 音频转换后的bit率(默认64k)
#-acodec 制度音频使用的编码器
#-ac 制定转换后音频的声道
#-ar 音频转换后的采样率
./ffmpeg -i source.mp4 -f psp -r 29.97 -b 768k -ar 24000 -ab 64k -s 320*240 destination.mp4
需要的自取,上面使用的参数命令可以对照命令参数详情自己理解。