Ffmpeg编译过程
来源:互联网 发布:mui源码下载 编辑:程序博客网 时间:2024/06/08 03:11
一、 起因
在windos平台下,想深入了解FFMPEG代码,用VC2013开发工具跟踪调试的FFMPEG。
由于本人在编译过程中走了不少弯路,所以整理该文档,希望能对和我一样的初学者带来帮助。
CSDN个人主页:http://my.csdn.net/caishi8860
二、 环境
系统
windows 8.1
开发工具
VC2013
Ffmpeg
版本:2.6.2
下载地址:http://ffmpeg.zeranoe.com/builds/source/ffmpeg/ffmpeg-20150414-git-013498b.tar.xz
MinGW Installation Manager
链接地址: http://sourceforge.net/projects/mingw/files/
Yasm
版本:1.3.0
下载地址: http://www.tortall.net/projects/yasm/releases/yasm-1.3.0-win32.exe
三、 配置过程
1. MinGW Installation Manager下载安装包
2. YASM
yasm-1.3.0-win32.exe改名为yasm.exe,复制到./MinGW/msys/1.0/bin
目录下。
3. msys.bat配置
配置./MinGW/msys/1.0/msys.bat,在此文件的最前面(@echo off之后)添加一行如下内容:
call"D:\Program Files\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat"
(依实际安装路径修)。
4. link
重命名 ./MinGW/msys/1.0/bin/link.exe为link_renamed.exe (依实际安装选择),这一步是防止这个link.exe与vc的link.exe发生冲突,编译完成后可修改回来。
四、 编译过程
1. 解压ffmpeg并启动msys
复制ffmpeg-20150414-git-013498b.tar.xz到./MinGW/msys/1.0/home目录下。解压到当前文件夹下,重命名目录为ffmpeg。
执行msys.bat
2. 配置编译选项
n 静态库
./configure--enable-static --prefix=./vs2013_build --enable-debug --toolchain=msvc
n 动态库
./configure--enable-shared --prefix=./vs2013_build --enable-debug --toolchain=msvc
3. 编译
4. 安装
安装后的文件目录
注意:默认生成的静态库扩展名为.a,需要手动修改为.lib。
五、 测试实例
// FfmpegTest.cpp : 定义控制台应用程序的入口点。
//
#include"stdafx.h"
#include<stdlib.h>
#include<Windows.h>
//Crypto API 微软公司在NT4.0以上版本中提供了一套完整的Crypto API的函数,
//支持密钥交换,数据加密解密,数字签名,给程序员带来了很大方便,
//用户在对软件进行保护的时候可以直接利用Crypto API来完成这些工作。
//比如计算注册码,检查程序的完整性等。
#include<Wincrypt.h>
#pragmacomment (lib,"Advapi32.lib")
#pragmacomment(lib,"ws2_32.lib")
#ifdef__cplusplus
extern"C" {
#endif
#include"../ffmpegLib/include/libavcodec/avcodec.h"
#include"../ffmpegLib/include/libavformat/avformat.h"
#include"../ffmpegLib/include/libavdevice/avdevice.h"
#ifdef__cplusplus
}
#endif
#pragmacomment(lib,"..//ffmpegLib//lib//libswresample.lib")
#pragmacomment(lib,"..//ffmpegLib//lib//libswscale.lib")
#pragmacomment(lib,"..//ffmpegLib//lib//libavcodec.lib")
#pragmacomment(lib,"..//ffmpegLib//lib//libavdevice.lib")
#pragmacomment(lib,"..//ffmpegLib//lib//libavfilter.lib")
#pragmacomment(lib,"..//ffmpegLib//lib//libavformat.lib")
#pragmacomment(lib,"..//ffmpegLib//lib//libavutil.lib")
int_tmain(intargc,_TCHAR*argv[])
{
av_register_all();
system("pause");
return 0;
}
六、 参考文档链接
n http://blog.csdn.net/finewind/article/details/38854517
n http://blog.csdn.net/leixiaohua1020/article/details/44587465
n http://blog.csdn.net/langeldep/article/details/6804331
n https://msdn.microsoft.com/en-us/library/windows/desktop/aa379886(v=vs.85).aspx
- 编译ffmpeg的过程
- Ffmpeg编译过程
- ffmpeg编译过程
- ffmpeg windows下编译过程
- mingw中编译ffmpeg过程
- android studio编译ffmpeg过程
- FFMPEG 零基础编译过程
- ffmpeg编译过程(三)-->编译
- 参照文章“ubuntu 10.04 编译ffmpeg”编译ffmpeg的 过程
- 我的ffmpeg for wm6 编译过程
- Linux ffmpeg的安装编译过程
- Linux ffmpeg的安装编译过程
- ffmpeg windows 下编译过程记录
- Linux ffmpeg的安装编译过程
- mingw编译ffmpeg+librtmp过程记录
- windows下开发ffmpeg编译过程
- Linux ffmpeg的安装编译过程
- mingw编译ffmpeg+librtmp过程记录
- Linux出现time_wait过多的问题
- C++快速排序(以中间元素为元点)
- 如何在VC++6.0编译环境中输入系统参数?
- servlet什么时候被实例化?
- ML—AdaBoost(一)—历史
- Ffmpeg编译过程
- LinearLayout(线性布局)
- linux下svn服务器的搭建
- 【字符串匹配】Implement strStr()
- Android---12---TextView中单击链接弹出Activity
- web.xml 中listener filter servlet 加载顺序
- 【Java】利用自带的file.mkdirs();创建文件夹与file.mkdirs();的注意事项
- 今天上午了解的
- Linux配置IP