Ffmpeg安装 ubuntu

文章来源:ffmpeg配置


1、FFmpeg是一款强大的视频编解码工具,可以处理大量的编码格式。ffmpeg是开源项目,在Linux平台下开发,同时也可以在其它操作系统下编译运行,包括Windows、Mac OS X等。本文将介绍在Linux下以源代码方式编译安装ffmpeg的方法。



安装:本文使用Linux发行版为ubuntu 14.04,其安装步骤如下。
(1)、下载源码
从ffmpeg官网:https://www.ffmpeg.org/download.html下载源代码,当前最新的版本为ffmpeg-2.5.3.tar.bz2。
(2)、解压文件

tar -jxvf ffmpeg-2.5.3.tar.bz2
(3)、进入目录
cd ffmpeg-2.5.3
(4)、配置
安装yasm,ffmpeg编译中为了提高编译速度,使用了汇编指令,于是需要使用这个工具。
yum -y install yasm
或者同样使用源码方式安装,下载yasm源代码,然后使用./configure、make以及make istall进行安装。
当然,如果实在不想要这个功能,可以在下一步的配置中使用./configure –disable-yasm选项。
配置必要选项,这一步根据自己需要开启或关闭某些选项,具体可以使用./configure –help查看,或者直接查看configure文件。本文使用如下简单配置。
./configure --enable-shared --prefix=/usr/local/ffmpeg
其中–enable-shared表示生成动态链接库,可以供以后编程使用,同时生成的可执行程序也依赖这些动态库。如果不加上–enable-shared选项则使用静态链接的方式编译,此时不会生成动态库,同时生成的ffmpeg等的可执行文件也比较大,但他们不需要动态库就可以直接运行 –prefix表示程序安装的目录,这里设为/usr/local/ffmpeg。
编译安装
编译,需要较长时间,10分钟左右。
make
安装,很快完成。
sudo make install
如果你的用户没有运行sudo命令的权限,需要管理员运行编辑/etc/sudoers文件,在
root ALL=(ALL) ALL
下面添加一行
noalgo ALL=(ALL) ALL
其中noalgo为添加的用户的名称。
路径处理
安装完成后在/usr/local/ffmpeg出现三个目录:
bin:可执行文件目录
lib:动态链接库目录
include:编程用到的头文件目录
不管是编程还是可执行程序的执行都需要依赖lib下面的动态库,可以把里面的so文件拷贝到/usr/lib下,但可以直接修改配置文件。通过查看/etc/ld.so.conf文件,发现里面只有一句话:
include ld.so.conf.d/*.conf
表明其包含了ld.so.conf.d下所有的conf文件,于是可以在/etc/ld.so.conf.d/创建一个新的文件ffmpeg.conf,其中之包含一句话,即为ffmpeg的lib目录:
/usr/local/ffmpeg/lib
再执行ldconfig,更新ld.so.cache,使修改生效。
为了在任何地方能够直接用ffmpeg运行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式运行程序,可以把可执行程序复制到bin目录下,这里选择在bin目录下创建软链接。软链接类似于Windows下的快捷方式,如果原可执行程序被删除了,软链接也不能继续使用,而硬链接则可以继续使用。创建链接命令如下:
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/
sudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/
另外,如果变成需要包含ffmpeg的头文件,最好将include目录下的ffmpeg复制到/usr/include中。
运行
现在可以在shell中直接输入ffmpeg运行程序,得到以下结果:
[noalgo@NOALGO ~]$ ffmpeg
ffmpeg version 2.5.3 Copyright (c) 2000-2015 the FFmpeg developers
built on Jan 14 2015 11:54:30 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-11)
configuration: --enable-shared --prefix=/usr/local/ffmpeg
libavutil 54. 15.100 / 54. 15.100
libavcodec 56. 13.100 / 56. 13.100
libavformat 56. 15.102 / 56. 15.102
libavdevice 56. 3.100 / 56. 3.100
libavfilter 5. 2.103 / 5. 2.103
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.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'


ps:若出现error while loading shared libraries: libavdevice.so.52的错误
修改/etc/ld.so.conf 在最后一行加上/usr/local/ffmpeg/lib

ldconfig -v

还不行就再修改 /usr/local/ffmpeg/lib目录下的文件权限为777



2、如果出现如下错误:

/usr/bin/ld:cannot find library -lavdevices

之类的错误,那么就首先查看这个应该是ffmpeg的build安装的库,找到路径,看/usr/lib或者/usr/local/lib中是否有该so文件的链接,

首先,在/etc/ld.so.config中添加库的路径。然后ldconfig看是否生效。

上一步如果还不生效,那么就在/usr/lib或者/usr/local/lib/中创建缺失的库的软连接,最后应该就可以了。

你可能感兴趣的:(Ffmpeg安装 ubuntu)