最近又接触了FFMPEG,想起当年初到公司时的情景,领导安排我更新当前所用的FFMPEG,那时公司还没有多少人接触嵌入式Linux。现在虽然公司还是不重视嵌入式基础,但“交叉编译”这类术语,很多人也有了认知。下面是当年做的笔记,一直不发表出来是怕有人说,但已经过去那么多年了,版本又那么旧,估计没什么了。
一、准备环境
1、MinGW
1)、到http://www.mingw.org/下载最新版本的安装包:mingw-get-inst-20111118.exe
2)、双击运行,假设安装在D盘。在提示选择组件时,选择“MYSY basic System”(注:可选择g++编译器,也可以不选择)。 它将在Windows下模拟一个“Linux环境”。
3)、安装完成后,将D:\MinGW\bin和D:\MinGW\msys\1.0\bin添加到系统环境变量中。
4)、此版本的gcc版本为4.6.1
2、安装yasm
1)、到http://yasm.tortall.net/Download.html下载yasm-1.2.0-win32.exe
2)、将其改名为yasm.exe,放到D:\MinGW\bin目录下。
3、安装pkg-config.exe
1)、下载pkg-config 地址http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.23-3_win32.zip
2)、将压缩包的bin目录的pkg-config.exe复制到D:\MinGW\bin目录下。
4、下载libglib-2.0-0.dll(pkg-config.exe需要这个库)
1)、下载地址:http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.24/glib_2.24.1-1_win32.zip
2)、将压缩包bin目录的libglib-2.0-0.dll,将它放到D:\MinGW\bin目录下。
5、进入MinGW的“Linux”环境
进入D:\MinGW\msys\1.0,双击msys.bat运行即可。
二、编译FFMPEG
1、
下载最新版本FFMPEG:0.8.7,地址http://ffmpeg.org/download.html,压缩包名称ffmpeg-0.8.7.tar.bz2
2、
将其放到D:\MinGW\msys\1.0\home\latelee目录下(按Linux习惯)。
3、
1 | tar xjf ffmpeg-0.8.7.tar.bz2 |
4、
配置ffmpeg:
1 | ./configure --disable-everything --enable-decoder=h264 \ |
该配置只使能H264相关的组件
5、
编译
1 | make |
6、
将库及头文件安装到前面指定的路径
1 | make install |
头文件在D:\MinGW\msys\1.0\home\latelee\ffmpeg-lib的include目录下
动态库在D:\MinGW\msys\1.0\home\latelee\ffmpeg-lib的bin目录下。
注意:对于同一个动态库,FFMPEG会生成不同名称的文件,如编码解码器avcodec,会生成 avcodec-53.8.0.dll、avcodec-53.dll、avcodec.dll,在调用时必须使用带有_主版本号_的文件,即avcodec-53.dll。
关于路径分隔符说明: windows下为“\”,在MSYS中属于Linux环境,分隔符为“/”。
附:
编译libx264
1 | # ./configure --prefix=/home/latelee/x264 --enable-static --enable-shared |
在bin中生成libx264-119.dll(其中119为版本号) 使能H264相关的
1 | ./configure --disable-everything --enable-decoder=h264 \ |
禁止所有编码器、输入、输出设备(但可以用SDL播放),其它使能
1 | ./configure --enable-shared --disable-static --disable-encoders \ |
不禁止所有的,使用libx264 (注:编译时需要libx264.dll库,运行时需要libx264-119.dll库,将libx264-119.dll复制为libx264.dll即可)
1 | $ ./configure --enable-shared --enable-memalign-hack --enable-w32threads \ |
最大安装,使用所有库,额外添加libx264库(编译时需要libx264.dll库,运行时需要libx264-119.dll库,改名即可)
1 | ./configure --enable-shared --disable-static --enable-w32threads --disable-debug \ |
最大安装,不使用libx264.dll
1 | ./configure --enable-shared --disable-static --enable-w32threads --disable-debug \ |
李迟 2015年6月5日 周五 中午