ffmpeg 0.8.7在windows环境mingw环境的编译 | 迟思堂工作室
A-A+

ffmpeg 0.8.7在windows环境mingw环境的编译

2015-06-05 12:48 开源项目, 流媒体学习 暂无评论 阅读 1,225 次

最近又接触了FFMPEG,想起当年初到公司时的情景,领导安排我更新当前所用的FFMPEG,那时公司还没有多少人接触嵌入式Linux。现在虽然公司还是不重视嵌入式基础,但“交叉编译”这类术语,很多人也有了认知。下面是当年做的笔记,一直不发表出来是怕有人说,但已经过去那么多年了,版本又那么旧,估计没什么了。

一、准备环境
1、MinGW
1)、到下载最新版本的安装包: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)、到l下载yasm-1.2.0-win32.exe
2)、将其改名为yasm.exe,放到D:\MinGW\bin目录下。

3、安装pkg-config.exe
1)、下载pkg-config
地址
2)、将压缩包的bin目录的pkg-config.exe复制到D:\MinGW\bin目录下。

4、下载libglib-2.0-0.dll(pkg-config.exe需要这个库)
1)、下载地址:
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、tar xjf ffmpeg-0.8.7.tar.bz2
4、配置ffmpeg:

./configure --disable-everything --enable-decoder=h264 \ --enable-demuxer=h264,avi --enable-muxer=h264,avi \ --enable-parser=h264 --enable-w32threads --enable-shared \ --disable-debug --prefix=/home/latelee/ffmpeg-lib --enable-protocol=file \ --disable-network

该配置只使能H264相关的组件

5、编译

make

6、将库及头文件安装到前面指定的路径

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。

关于路径分隔符说明:
1、windows下为“\”,在MSYS中属于Linux环境,分隔符为“/”。

===========================================================================================================
附:
===========================================================================================================

编译libx264

# ./configure --prefix=/home/latelee/x264 --enable-static --enable-shared # make # make install

在bin中生成libx264-119.dll(其中119为版本号)

使能H264相关的

./configure --disable-everything --enable-decoder=h264 \ --enable-demuxer=h264,avi --enable-muxer=h264,avi \ --enable-parser=h264 --enable-w32threads --enable-shared \ --disable-debug --prefix=/home/latelee/ffmpeg-lib --enable-protocol=file \ --disable-network

===========================================================================================================
禁止所有编码器、输入、输出设备(但可以用SDL播放),其它使能

./configure --enable-shared --disable-static --disable-encoders \ --disable-devices --enable-w32threads --disable-debug \ --enable-memalign-hack --disable-network --prefix=/home/latelee/ffmpeg-lib

===========================================================================================================
不禁止所有的,使用libx264
(注:编译时需要libx264.dll库,运行时需要libx264-119.dll库,将libx264-119.dll复制为libx264.dll即可)

$ ./configure --enable-shared --enable-memalign-hack --enable-w32threads \ --disable-debug --enable-libx264 --extra-cflags=-I/home/latelee/x264/include \ --extra-ldflags=-L/home/latelee/x264/bin --enable-gpl --prefix=/home/latelee/ffmpeg-lib

===========================================================================================================
最大安装,使用所有库,额外添加libx264库(编译时需要libx264.dll库,运行时需要libx264-119.dll库,改名即可)

./configure --enable-shared --disable-static --enable-w32threads --disable-debug \ --enable-memalign-hack --prefix=/home/latelee/ffmpeg-lib --enable-libx264 \ --extra-cflags=-I/home/latelee/x264/include \ --extra-ldflags=-L/home/latelee/x264/bin --enable-gpl

===========================================================================================================
最大安装,不使用libx264.dll

./configure --enable-shared --disable-static --enable-w32threads --disable-debug \ --enable-memalign-hack --prefix=/home/latelee/ffmpeg-lib

李迟 2015年6月5日 周五 中午



如果本文对阁下有帮助,不妨赞助笔者以输出更多好文章,谢谢!
donate



标签:

给我留言