【转载】移植FFMpeg到VC环境心得
原文地址: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环境心得相关推荐
- 移植ffmpeg到VC环境心得
所有想学习ffmpeg的网友有福了,大名鼎鼎的ffmpeg,移植到Windows的VC6版本全部开源,编译环境为VC6+SP5+VCPP5.别忘记了顶贴哦. 移植ffmpeg到windows,主要的修 ...
- VC++环境下获取当前输入法名称
VC++环境下获取当前输入法名称 buffer=new char[255]; ::memset(buffer,0,255); thId=::GetWindowThreadProcessId(gFocu ...
- 检测客户pc电脑端VC++环境并安装
CefSharp 是一个非常不错的cef封装.但它依赖于VC++环境. 具体如下: Branch CEF Version VC++ Version .Net Version Status master ...
- 如何在VC环境下使用Halcon库
今天看到一位朋友在博客上留言,向我提出了一个问题:"我的问题是HALCON不能支持VxWorks操作系统,我能不能把HALCON在Linux下的库移植到VxWorks下调用呢?您指的移植是什 ...
- 安装不上vc++环境,导致部分游戏和qq不能用的解决方案
问题起源5:刚装的系统,安装不上qq或者一些腾讯或其他依赖vc++环境的游戏,这个时候网上大部分说下载个vc++相关的环境就好,可是却很少有人说vc++环境安装不上的解决办法,这里是亲身体会,共享给大 ...
- android.mk 添加v7_在Android上以命令行方式移植FFmpeg
最近要做视频I帧提取和摘要生成的项目,在Android平台上的应用,经过调研,发现ffmpeg有很多相关功能的轮子,因此考虑将ffmpeg移植到Android平台.为了更好解耦和以及更多的文档参考,选 ...
- VC++环境添加一般类的方法、使用MFC演示基本C++成员变量和成员函数
Win7, VC6:版本不同略有差别:自己在菜单里面找:新建一个单文档工程:名为classdemo1: 选择如下菜单: 弹出对话框:类的类型下拉选中一般类:输入类名:自己生成文件名:没有基类: 添加之 ...
- vc 运行c语言步骤,第1章_C语言概述(vc++环境如何运行c语言程序)[精选].ppt
第1章_C语言概述(vc环境如何运行c语言程序)[精选] C语言程序设计 授课对象:电子商务06 时间安排: 理论课(1-9周): 星期一 5-6节 9407D 星期三 5-6节 9410D 实验课( ...
- VC环境下的静态库(lib)使用和动态库(Dll)的使用(清晰版)
VC环境下的静态库使用 一. 静态库包括.lib和.h文件,在工程中使用静态库分为3步: <1> 在工程中加入静态库,有三种方法: **方法一:项目设置中引用.lib,project-& ...
最新文章
- MySQL导入.sql文件及常用命令
- 【词汇】ab-前缀、al-后缀、norm-词根
- 中国活性炭行业市场全景调研分析及需求趋势预测报告2022-2028年
- 自动化测试的框架介绍和选择
- CSS样式引入方式和部分CSS样式的设置
- 搭建高可用的分布式hadoop2.5.2集群 HDFS HA
- 对于有一定编程基础的学生来说,看下面这个链接的文章比较好
- emule学习与分析一 概述
- Atitit web 3.0(web技术)展望与实现 和语义网络 目录 1. 为了说明Web 3.0,我们需要回顾Web历史上的重要浪潮。	2 1.1. 2.Web 2.0:任何人可以参与。Web
- Highcharter绘制中国地图
- 匹配滤波器的仿真——原理说明与仿真
- 【HAVENT原创】nginx 配置
- linux每日命令(3):ln命令
- Anchor box坐标(Sac,Sar,Eac,Ear)到Precdict box坐标(Spc,Spr,Epc,Epr)关系推导
- Windows10虚拟机安装和使用教程
- 商业广告CPT-物料召回
- 美国封杀华为无望 全面测试或成唯一出路
- 删除数字求最小值(贪心)
- 哪种性格的人,更适合转管理?
- 数据预处理之python实现噪声处理
热门文章
- IDEA创建第一个Spring Boot项目
- lda进行图片分类_基于SIFT+Kmeans+LDA的图片分类器的实现
- 初中毕业学计算机在哪学,初中毕业要学计算机要去哪个里学呢
- 【转载】网站从百度云转入阿里云服务器
- solution for python can not import local module
- java程序在centos7里面开机自启动
- [翻译] 编写高性能 .NET 代码--第二章 GC -- 配置选项
- 添加MD5 密码加密
- TinyFrame开篇:基于CodeFirst的ORM
- Hsiao United Cheap Nike Air Max