做产品目录的网站,企业做网站乐云seo快速上线,龙华建设局网站,wordpress支持什么语言包from: http://www.cnblogs.com/windwithlife/archive/2009/05/31/1492728.html
终于完成了了第二个Client side原型#xff08;for Wince)#xff0c;其中花掉我最多时间的就是ffmpeg的对WINCE的移植。其中有大半时间是由于网上的一些不完整及不正确信息所误导#xff0c;但…from: http://www.cnblogs.com/windwithlife/archive/2009/05/31/1492728.html
终于完成了了第二个Client side原型for Wince)其中花掉我最多时间的就是ffmpeg的对WINCE的移植。其中有大半时间是由于网上的一些不完整及不正确信息所误导但是没有这些零星的信息我可能花费更多的时间。现在我把自己的移植过程分享给大家我尽量做到事无巨细也好让大家少走弯路省去我们程序员们的时间。那可是大把的银子与信心浪费。呵呵书归正传。 一第一个想法仍像从前移植平台代码一样先找到这种跨平台代码的自己的特定平台的make文件或工程
可惜没有发现ffmpeg 有for windows 及 for wince的make 及工程。再细读 ffmpeg的官方网站让人仰天大笑其中说到由于VC/Visual studio 开发环境的编译器对C99支持不好而ffmpeg又是follow这些C语言规范写的因此不支持VC/VS的编译器。这比一些跨平台项目说windows OS is silly OS, not popular POSIX 从而不支持的说法更有趣。其实从IT行业而言这些理由都不是那么的合逻辑也不够严谨。但代码是别人写的。我们又能如何呢呵呵。 二曲径通幽既然ffmpeg不支持windows的编译器那我们还有一个曲折的办法它不是支持POSIX嘛 也就是支持linux/unix嘛 那我们就有了我们的办法我们的windows平台上的linux编译器算一种交叉编译吧呵呵于是大家想到了Cyxwin及 MingwMsys,其它Cyxwin中编译出windows的平台上可用的库还是调用了Mingw的编译器于是我们就直接研究Mingw Msys吧但是这个东东有一个致命的弱点就是要安装分别要更新一堆组件更新到什么版本呢天知道都用最新的吧。去相关的网站去下载他们http://不过Mingw的 sourceforge 网站真不是人去的里面乱放而且目录没有一个明确的索引网站又慢我是花了一天时间才找齐后来发现ffmpeg有一个说明网页可以明确下载。请参看http://ffmpeg.arrozcru.org/wiki/index.php?titleMSys_MinGW其中下载地址我再列一下以方便大家
Mingw: http://sourceforge.net/project/showfiles.php?group_id2435package_id240780release_id595197
Mingw插件更新 http://prdownloads.sourceforge.net/mingw/binutils-2.18.50-20080109-2.tar.gz?download http://prdownloads.sourceforge.net/mingw/mingwrt-3.15.1-mingw32-dll.tar.gz?download http://prdownloads.sourceforge.net/mingw http://prdownloads.sourceforge.net/mingw/w32api-3.13-mingw32-dev.tar.gz?download
最稳定的gcc编译器for mingw插件 http://prdownloads.sourceforge.net/mingw/gcc-core-3.4.5-20060117-1.tar.gz?download http://prdownloads.sourceforge.net/mingw/gcc-g-3.4.5-20060117-1.tar.gz?download
至于安装过程网上搜一下不会有问题cant miss it MSys:http://prdownloads.sourceforge.net/mingw/MSYS-1.0.11-2004.04.30-1.exe?download
相关插件更新 http://prdownloads.sourceforge.net/mingw/MSYS-1.0.11-20080821-dll.tar.gz?download http://prdownloads.sourceforge.net/mingw/bash-3.1-MSYS-1.0.11-snapshot.tar.bz2?download http://prdownloads.sourceforge.net/mingw/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2?download http://prdownloads.sourceforge.net/mingw/make-3.81-MSYS-1.0.11-2.tar.bz2 至一Msys的安装及与Mingw整合在一起网上查一下cant miss it,
三 开始for windows的ffmpeg编译。这个ffmpeg论坛上倒有相关的指导。请参照
http://ffmpeg.arrozcru.org/wiki/index.php?titleStatic
这里有一个静态库的编译。按向导完成编译成静态lib库可以址接进行编译链接到 windows项目中only for windows平台not for wince),好放到一个新的window项目中编译成功链接一堆的库找不到哈哈仰天大笑用工具一查相关引用原来这些找不到函数还在mingw的库中也就是说要在项目中用ffmpeg的静态库你还要搭上一堆mingw的库就像现在市场上的搭配销售。再笑我先找个地方睡半天缓解我的想扁人的冲动。
睡醒之后换种用法我编动态库这下你不会不把我的所有函数给我加到我的DLL里吧再换了一些ffmpeg的./configure参数。搞定。生成了动态库及lib.用到项目里编译通过。不过这只是万里长征第一步我还要最痛苦的for wince的库。
四for wince 的ffmpeg: 从linux的代码用mingw编成 for windows那是人家mingw的任务我们也只绕了一道弯for wince的mingw不存在呀怎么办忽然想到linux上的交叉编译人家可以在linux用定制的gcc交叉编译器弄出for wince的库那我们何不在Mingw上搞出for wince的库一查网上果然仅有的解决方案也就是交叉编译成for wince 的ffmpeg所用交叉编译器大家可以看仔细了
网上有绝大多数的相关贴子给的交叉编译器是不正确的下载的地址不正确真搞不懂网上一堆人转载别人的文章也不去验证一下转载干嘛我就是由于用了网上这些人转载地址去下载编不正确的编译器浪费了3天的时间无功而返。记住下载的交叉编译器是 cegccmingw 下载地址是
进行编译。编译最新的库会有一些汇编通不过。自己对汇编不熟悉不过要是在linux上交叉编译应该没问题有兴趣的话可以自己试那个环境那样的话用的交叉编译器就应该是cegcc.
没办法为了节省我的时间我可是要在两周内完成三个平台的原型开发的。就拿了2007年的ffmpeg来编。其中也改了不少东西才编译能通过首先./configure 之后在生成的config.mak中要修改“SLIB_EXTRA_CMD-lib /machine:i386 /def:$(:.dll.def)”为“SLIB_EXTRA_CMD-lib /machine:arm /def:$(:.dll.def)”,及 “EXTRALIBS -lm”改为“EXTRALIBS -lm -lws2.lib”其中编译过程中采取了perror禁用有seek函数禁用与替换由于没有用zlib,linux平台估计会没有问题).细节可以有时间再写有兴趣的话可以加我MSN。
编译成功后。用在C环境中。测试普通函数通过不过在视频编换时效率不高。
换了一下网上的别人编译的ffmpeg库网上有一个下载不过此SDK在wince上用时用在C项目中有问题。头文件中有重复定义解决办法是放在.c文件中由Cpp文件来调用这样可以规避这些问题但这样就存在了一些全局变量.这样的头文件是不能用在Sybmian平台的。 另外一种思路就是不用ffmpeg.用Xvid解 mpeg4测试下来效率好像要高于ffmpeg,毕竟是专门for mpeg4,用xh264解 H264,拿过他们的源代码一看还是人家这跨平台现成的for windows平台的工程make文件这才是真正的跨平台。当然想要更多功能ffmpeg地位还是无人能及。
如果有人对编解码做简单的跨平台移植有兴趣可以加我MSN一起学习探计相互学习搞技术嘛大家一起共享信息会省掉多少人的多少个不眠之夜我就是因为一些信息的不准确害得我移了一周每天可都工作到凌晨2点多。
好了今天就写到这里至于Symbian平台的移植改天再写。