X264编码器在wince上的移植(ARM11,S3C6410。平台配置是S3C6410_sdk)

原创 2010年12月27日 18:26:00

最近在做x264编码器在wince上的移植,其中遇到了好多问题,至今还没有找到解决方法,很是郁闷。。突然间又月底了,突然间又要过年了。。毕业参加工作快一年了,感觉自己在工作上进展却是步步艰难。废话不多说了,我先来说我是如何在wince上移植X264编码器的;

 

第一:我的目的

        在wince端做视频采集,通过H.264标准压缩,然后RTP打包通过网络发送

 

第二:我做移植的具体配置

 

        公司购买的友坚恒天公司的S3CBV04开发板,处理器是 ARM11的S3C6410,开发板厂商已经在开发板上烧写了系统,并且导出了相应的SDK。UT_S3C6410_SDK(ARMV4I)。。 我已经按照正确的安装顺序 安装了VS2005,SP1补丁,wince6.0...以及UT_S3C6410_SDK(ARMV4I)。

 

第三:在VS2005中新建了智能设备的win32项目,选择static library,也就是win32的智能设备静态库工程,并将X264的源码添加到了工程中。

      说明:x264源代码添加到新建的项目后,会有两个工程,一个libx264,一个x264. libx264是要生成libx264.lib,而x264编译生成x264.exe。。相信大家拿到x264源代码的时候就会晓得我说的怎么一回事。

 

第四:先编译libx264工程,目前我已经成功编译,生成了UT_S3C6410_SDK(ARMV4I)的libx264.lib的库文件。下图是我的工程环境:

 可执行文件的路径:

 

   

 

 

包含文件的配置:

 

 

 

引用文件的路径:

 

 

 

库文件的包含路径:

 

 

 

源文件的包含路径:

 

 

 

排除目录的包含路径

 

 

 

第五:具体的工程配置如上图所示,编译libx264工程,会顺利生成libx264.lib。。当然,这需要几个前提条件:如汇编编译器要放在Vs2005/vc/bin目录下,还有就是一些变量的定义要修改,因为毕竟x264的源码是拿c写的,放到VS2005中后,有些变量的定义规则会不支持,这部分就是纯手工,自己改就行。  好了,到这我的UT_S3C6410_SDK(ARMV4I)平台下的libx264.lib就编译成功了。。。。但是这个库现在就能直接用来 开发我在此平台上的 视频编码嘛???? 我不确定,所以我要编译x264这个工程,这个实际上就是x264源码带的一个例子, 通过连接libx264.lib后,已命令行的方式对采集的YUV格式的视频序列进行编码,你可以用支持H264解码的播放器对编码后生成的文件进行解码播放,看下编码效果如何。 但是我的这种想法立刻受到了阻挡;且看第六步

 

第六:编译x264工程

     这个工程以及添加了项目依赖项,也就是说x264要依赖第一个工程libx264. 但是编译x264工程后出现好多连接错误,这种错误最蛋疼,都不知道错在哪里。

错误提示如下:

 

2>正在链接...
2>libx264.lib(encoder.obj) : error LNK2001: 无法解析的外部符号 _fseeki64
2>matroska.obj : error LNK2019: 无法解析的外部符号 _fseeki64,该符号在函数 mk_close 中被引用
2>muxers.obj : error LNK2001: 无法解析的外部符号 _fseeki64
2>x264.obj : error LNK2001: 无法解析的外部符号 _fseeki64
2>libx264.lib(common.obj) : error LNK2001: 无法解析的外部符号 _fseeki64
2>muxers.obj : error LNK2019: 无法解析的外部符号 _ftelli64,该符号在函数 get_frame_total_yuv 中被引用
2>x264.obj : error LNK2001: 无法解析的外部符号 _ftelli64
2>libx264.lib(common.obj) : error LNK2001: 无法解析的外部符号 _ftelli64
2>x264.obj : error LNK2019: 无法解析的外部符号 signal,该符号在函数 main 中被引用
2>x264.obj : error LNK2019: 无法解析的外部符号 strnicmp,该符号在函数 Parse 中被引用
2>x264.obj : error LNK2019: 无法解析的外部符号 SetConsoleTitle,该符号在函数 Encode 中被引用
2>corelibc.lib(mainwcrt.obj) : error LNK2019: 无法解析的外部符号 wmain,该符号在函数 "void __cdecl mainCRTStartupHelper(struct HINSTANCE__ *,unsigned short const *)" (?mainCRTStartupHelper@@YAXPAUHINSTANCE__@@PBG@Z) 中被引用
2>libx264.lib(common.obj) : error LNK2019: 无法解析的外部符号 stricmp,该符号在函数 x264_param_parse 中被引用
2>libx264.lib(common.obj) : error LNK2019: 无法解析的外部符号 strdup,该符号在函数 x264_param_parse 中被引用
2>libx264.lib(encoder.obj) : error LNK2001: 无法解析的外部符号 strdup
2>libx264.lib(common.obj) : error LNK2019: 无法解析的外部符号 memalign,该符号在函数 x264_malloc 中被引用
2>libx264.lib(getopt.obj) : error LNK2019: 无法解析的外部符号 getenv,该符号在函数 _getopt_initialize 中被引用
2>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 x264_cqm_init,该符号在函数 x264_encoder_open 中被引用
2>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 x264_cqm_parse_file,该符号在函数 x264_encoder_open 中被引用
2>libx264.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 x264_cqm_delete,该符号在函数 x264_encoder_close 中被引用
2>libx264.lib(mdate.obj) : error LNK2019: 无法解析的外部符号 _ftime64,该符号在函数 x264_mdate 中被引用
2>libx264.lib(ratecontrol.obj) : error LNK2019: 无法解析的外部符号 rename,该符号在函数 x264_ratecontrol_delete 中被引用
2>libx264.lib(ratecontrol.obj) : error LNK2019: 无法解析的外部符号 unlink,该符号在函数 x264_ratecontrol_delete 中被引用
2>bin/x264.exe : fatal error LNK1120: 16 个无法解析的外部命令

 

 

错误截图:

 

 

 

 

这些问题至今还没有解决,很是蛋疼。。。不知道到底错误出在哪里。

 

要是有哪位大哥看到了,或者是做过x264编码器在wince上移植的,能给小弟指点迷津。。。小弟泪牛满面,感激不敬啊

版权声明:本文为博主原创文章,未经博主允许不得转载。

arm9底层驱动程序员,你把wince修炼到了几级(一)

我看做wince驱动开发的高人,网上没有几个,要不然就金盆洗手了,假设 ,wince有12级,我现在才到2级,数字越大,表明修炼越深的话。我说,做wince驱动开发的高人没有几个,我虽然是猜测的,但我...
  • suncilang
  • suncilang
  • 2007年05月29日 21:44
  • 3759

X264 的编译和移植

原文来自:http://www.cnblogs.com/lixiaoming90/archive/2012/08/25/2656991.html 摘要:      H.264提...
  • NewThinker_wei
  • NewThinker_wei
  • 2013年04月17日 18:16
  • 3347

移植X264成功

第一步: 官网上下了个最新的x264,地址http://www.videolan.org/developers/x264.html。我下载的文件是last_x264.tar.bz2。 120版本地址...
  • b5w2p0
  • b5w2p0
  • 2014年08月09日 21:26
  • 913

基于S3C6410的ARM11学习(二) bootloader开发准备

程序之旅,首先就是要写bootloader。对于我们这种初学者来说,肯定是要去参考行业老大uboot的代码了。看看别人写的bootloader的流程是怎么样的。毕竟,ARM11和STM32是不一样的,...
  • QQ576494799
  • QQ576494799
  • 2016年02月22日 14:24
  • 688

x264编码器的一些使用经验

最近在使用x264编码器 一些使用经验。 x264各版本的下载地址 ftp://ftp.videolan.org/pub/videolan/x264/snapshots/   x264的编译...
  • table
  • table
  • 2012年10月18日 13:12
  • 7845

x264 利用arm-linux-gcc在arm上的移植 总结

我的移植源文件http://download.csdn.net/detail/kaly_liu/4796426   PC 平台:Linux fedora10—编译器4.3.3 arm-linux-...
  • kaly_liu
  • kaly_liu
  • 2012年11月28日 16:01
  • 2246

基于S3C6410的ARM11学习(四) 核心初始化之设置处理器模式

之前已经设置中断向量表了,下面就要进行设置处理器的模式。    对于ARM11,有8种模式,不同的模式,权限是不一样的。在bootloader开发的时候,我们需要将处理器的模式设置为Superviso...
  • QQ576494799
  • QQ576494799
  • 2016年02月22日 14:50
  • 508

基于S3C6410的ARM11学习(一) 基础知识

手上有一块OK6410的板子,就想起来花点时间学习下经典的ARM系列ARM11。了解一下ARM11的开发流程,以及怎么跑系统。 ARM11和之前学习的STM32的开发是很不一样的。STM32,都是把...
  • QQ576494799
  • QQ576494799
  • 2016年02月19日 14:21
  • 1177

基于S3C6410的ARM11学习(三) 核心初始化之设置中断向量表

前面将流程搞清楚后,下面就开始进行按照顺序来编写程序了。            第一步就是进行中断向量表的设置。在ARM11中,中断向量表叫做异常向量表。            ARM11共有10种异...
  • QQ576494799
  • QQ576494799
  • 2016年02月22日 14:33
  • 817

s3c6410 ARM11启动流程

在ARM11 中,在boot Device(启动设备)这一行中,可以看到有很多种启动的流程,从上到下有 1、RESERVED(保留) 在这一行中,是保留的,也就是拨码开关拨到这些数字上面去的时候,C...
  • xuguibo
  • xuguibo
  • 2015年03月16日 16:21
  • 201
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:X264编码器在wince上的移植(ARM11,S3C6410。平台配置是S3C6410_sdk)
举报原因:
原因补充:

(最多只允许输入30个字)