最近研究了一下几种常见的视频编码器:x264,x265,vpx。本文简单记录一下它们的编译方法。

x264,x265,vpx这三个开源的视频编码器可以说是当今“最火”的视频编码器。x264现在占据着H.264视频编码器的半壁江山;x265则是目前实现H.265标准最好的开源视频编码器,并且在未来可能接替x264;而vpx则是Google推出的开源视频编码器,它提出的VP9编码标准的性能也不错。在记录完这篇文章后,计划分别针对x264,x265,vpx写三篇文章记录它们的使用方法。

X264

网站:http://www.videolan.org/developers/x264.html

源代码获取地址:

  1. git clone git://git.videolan.org/x264.git

注意编译前需要安装yasm。

Windows下最简单编译步骤(MinGW)

1.下载安装MinGW,运行后切换至源代码目录

2.输入 "./configure"
3.输入"make"
4.输入"make install"安装(可选)

Linux下最简单编译步骤:

1.切换至源代码目录

2.输入 "./configure"
3.输入"make"

4.输入"make install"安装(可选)

编译后生成:

x264.exe:可以直接使用的编码H.264命令行程序

Libx264.a:可以用于程序开发的编码H.264的类库

Windows下编译获得lib类库步骤(生成libx264.lib)
1.       生成“*.def”文件。输入“./configure”命令的时候,将“./configure”后面加上参数,改为:

  1. ./configure --enable-shared --extra-ldflags=-Wl,--output-def=libx264.def

这样可以生成“libx264.dll”,“libx264.def”文件。
2.       使用VC自带的lib生成工具“LIB”,生成“libx264.lib”文件。使用“Visual Studio command prompt”,切换至x264源代码目录,输入以下命令:

  1. LIB /DEF:libx264.def

即可生成libx264.lib用于在VC下开发。

X265

 

网站2:https://bitbucket.org/multicoreware/x265

源代码获取地址:

  1. hg clone http://hg.videolan.org/x265

注意编译前需要安装:
(1)yasm。
(2)CMake。
 
Windows下最简单编译步骤(VC2010)
1.使用CMake生成x265.sln 文件。具体是在其代码根目录的“build”文件夹中,找到想要生成的“.sln”的版本。

以本机为例,打开“vc10-x86”,运行其中的“make-solutions.bat”,即可生成VC2010的32位的解决方案文件。中间会弹出一个CMake的配置对话框,如图所示。可以直接先单击“Configure”,然后单击“Generate”即可。

2. 用VC打开生成的x265.sln,即可编译程序。可以右键解决方案,选择“生成解决方案”批量编译其中所有的工程。

编译后生成:

x265.exe:可以直接使用的编码H.265的命令行程序

libx265.dll,libx265.lib:可以用于程序开发的编码H.265的类库(lib和dll分开)

x265-static.lib::可以用于程序开发的编码H.265的类库(单独一个lib)

VPX

网站:http://www.webmproject.org/

源代码获取地址:

  1. git clone https://chromium.googlesource.com/webm/libvpx

上述地址有可能访问不了,可以使用下面的镜像地址:

  1. git clone https://github.com/webmproject/libvpx

注意编译前需要安装yasm。

Windows下最简单编译步骤(MinGW)

1.下载安装MinGW,运行后切换至源代码目录
2.输入 "./configure"
3.输入"make"
 
Linux下最简单编译步骤
1.切换至源代码目录
2.输入 "./configure"
3.输入"make"

编译后生成:
vpxdec.exe:可以直接使用的解码VP8,VP9命令行程序
vpxenc.exe:可以直接使用的编码VP8,VP9命令行程序
libvpx.a:可以用于程序开发的编码VP8,VP9的类库

Windows下编译获得各个项目VS2010解决方案的步骤

1.       configure的时候设置“—target”为“x86-win32-vs10”

  1. ./configure --target=x86-win32-vs10

2.       用VC打开生成的vpx.sln,即可用VS浏览整个解决方案。可以右键解决方案,选择“生成解决方案”批量编译其中所有的工程。

 

Windows下编译vpx获得各个项目VS2010解决方案的步骤的更多相关文章

  1. Windows下编译objective-C

    Windows下编译objective-C 2011-08-31 14:32 630人阅读 评论(0) 收藏 举报 windowscocoa工具objective clibraryxcode   目录 ...

  2. Windows下编译SDL

    Windows下编译SDL的理由我就不多说了,无论用VS来编译或调试SDL库都是很方便的.而且SDL源代码中也包含了VC工程,你所要做的只是解压VC工程,进行适当的配置,然后编译.调试. 编译SDL大 ...

  3. Windows下编译memcached-1.4.5(32bit和64bit)

    1.简介 Memcached 是一个高性能的分布式内存对象缓存系统.它通过将数据缓存在内存中来减少对数据库和文件系统的访问,减轻数据库及操作系统的负担,提高应用系统的速度. 目前已经很多系统应用了me ...

  4. windows 下编译64位ffmpeg

    window下如何编译ffmpeg 前文已有介绍,前面介绍的都是如何编译32位的库,本文主要介绍window 下如何编译64位ffmpeg库. 一.搭建编译环境 1.下载 windows下编译64位F ...

  5. windows下编译配置libnet-1.2-rc3

    1.下载winpcap(一个底层驱动,可以嗅探.过滤网卡数据包,发包).exe安装包,傻瓜一步式安装 2.下载WpdPack_4_1_2,这个是winpcap的开发者包,解压之后只需要配置相关路径. ...

  6. [转] Windows下编译OpenSSL

    简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...

  7. 在Windows下编译FFmpeg详细说明

    MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 MinGW,即 Minimalist GNU F ...

  8. 如何在WINDOWS下编译BOOST C++库 .

    如何在WINDOWS下编译BOOST C++库 cheungmine 2008-6-25   写出来,怕自己以后忘记了,也为初学者参考.使用VC8.0和boost1.35.0.   1)下载boost ...

  9. 在Windows下编译OpenSSL(VS2005和VC6)

    需要说明的是请一定安装openssl-0.9.8a .  openssl-1.0.0我没有编译成功. 如何在Windows下编译OpenSSL (Vs2005使用Vc8的cl编译器)1.安装Activ ...

随机推荐

  1. 【bzoj1086】王室联邦

    我以为树分块什么的必有高论,结果居然是个暴力…… 方法也很简单,我看下每个节点dfs的时候是否已经大于k个,大于的话我就新开一块. 注意dfs的时候当前节点不能放进子树的块中. #include< ...

  2. 【 APACHE 】 Apache2.4.x版本虚拟主机配置

    今天准备使用apache搭建一个目录浏览的服务,折腾了一下. apache2.4.x以后的版本: Require all granted 代替了apache2.4.x以前版本: Order Allow ...

  3. selenium 消息框元素定位处理

    以下内容来自于“风少”的博客 <元素定位:selenium消息框处理 (alert.confirm.prompt)> 基础普及 alert对话框 .细分三种,Alert,prompt,co ...

  4. spring boot jar 进程自动停止,自动终止,不能后台持续运行

    第一次部署spring boot 到linux上,用命令java -jar **.jar,发现应用自动退出,进程停止了.后来发现要不挂断的执行命令,忽略所有的挂断信号,用以下命令解决 nohup ja ...

  5. js排序(转载)

    原文地址:http://blog.csdn.net/wzwlln/article/details/6187732#plain sort(sortfunction)为javascript的数组对象(Ar ...

  6. spring报错 :java.lang.NoSuchMethodException: <init>()

        Spring要求init-method是一个无参数的方法,如果init-method指定的方法中有参数,那么Spring将会抛出java.lang.NoSuchMethodException ...

  7. .net开发CAD2008无法调试的解决方法

    把acad.exe.config文件修改为:------------------------------------------------------------------------------ ...

  8. 奶牛与农夫John与oj

    当蒟蒻的我悲惨的发现oj出现大量的奶牛与农夫时,觉得早晚usaco要占领oj,于是绝望的开始记录农夫与奶牛的题目……. 一道usaco月赛的题…在oj用作练习二维数组,虽然数据的大量字符确实很让人不爽 ...

  9. POJ3026 Borg Maze(Prim)(BFS)

    Borg Maze Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 12729   Accepted: 4153 Descri ...

  10. oracle 替换其中部分内容

    update TABLE_NAME set field =REPLACE(field ,substr(field ,0,1) ,'P') where field is not null ;