原文地址:http://www.cnblogs.com/mcodec/articles/1659671.html

移植ffmpeg到windows,主要修改的是ffmpeg中VC6不支持的C99语法,简单移植步骤如下:

1、首先装好Linux、VMware和SDL,配置好smb,在Linux下编译通过,验证能正确的运行。

2、将Linux下相应目录的所有文件通过smb拖到Windows,以后的修改移植都在Windows下进行。

3、对照所有同名的.c文件和.o文件,如果有.c文件没有对应的同名.o文件,说明此.c文件没有编译,可直接删除(不过我的习惯是在此文件后加.old后缀来标示,这类文件有几十个)。注意:有几个.c文件是被include在其他.c文件中,因此没有.o文件,不可删除(我的习惯是把这类文件加.inc后缀,并且修改相应include的文件名)。这类文件共计有 jpeg_ls.c.inc、mdec.c.inc、motion_est_template.c.inc、svq3.c.inc和wmv2.c.inc。

4、修改config.h文件,关闭掉MMX/SSE2等汇编加速开关。定义CONFIG_WIN32标示目标系统为WIN32。

5、删掉目录下所有Linux编译生成的中间文件,包括.o文件、.d文件,还有Linux下的可执行文件。删前做好备份。

6、用VC6建一个工程文件,把所有.c和.h文件加入到工程中,不包括ffmpeg.c/ffserver.c文件,不包括改了后缀名的.old文件和.inc文件。

注意:在libavcodec和libavformat目录下有些同名的.c文件,为区别同名.c文件,我的习惯是libavcodec目录下的文件名加_codec,libavformat目录下的文件名加_format。

7、首先搜查所有的AVCodec,对照.h文件中的定义改C99语法,通常是填一些NULL或0之类的值,接着搜查并处理所有的AVInputFormat,最后搜查并处理所有的AVOutputFormat。

8、搜查并处理所有AVRational语法。

9、至此主要的修改已经完成,剩下的工作主要是动态数组和一些数组初始化,函数实参初始化等。一维的动态数组比较好改,多维的动态数组比较困难,但是多维的动态数组多半用于编码,如果只要解码可以简单的注释掉;数组初始化和函数实参初始化只需要多加一个临时变量,很简单的修改。

10:有些.h文件在VC6中找不到,可以从Linux中拷贝,也可以自己简单定义。最后编译修改.c文件的时候,一个一个的编译,一个一个的修改,没必要全部编译。

最后祝大家好运,移植顺利。开源ffmpeg是51.8.0的版本,大约修改了5天左右。

http://files.cnblogs.com/mcodec/ffmpeg.51.8_vc6.rar

转载于:https://www.cnblogs.com/tairikun/archive/2012/09/10/2678402.html

【转载】移植FFMpeg到VC环境心得相关推荐

  1. 移植ffmpeg到VC环境心得

    所有想学习ffmpeg的网友有福了,大名鼎鼎的ffmpeg,移植到Windows的VC6版本全部开源,编译环境为VC6+SP5+VCPP5.别忘记了顶贴哦. 移植ffmpeg到windows,主要的修 ...

  2. VC++环境下获取当前输入法名称

    VC++环境下获取当前输入法名称 buffer=new char[255]; ::memset(buffer,0,255); thId=::GetWindowThreadProcessId(gFocu ...

  3. 检测客户pc电脑端VC++环境并安装

    CefSharp 是一个非常不错的cef封装.但它依赖于VC++环境. 具体如下: Branch CEF Version VC++ Version .Net Version Status master ...

  4. 如何在VC环境下使用Halcon库

    今天看到一位朋友在博客上留言,向我提出了一个问题:"我的问题是HALCON不能支持VxWorks操作系统,我能不能把HALCON在Linux下的库移植到VxWorks下调用呢?您指的移植是什 ...

  5. 安装不上vc++环境,导致部分游戏和qq不能用的解决方案

    问题起源5:刚装的系统,安装不上qq或者一些腾讯或其他依赖vc++环境的游戏,这个时候网上大部分说下载个vc++相关的环境就好,可是却很少有人说vc++环境安装不上的解决办法,这里是亲身体会,共享给大 ...

  6. android.mk 添加v7_在Android上以命令行方式移植FFmpeg

    最近要做视频I帧提取和摘要生成的项目,在Android平台上的应用,经过调研,发现ffmpeg有很多相关功能的轮子,因此考虑将ffmpeg移植到Android平台.为了更好解耦和以及更多的文档参考,选 ...

  7. VC++环境添加一般类的方法、使用MFC演示基本C++成员变量和成员函数

    Win7, VC6:版本不同略有差别:自己在菜单里面找:新建一个单文档工程:名为classdemo1: 选择如下菜单: 弹出对话框:类的类型下拉选中一般类:输入类名:自己生成文件名:没有基类: 添加之 ...

  8. vc 运行c语言步骤,第1章_C语言概述(vc++环境如何运行c语言程序)[精选].ppt

    第1章_C语言概述(vc环境如何运行c语言程序)[精选] C语言程序设计 授课对象:电子商务06 时间安排: 理论课(1-9周): 星期一 5-6节 9407D 星期三 5-6节 9410D 实验课( ...

  9. VC环境下的静态库(lib)使用和动态库(Dll)的使用(清晰版)

    VC环境下的静态库使用 一.  静态库包括.lib和.h文件,在工程中使用静态库分为3步: <1> 在工程中加入静态库,有三种方法: **方法一:项目设置中引用.lib,project-& ...

最新文章

  1. MySQL导入.sql文件及常用命令
  2. 【词汇】ab-前缀、al-后缀、norm-词根
  3. 中国活性炭行业市场全景调研分析及需求趋势预测报告2022-2028年
  4. 自动化测试的框架介绍和选择
  5. CSS样式引入方式和部分CSS样式的设置
  6. 搭建高可用的分布式hadoop2.5.2集群  HDFS HA
  7. 对于有一定编程基础的学生来说,看下面这个链接的文章比较好
  8. emule学习与分析一 概述
  9. Atitit web 3.0(web技术)展望与实现 和语义网络 目录 1. 为了说明Web 3.0,我们需要回顾Web历史上的重要浪潮。 2 1.1. 2.Web 2.0:任何人可以参与。Web
  10. Highcharter绘制中国地图
  11. 匹配滤波器的仿真——原理说明与仿真
  12. 【HAVENT原创】nginx 配置
  13. linux每日命令(3):ln命令
  14. Anchor box坐标(Sac,Sar,Eac,Ear)到Precdict box坐标(Spc,Spr,Epc,Epr)关系推导
  15. Windows10虚拟机安装和使用教程
  16. 商业广告CPT-物料召回
  17. 美国封杀华为无望 全面测试或成唯一出路
  18. 删除数字求最小值(贪心)
  19. 哪种性格的人,更适合转管理?
  20. 数据预处理之python实现噪声处理

热门文章

  1. IDEA创建第一个Spring Boot项目
  2. lda进行图片分类_基于SIFT+Kmeans+LDA的图片分类器的实现
  3. 初中毕业学计算机在哪学,初中毕业要学计算机要去哪个里学呢
  4. 【转载】网站从百度云转入阿里云服务器
  5. solution for python can not import local module
  6. java程序在centos7里面开机自启动
  7. [翻译] 编写高性能 .NET 代码--第二章 GC -- 配置选项
  8. 添加MD5 密码加密
  9. TinyFrame开篇:基于CodeFirst的ORM
  10. Hsiao United Cheap Nike Air Max