开始写时,想把vlc/ffmepg/x264/xvid/都弄一遍,以为不少代码都要本身编译一下才爽,后来发现,若是不作二次开发,拿dll回来用,足够了,不用费劲本身搞环境。大部分时间你们又想用windows平台下的编译方法,这又更加麻烦了,由于windows的shell环境太弱了,gcc又须要另外装,太麻烦了。linux
并且想弄的库什么的太多,我乃普通人,学不了这么多东西。另外有太多事情你们已经重复作过不少次,写了不少文章,我不用多此一举了。因此我决定打个折扣,只写一些你们不太关心的,可是又有一些人想知道的。git
我要是能把264编解都搞定,xvid/ffmpeg又能用得虎虎生风,也不会像如今这样写普及文章了,呵呵。shell
这个彻底是纯操做,按步骤,正常人都行的。bootstrap
1.VLCwindows
实际上授人以鱼,不如授人以渔。VLC的官方网站实际就有编译方法,就文档这一项,比其余项目强太多了。网络
连接在此:https://wiki.videolan.org/Category:Building/ 选择你须要编译的平台看doc便可。
框架
虽然按照步骤还会有一些问题出现,可是一般这些问题均可以google到。大部分时间,问题都出在autoconf/automake/libtools这套东西上,这个东西实在烂的能够,版本差别又极大,真是无药可救。ide
我大概说一下我作的过程,这个实际上和你的linux版本有太多关系了。并且我本身都是失败了放弃了不少不少次以后,才逐渐找个规律,而后如今基本均可以一次编译经过。svn
先装好须要的工具,cmake/yasm/svn/git/cvs,由于vlc编译时,有不少的依赖库会从网络下载,因此有时有些网站被墙时,有些tar.gz没法下载,你就须要本身去下载回来,而后放到contrib/tarballs下面。工具
% cd contrib
% mkdir native
% cd native
% ../bootstrap
% make
先编译依赖包,由于vlc自己只是一个框架,实际的协议栈/codec/这些库,早就有人开发好了,不用白不用,因此VLC就把这些库拿过来放到本身代码下面了。具体就在contrib/src下有不少。mk脚本,都是配置选项,下载连接之类的东西,在这里。编完依赖,回到根目录,直接make编译成功便可。
2.ffmpeg
老规矩,告诉一个官方的文档来。
http://ffmpeg.zeranoe.com/builds/
这是一个ffmpeg for win32的编译网站,几乎每隔几天就会编译一个版本出来,若是须要开发,直接拿sdk和bin回来用,就能够了,本身在windows上架cygwin/mingw,真心不是好玩的,我玩了太屡次,已经累觉不爱了。
3.x264
直接戳这里:http://download.videolan.org/pub/videolan/x264/binaries/
各类平台都有了,拿回来用吧。不爽的一点就是不知道有些编译选项是否打开,好比我要给ARM编译一个,看来这个须要本身动手编译了。
4.xvid
windows平台也很容易编译,由于这个项目组已经提供了vc项目了。只需一个f5便可。
不过要先装nasm才行。由于有些汇编优化代码是gnu格式的,windows的masm不认识。
一些其余的东西:
关于264
ffmpeg的代码,只有解码模块,没有编码模块,ffmpeg(这里指命令行工具)虽然能压缩片子,可是这个实际是调用x264实现的。
x264的代码,主要是一个编码器,并不侧重解码这块,甚至没有完整的解码器实现。
xvid和divx有一场圣战,详细请戳http://zh.wikipedia.org/wiki/Xvid
nasm不少时候,开发软件真是很是痛苦,好比开发工具就很是郁闷。汇编的格式还有所不一样,致使汇编器不同,因此masm与nasm就出现了,一个是mirosoft的,一个gnu for win32的。更具体的区别
http://hi.baidu.com/3100100788/item/819ef992dff650fe28164742
好吧,其实开源界的codec代码(FLAC/OGG/VP8/theora.....)实在太多了,真不知道国外怎么那么多高手,我连看都看不明白,他们随便写了一个又一个。不过真实的世界多是,大公司为了推广本身的技术,派几我的作个开源版本,而后本身卖闭源软件。真是精明啊。