1.XviDçä¼ç¹?源码
2.Windows下openssl的下载安装和使用方法
XviDçä¼ç¹?
1ã丰å¯å¤å½©çææ¯ç¹æ§
ä¸ä» XviDçåºç°æ¬èº«å°±æ¯å¼æ¾æºç 社ä¼ä¸å ¸åçä¸é¨æç§ä¹¦ï¼å®å¨ææ¯ä¸çåç§æ°ç¹æ§ä¹é½æ¯è´§çä»·å®ãç«¥åæ 欺çã对äºä¸ä¸ªç¬¬äºä»£çMPEG4è§é¢ç¼ç å æ ¸æ¥è¯´ï¼XviDçåç§ç®æ³è®¾è®¡é½æ代表æ§çå è¿æä¹ã
2ãå¤ç§ç¼ç 模å¼
é¤äºæåå§åéä¼°å®ç æµå缩ï¼1-pass CBRï¼ä¹å¤ï¼XviDæä¾äºå æ¬ï¼åéè´¨é模å¼å¨æç æµå缩ãåééåï¼Quantizationï¼æ¨¡å¼å¨æç æµå缩ãåå æ¬å¤é¨æ§å¶åå é¨æ§å¶ç两ç§åéï¼2-passï¼å¨æç æµå缩模å¼ãXviDæ¾ç¶æ¯ç®åPCä¸çMPEG4ç¼ç å æ ¸ä¸ï¼å¯é模å¼æå¤çè§é¢ç¼ç ã
å ¶ä¸ç¹å«æ¯åéï¼2-passï¼å¨æç æµå缩模å¼ï¼éè¿æ£æµç»é¢è¿å¨å¹ 度以æä¼åçæ¹å¼æ²çº¿åé ç»é¢éåå¹ åº¦ï¼ä½¿å 满活æ§å ç´ çè§é¢å½±çå¯ä»¥å¨å ç¨ç©ºé´åç»é¢è´¨éä¹é´è·å¾æä½³ç平衡ãèåééåï¼Quantizationï¼æ¨¡å¼å¨æç æµå缩ï¼å¯ä»¥é«éå°ä¸æ¬¡æ§çæå¯æ§ç»é¢ç»èçå¨æç æµè§é¢æ件ï¼å¨è¾å°çå缩æ¶é´ä»£ä»·ä¹ä¸ï¼å¯ä»¥è·å¾è¾ç¨³å®çç»é¢ç»èè´¨éï¼è¿é½æ¯å纯çDivX3.æä¸å ·æçä¼ç§åè½ã
3ãéåï¼Quantizationï¼æ¹å¼åèå´æ§å¶
éåï¼Quantizationï¼ï¼ç®åç说就æ¯å¨ç¼ç æ¶éè¿å¯¹æ¶é´æ空é´ä¸ç¸é»çç»é¢åå è¿è¡ååã模ç³ç»èçç¨åº¦ï¼æ¯å¯¹ç»é¢è´¨éæåºæ¬çæ§å¶å ç´ ãXviDä¸ä» æä¾äºæ åçMPEGéåæ¹å¼ï¼è¿ç¹å°æä¾äºæ´éåä½ç æµå缩ç.héåæ¹å¼ã并ä¸XviDè¿å¯ä»¥å¨åéï¼2-passï¼è¿ç®æ¶ï¼æ ¹æ®å¯¹ç»é¢ä¿¡æ¯ç综ååæï¼å¨æçå³å®æ段åºæ¯çç»é¢éåæ¹å¼ï¼çå¯ä»¥è¯´æ¯ä¸ºç½ç»åªä½æä»¶ä¼ æä¸ï¼ç©ºé´ä¸ç»è´¨ç平衡èèèï¼è®¾è®¡è´´å¿å¾å°å®¶äºã
XviDè¿æä¾äºå¼ºå¤§ç对å缩è¿ç¨ä¸çéåå¹ åº¦çèå´æ§å¶ãç¨æ·å¯ä»¥éå®å缩æ¶å 许使ç¨çéåå¹ åº¦èå´ãä¾å¦è®¾å®ä¸ä¸ªéåçä¸éï¼å°±å¯ä»¥é¿å å¯è½åºç°çç»è´¨å¤§å¹ ä¸éçæ åµã
4ãè¿å¨ä¾¦æµï¼Motion Searchï¼åæ²çº¿å¹³è¡¡åé ï¼Curveï¼
对ç»é¢é帧è¿è¡è¿å¨ä¾¦æµï¼ä»¥åå¯¹å ¨ç段çè¿å¨ä¾¦æµç»æè¿è¡åæåï¼éæ°ä»¥æ²çº¿å¹³è¡¡åé æ¯ä¸å¸§çéåå¹ åº¦ï¼ä»¥åå°ï¼éè¦é«ç æµçè¿å¨ç»é¢å¯ä»¥åé æ´å¤ç©ºé´ãæ´é«çç æµãæ´ä½çéåå¹ åº¦æ¥ä¿æç»é¢çç»èï¼è对äºä¸å å«å¤ªå¤è¿å¨ä¿¡æ¯çéæç»é¢ï¼åæ¶ååé é¢ç®ãè¿ç§æ好é¢ç¨å¨ååä¸çåæ³ï¼æ¯XviDå为第äºä»£MPEG4ç¼ç çæ ¸å¿å 容ã
XviDæä¾äºå¤æè¿å¨ä¾¦æµç²¾åº¦ï¼å æ¬ååç´ æå¼ï¼half pixel interpolationï¼çææ¯ä»¥xåç´ çå¾®åºå为åå æ 示ä¸è¿å¨ç¢éï¼ä»¥å4åè¿å¨ç¢éï¼inter4v motion vectorsï¼çæ¹å¼ï¼ä»¥8x8çåç´ åºå为åå æ´ç»è´ç纪å½è¿å¨åé以ä¾äºéåæã
5ãå¨æå ³é®å¸§è·ï¼I-frame intervalï¼
å¨æå ³é®å¸§è·æ¯å¦ä¸ä¸ªXviDæå ·æçï¼å¨ç©ºé´åç»é¢ä¹é´è·å¾æ大平衡çææ¯ãæ们ç¥éå¨è§é¢å缩ä¸ä¸æ¯æ¯ä¸å¸§é½è®°å½çå ¨é¨çç»é¢ä¿¡æ¯ï¼äºå®ä¸åªæå ³é®å¸§è®°å½çå®æ´çç»é¢ä¿¡æ¯ï¼èåç»çP帧ï¼P-Frameï¼ä» ä» æ¯çºªå½ä¸ä¸ä¹åä¸å¸§çå·®å¼ãå¦æå ³é®å¸§ä¹é´çç»é¢ååå¾å¤§ï¼åä¼æµªè´¹å®è´µç空é´å¨P-Frameä¸ï¼èå å ¥æååå¾å¤§çé£ä¸å¸§è®°å½å¨å ³é®å¸§éï¼é£ä¹ç±äºåç»ç帧ä¸åææ´å¤§çååï¼å°±å¯ä»¥èçP帧æéç空é´ãå æ¤ï¼æ ¹æ®ç»é¢é头åæ¢åè¿å¨å¹ 度æ¥åæ¢å ³é®å¸§çä½ç½®ï¼å¯¹äºè§é¢å缩ä¸çç»é¢è´¨éæé«ï¼å°±æçäºåååçææã
6ãå¿çè§è§äº®åº¦ä¿®æ£
é¤äºåºæ¬çMPEG4ç¼ç å¤ï¼XviDè¿æä¾äºä¸å°éå åè½ãå ¶ä¸å ¸åçå°±æ¯å¿çè§è§äº®åº¦ä¿®æ£ãè¿ä¸ªåè½å¯è½éè¿å»é¤èç¼ä¸è½å辨ç亮度信å·å亮度差å¼ï¼æ¥æé«å缩æçãéæ¾çæ¯ï¼å°½ç®¡è¿ä¸ªè®¾è®¡é常çæåæï¼ä½æ¯ç®åçå®é åºç¨ä¸å´ä¼å¯¼è´èç¼å¯è§çç»é¢è´¨éä¸éï¼è¿æå¾ å¨æ¥åççæ¬ä¸å¯ä»¥æææ¹è¿ã
7ãæ¼èå表é项
å¦å¤ä¸ä¸ªè´´å¿ç设计æ¯çµå½±ä¸ç¨çâæ¼èå表é项âãè¿ä¸ªåè½å¯ä»¥å¨ç¨æ·æå®çæäºä¸å¿ è¦ä¿çç»èç段è½å¤ï¼ä¾å¦çµå½±çæ¼èå表ï¼ï¼è®¾å®ä¸ºæä½çç æµãçè³å缩å°æ£çç æµç%以ä¸ï¼å¯ä»¥èçä¸å°ç©ºé´ï¼è®¾è®¡å¾é常贴å¿ã
8ãå¤é¨èªå®ä¹æ§å¶
é¤äºXivDèªå·±çå é¨æ²çº¿åé æ§å¶æ¹å¼å¤ï¼XviDä¹æä¾äºå¤é¨çå¼æ¾æ¥å£ãå 许使ç¨è ç¥è¿XviDæ¬èº«çç¼ç åæå æ ¸ï¼å©ç¨ç¬¬ä¸æ¹æä¾çå¤é¨åæå·¥å ·ï¼ä¾å¦Gordian Knotï¼çæçåé 好çæ§å¶æ件ï¼å交è¿XviDåæç»çäºéè¿ç®å缩ãè¿ç§æ¹å¼æ©å±äºXviDçå¯ç¨æ§åç¨æ·æ§å¶ç¨åº¦ï¼å 为åGordian Knotè¿ç§è½¯ä»¶çè³å¯ä»¥åå°ç±ç¨æ·æ§å¶æ¯ä¸å¸§çéåå¹ åº¦åç æµåé é¢åº¦ï¼å¯ä»¥ä¸ºé«çº§åºç¨æä¾æ´å¤çå¯è½æ§ã
9ãè¿å¨ç¢éå éï¼Hinted Meï¼ç¼ç
XviDè¿æä¸ä¸ºæé«ç¼ç æçèå¼åç设计ï¼å°±æ¯çºªå½ä¸ç»é¢çè¿å¨ç¢éä¿¡æ¯è³ä¸ä¸ªLogæ件ä¸ãåå¨äºéè¿ç®å缩æ¶éè¿ç´æ¥è¯»å该æ件ä¸çä¿¡æ¯ï¼èçä¸å¯¹è¿å¨ç¢éä¿¡æ¯çéå¤è¿ç®ï¼å¤§å¹ æé«ç¼ç é度ã
ãç»é¢ä¼å解ç
ä¸ä» å¨ç¼ç ä¸XivDæ¥æ强大çåè½ï¼å¨è§£ç æ¶çç»é¢ä¼åæ¹é¢ï¼XviDä¹æå¾å¤æ°ç建æ ãä¾å¦"Horizontal deblock (Y)"å¯ä»¥æåæ°´å¹³æ¹åç亮度马èµå ï¼"Horizontal deblock (C)"å¯ä»¥æåæ°´å¹³ç¸çè²åº¦é©¬èµå ï¼"Deringing(Y)"å¯ä»¥æåç¯ç¶äº®åº¦è²æï¼"Deinging (C)"å¯ä»¥æåç¯ç¶è²åº¦è²æï¼"mosquito"å¯ä»¥åå°ç»é¢ä¸çèç¶åªæã并ä¸ï¼è¿äºXviDçç»é¢ä¼åæ段é½æ¯å¯éçï¼å æ¤åªè¦å ³éå 个ä¸æ¯é£ä¹å¿ è¦çé项ï¼å°±å¯ä»¥å¨ä½é ç½®çPCæºä¸ææ¾ã
ãæ£å¨å¼åçB帧
å¦ä¸ä¸ªXviDä¸å¼äººæ³¨ç®çææ¯åå±ï¼å°±æ¯B帧ãæ们ç¥éI帧就æ¯å ³é®å¸§ï¼P帧å¨å ³é®å¸§ä¹é´ï¼åªå¨åä¸ä¹åä¸å¹ 已解åç»é¢çå·®å¼ãB帧ä¸P帧çåçä¸æ ·ï¼ä½é¤äºåèä¹å解åäºçç»é¢å¤ï¼äº¦ä¼åèåé¢ä¸å¸§ä¸çç»é¢ä¿¡æ¯ãå æ¤B帧解ååºæ¥çç»é¢æ¯P帧就è¦æ¥ç好ã
ä¹åçMPEG4ç¼ç å æ ¸é½ä» ä» ä½¿ç¨äºI帧åP帧åå¨ç»é¢ãå¦æè½å¨æ¤åºç¡ä¸ä½¿ç¨B帧ææ¯ï¼èªç¶å¯ä»¥å¨ç»è´¨åå缩æ¯ä¸æ´ä¸ä¸å±æ¥¼ãç®åXviDå·²ç»ä¸ºå¼å人åæä¾äºæµè¯æ§è´¨B帧ä½éªççXviDç¼ç å æ ¸ï¼ç¸ä¿¡ä¸ä¹ çå°æ¥ï¼XviDå°±å¯ä»¥æMPEG4ç¼ç çä¼å¿åæ¥å°æè´ï¼æ为ç½ä¸è§é¢è®°å½æ ¼å¼çç主ã
Windows下openssl的下载安装和使用方法
安装openssl有两种方式,第一种直接下载安装包,源码装上就可运行;第二种可以自己下载源码,源码自己编译。源码下面对两种方式均进行详细描述。源码一、源码iapp手册源码下载和安装openss
方法一:直接使用openssl安装包
Window 的源码openssl的安装包的下载地址为:
一般在安装openssl之前还需要vs的一些插件,该地址中也提供了相关插件的源码下载。如下图即为openssl的源码安装及其vs插件在下载网页的截图。
方法二:自己编译openssl
此过程比较复杂,源码需要先安装perl、源码vs等软件,源码然后才能编译openssl。源码
1、源码下载并安装perl,源码
1)下载路径:
/activeperl/downloads/
2)安装与配置:
直接运行安装文件(例如:ActivePerl-5..3.-MSWin-x-.msi)即可完成安装;安装过程将自动完成环境变量的配置(安装完成之后,可以在系统环境变量里看到perl的在线文件源码bin目录(例如: C:\Program Files\perl\site\bin;)已经被加入进来),无需再手工配置;
3)测试安装是否成功:
进入perl安装目录的eg文件夹,执行perl example.pl若显示Hello from ActivePerl!,则说明Perl安装成功。如下图所示:
perl安装成功之后就可以开始使用Perl的相关命令来进行OpenSSL的安装了。
2、openssl可以自己下载源码编译也可以直接下载安装包安装完之后即可使用。
2.1使用源码编译openssl
1) 下载openssl源码的路径:
/blog/static//
下面将使用一个现成的ca文件(ca.key和ca.crt)生成证书文件(client.key和client.crt):
1)创建一个目录用于存放ca文件以及将要生成的证书文件,本例中将该目录创建在outdll目录下:C:\Program Files\openssl-1.0.1g\outdll\test,升级源码包
2)执行命令生成证书的key文件:..\openssl genrsa -out client.key ,如下图所示:
3) 生成证书请求文件:..\openssl req -out server.csr -key server.key -new
4) 生成证书文件:..\ openssl x -req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt -days
下面是其他网友的补充:
安装环境:
操作系统:window7(位)
C++编译器:VS
工具下载:
下载ActivePerl-5.或5.(其他版本也可以):
下载地址:/activeperl/downloads/ (安装过程只要按照Windows下一般程序的安装步骤进行即可)
下载openssl-1.0.1g(其他版本也可以)并解压
下载地址:http://www.openssl.org/source/(建议解压后的文件路径为C:\openssl,PS:只是为了下文的内容匹配,并且方便寻找,其他路径也无不影响)。
安装Perl
(我的安装目录为C:\Perl)
运行CMD命令,使用cd命令将运行目录指向perl安装目录的eg文件夹, 执行perl example.pl若显示Hello from ActivePerl!,则说明Perl安装成功,源码安装打包可以开始使用Perl的相关命令来进行OpenSSL的安装了。
(PS:如果你想看看原始的INSTALL文件,那么请打开OpenSSL的解压缩目录,下面有两个文件INSTALL.W和INSTALL.W,用记事本方式打开,你可以看到详细的关于安装的解释)
安装openssl
(最关键的步骤来了)
1)首先设定好环境变量,这步参照网上的教程后发现后面的编译步骤不成功,找了很就才发现是运势源码下载这部设置的不对才导致的。
设定环境变量:桌面计算机图标右键-属性-高级系统设置-环境变量-在系统变量当中找到变量名称为path的变量(如果没有找到这新建)点击编辑-在变量名称中填入C:\Program Files (x)\Microsoft Visual Studio .0\VC\bin;C:\Perl\bin;c:\windows\system-点击确定完成设定。(说明:C:\Program Files (x)\Microsoft Visual Studio .0\VC\bin路径是VS的路径。C:\Perl\bin是运行perl的路径,不若不设定那么perl命令将找不到。c:\windows\system这个路径很少提到但是很重要,如果不设置那么会造成后面vcvars.bat环境变量执行出错。)到此环境变量路径设置好之后重启下电脑才能生效。
2)使用Visual Studio命令提示()进入控制台模式
开始菜单-所有程序-Microsoft Visual Studio -Visual Studio Tools-Visual Studio命令提示(),(PS:以管理员身份运行), 使用cd命令将目录指向C:\Program Files (x)\Microsoft Visual Studio .0\VC\bin(PS:自己的VC安装路径), 命令行键入vcvars,运行vcvars.bat..完成后进入OpenSSL源码的目录(C:\openssl)
3)执行Configure命令(配置编译参数)(需将目录跳到OpenSSL源码目录下)
在命令行中键入perl configure VC-WIN --prefix=c:\openssl(PS:--prefix=c:\openssl命令为指定安装位置)
4)运行ms\do_ms命令(需将目录跳到OpenSSL源码目录下)
在命令行中键入ms\do_ms。
5)运行nmake -f ms\ntdll.mak命令进行代码编译(需将目录跳到OpenSSL源码目录下)
编译分两种情况,生成静态库和动态库
(1) 如果是编译OpenSSL动态库,则在命令行键入 nmake -f ms\ntdll.mak
编译成功课在文件夹outdll里面查看输出的文件,包括应用程序的exe文件、lib文件、dll文件。
(2) 如果是编译OpenSSL静态库,则在命令行键入 nmake -f ms\nt.mak
编译成功课在文件夹out里面查看输出的文件,包括应用程序的exe文件、lib文件。
6)测试使用命令nmake -f ms\ntdll.mak test(若安装成功则可以使用此命令来验证)
使用openssl
当VS工程需要用到openssl库时,在包含目录中胎添加openssl安装目录的include目录, 来库目录中添加outdll目录。
或者将OpenSSL下的include文件夹、lib文件、dll文件考出,使用的时候包含进去就行了。
另外还有几个命令可能会用到:
测试OpenSSL动态库:nmake -f ms\ntdll.mak test
测试OpenSSL静态库:nmake -f ms\nt.mak test
安装OpenSSL动态库:nmake -f ms\ntdll.mak install
安装OpenSSL静态库:nmake -f ms\nt.mak install
清除上次OpenSSL动态库的编译,以便重新编译:nmake -f ms\ntdll.mak clean
清除上次OpenSSL静态库的编译,以便重新编译:nmake -f ms\nt.mak clean