文档章节

移植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
粉丝 63
博文 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
886
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
2018/01/13
18
0

没有更多内容

加载失败,请刷新页面

加载更多

sql根据日期查询,本周,本月,本年,今日相关统计

sql根据日期查询,本周,本月,本年,今日相关统计 昨天 select * from tb where datediff(day, 时间字段 ,getdate()) = 1 今天 select * from tb where datediff(day, 时间字段 ,getdate()) = ...

BraveLN
29分钟前
3
0
Delphi 折叠代码编译变量$REGION

编译变量$REGION,用于在delphi2006以后版本的折叠代码显示,非常方便。 procedure TForm1.Button1Click(Sender: TObject); var uStr: UnicodeString; begin {$REGION '显示uStr变量内容'} ......

dillonxiao
30分钟前
1
0
【更新】SyntaxEditor发布v2018.1,可共享相同代码库

SyntaxEditor最新版本下载 SyntaxEditor是一款强大的代码语法检验控件,采用了当今最前沿的代码编辑的技术,可以为你代码编辑提供强大的管理功能。最新版支持Visual Studio 2013和Windows 8...

电池盒
31分钟前
3
0
如何在基于Bytom开发过程中集成IPFS

本文介绍了基于Bytom开发过程中集成IPFS。 step1: 搭建bytom节点 比原相关资料:https://github.com/Bytom-Community/Bytom_Docs 搭建bytom节点有很多方式,然后开启RPC调用模式。这里推荐用...

比原链Bytom
35分钟前
1
0
sqlyog注册码

sqlyog注册码 1.方式一 用户名: 随意填写 秘钥: ccbfc13e-c31d-42ce-8939-3c7e63ed5417 a56ea5da-f30b-4fb1-8a05-95f346a9b20b a0fe8645-3916-45d4-9976-cb6b88fecc6c b70d7f66-dac2-4462-......

dragon_tech
38分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部