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上移植的,能给小弟指点迷津。。。小弟泪牛满面,感激不敬啊

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

相关文章推荐

移植SDL运行库到ARM11(s3c6410)上

1.libconv库的编译 # cd /opt/mini6410/games # mkdir output # tar xvzf /tmp/libiconv-1.13.1.tar.gz   ...

视频监控T.264在S3C6410上的移植

  • 2012年05月06日 21:28
  • 269KB
  • 下载

摩托罗拉SE4500 三星 S3C6410 Wince6.0平台软解码调试记录以及驱动相关问题解释

虽然S3C6410出来很多年了,甚至于已经停产了,出货的几乎都有依赖于库存,SE4500也出来很多年了,但是网上依旧不会有调试资料帮助你,一切源于自私。希望本文能帮到你,不必感谢。本文来自C.S.D....

在Fedora22平台下将opencv移植到S3C6410

  • 2015年12月11日 21:32
  • 29.05MB
  • 下载

ALSA在ARM(S3C6410)中的移植

软硬件平台:ARM9(S3C2410A),UDA1341, 2.6.33.1内核,arm-none-linux-gnueabi-gcc-4.3.2 ASoC: ALSA为嵌入式系统提供的SOC...

【zz】ALSA在ARM(S3C6410)中的移植

【zz】ALSA在ARM(S3C6410)中的移植

ARM11---中断---向量中断控制器(VIC)---结合s3c6410

今天看了看ARM1176手册关于中断的那部分,感觉挺有意思的。记下来!   (一)、首先说一下PL192向量中断控制器           一个中断控制器是用来处理多个中断源的外围设...

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

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

S3c6410 linux内核移植(11)---用SD卡下载uboot、linux内核和文件系统

1、 移植mtd-utils: a) 下载utd-utils 下载地址为ftp://ftp.infradead.org/pub/mtd-utils/ b) 交叉编译mtd-utils ...
  • heyong_
  • heyong_
  • 2012年03月16日 16:01
  • 642
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:X264编码器在wince上的移植(ARM11,S3C6410。平台配置是S3C6410_sdk)
举报原因:
原因补充:

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