文档章节

移植x264到vs2008之一

abcijkxyz
 abcijkxyz
发布于 2016/11/22 16:45
字数 632
阅读 6
收藏 0

最新的x264已经没有提供windows版的可编译工程,微软的VS编程开发工具无疑是最好的调试工具,要把它移植到vs开发环境下面有很多的工作要做。

网上也有很多人在问找x264的vs版本,本人根据之前在项目中的移植经验,总结如下:

1.从官网上下载最新的x264代码,我下载代码是2012年的版本x264-snapshot-20120108-2245。

2.x264在不同的目录下面有好几个文件名字是相同的,需要重新命名,否则会出现你无法想象到的链接错误。

3.把所有的代码添加到微软的VS2008的开发环境里面,编译。这时候,你会发现有很多编译错误,注意先不要加汇编。

  这些编译错误,总的来说,主要是由两类原因引起的。

 3.1 x264采用的C99的语法标准,而VS2008的开发环境是不支持这些语法的。

 3.2 相应的宏开关没有打开。

 

对于第一类错误,是一个体力活,也就是把这些C99的语法改成标准的C语言语法。这项工作大概需要2到3天的时间。

对于第二类错误,就是根据相应错误,找到其代码所在的宏,把相应的宏加到工程里面去。需要增加的宏主要如下:

 HAVE_STRING_H
__ICL
_WIN32
SYS_WINDOWS
HAVE_THREAD
HAVE_VISUALIZE
ARCH_X86
ARCH_X86_32

4. 这时候,你会发现,还有一些没有定义的宏和其它一些编译错误,有一个宏BIT_DEPTH,这个要重新定义为8。还有有些文件是没有必要加进来的,可以去掉。比如,output目录下面的mp4,flv相关的文件从工程中去掉,input目录里面同样有些文件可以去掉。

5. x264里的有一类宏定义的参数可变的,这种vs开发环境当中不支持的。需要把可变参数宏修改为固定的参数宏定义,代码中用到了几个参数的宏就重新定义几个参数的宏。

6.  当所有的编译错误已经解决之后,就是链接错误。这个比较容易解决,一般都是相关的宏没有打开。找到这些代码对应宏,将宏重新定义上。

7.  如果你完成了上面的过程,你基本上可以再vs平台用c代码跑x264了。

本文转载自:http://www.cnblogs.com/celerychen/archive/2013/03/09/2951470.html

共有 人打赏支持
abcijkxyz
粉丝 60
博文 6196
码字总数 1876
作品 0
深圳
项目经理
vc2008使用x264的问题

我是采用msys编译的x264,编译出libx264.dll.a 和libx264-78.dll。 我用vs2008做了一个测试程序,也对x264.h做的extern “C"的说明,但还是有link错误,我的错误是: 1>Linking... 1>libx264...

lucasli
2011/12/12
2.3K
7
tiny4412 移植ffmpeg 不适用命令行,使用C代码方式压缩视频

1.ubuntu 16.04 编译x264 ./configure --host=arm-linux --prefix=/x264-asm --enable-shared --disable-asm 编辑config.mak CC=arm-linux-gccCFLAGS=-Wshadow -O3 -fno-fast-math -Wall -I.......

Aexisun
2017/11/09
0
0
为什么ffmpeg下的默认参数,移植到vs2008后会出现不同呢?

为什么ffmpeg下的默认参数,移植到vs2008后会出现不同呢? 我输入yuv文件编码,设置了一些参数,移植到vs2008后,一样的参数,可是输出的文件的媒体信息则是和linux上输出的不同。请问有遇到...

miggyqian
2011/07/15
751
1
快速整理region的Visual Studio扩展--EasyVS

前前后后研究VSX也一个多月了,这两天终于做了一个小的插件EasyVS,该插件目前只支持VS2010,vs2008的支持可能要过一段时间。还好我没有使用MEF的内容,所以移植到vs2008上应该困难不大。写这...

匿名
2012/06/14
1K
0
编译支持x264 编码的ffmpeg并成功移植到docker

ffmpeg 目标要支持x264 编码解码,所以需要先编译x264. (1)下载X264 : git clone http://git.videolan.org/git/x264.git (2)安装X264: (3) ldconfig (4)然后重新安装FFMPEG: (5) 添加动...

caucy
01/13
18
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

windbg学习记录

我开始熟练使用windbg是从帮助手册开始的,也就是.hh命令。 就像学习windows开发从msdn开始一样,微软的产品虽然不开源,但是文档做的是相当的好。然而那些开源的东西呢?开源的竞争力其实就...

simpower
15分钟前
0
0
学习scala的网站汇总

https://www.codacy.com/blog/how-to-learn-scala/

Littlebox
17分钟前
0
0
配置本地的cloud9开发环境

前言 说到在线IDE开发环境,cloud9是不能绕过的,cloud9支持很多语言,默认支持的就有Node.js,Python,Ruby,PHP,Go,更逆天的是,他还支持数据库,包括MySQL,MongoDB,Redis,SQLite。但...

Kefy
21分钟前
1
0
springcloud应用程序上下文层次结构

如果您从SpringApplication或SpringApplicationBuilder构建应用程序上下文,则将Bootstrap上下文添加为该上下文的父级。这是一个Spring的功能,即子上下文从其父进程继承属性源和配置文件,因...

itcloud
25分钟前
0
0
新程序员最爱的免费资源

简评:国外美女程序员推荐了她自己用过的一些免费资源,对新手比较友好的那种。 原作者 Ali Spittel,是个美女程序员,以下这些资源都是她自己试过的。以下「我」代表 Ali Spittel。 学 HTML...

极光推送
29分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部