刚开始是打算在windows平台上安装MinGW来运行ffmpeg,具体流程如下:
(1)从官网上http://www.mingw.org/下载Mingw软件,并安装。
(2)之后会出来窗口,左边选中Basic Setup,右边的全部选中,然后点击菜单install。
(3)在D:\MinGW\msys\1.0里找到msys.bat,即是shell命令窗口。打开它。
(4)通过cd命令进入ffmpeg所在目录,执行configure命令: ./configure --enable-shared --disable-static --enable-ffplay
至此,由于担心在linux平台上移植会出现问题,因此就放弃了这种编译,但前面的过程完全正确。以下是在linux上进行编译。
在linux下编译ffmpeg:(注意,出现权限问题时都可以在命令前加sudo获取最高权限)
(1)ffmpeg官网上下载ffmpeg软件:ffmpeg-0.4.9-p20051120.tar.bz2
(2)解压ffmpeg,命令为:tar xvfj ffmpeg-0.4.9-p20051120.tar.bz2
得到解压后的目录是ffmpeg-0.4.9-p20051120,名字太长,利用mv命令改为ffmpeg
mv ffmpeg-0.4.9-p20051120.tar.bz2 ffmpeg
(3)配置:./configure --enable-shared --prefix=/usr/local/ffmpeg
其中:--enable-shared 是允许其编译产生动态库,在以后的编程中要用到这个几个动态库。--prefix设置的安装目录。
(4)编译并安装
make
make install
(5)安装之后在/usr/local/ffmpeg会看到有三个目录
lib 动态链接库位置
include 编程要用到头文件
bin 执行文件所在的目录
(6) 为了以后方便编程,我们把lib中的三个链接库libavcodec.so libavformat.so libavutil.so复制到/usr/lib下。把include目录下的ffmpeg目录复制到/usr/include下。
执行bin目录下的ffplay,可以去播放音频或者视频文件。例如播放1.mp3
./ffplay 1.mp3
注意:如果该目录下没有ffplay.exe文件,原因多数是由于没有SDL或者SDL版本不正确导致的。
解决办法如下:安装正确的SDL库
wget http://libsdl.org/release/SDL-1.2.15.tar.gz
tar zxvf SDL-1.2.15.tar.gz
cd SDL-1.2.15
./configure --prefix=/usr
make -j16
sudo make install
安装后再次编译ffmpeg即可解决。
另外,bin目录下还有两个文件:ffmpeg和ffserver
ffmpeg是一个很好的视频和音频的格式转化工具。网上有很多它的说明文档。如果不想生成ffserver,只要在./configure的时候加--disable-ffserver即可。