=====================================================

最简单的视频编码器系列文章列表:

最简单的视频编码器:编译

最简单的视频编码器:基于libx264(编码YUV为H.264)

最简单的视频编码器:基于libx265(编码YUV为H.265)

最简单的视频编码器:libvpx(编码YUV为VP8)

=====================================================

近期研究了一下几种常见的视频编码器: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

源码获取地址:

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”后面加上參数,改为:

./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源码文件夹。输入以下命令:

LIB /DEF:libx264.def

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

X265

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

源码获取地址:

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

注意编译前须要安装:
(1)yasm。

(2)CMake。

Windows下最简单编译步骤(VC2010)
1.使用CMake生成x265.sln 文件。详细是在其代码根文件夹的“build”文件夹中。找到想要生成的“.sln”的版本号。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGVpeGlhb2h1YTEwMjA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />

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

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGVpeGlhb2h1YTEwMjA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />

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/

源码获取地址:

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

上述地址有可能訪问不了。能够使用以下的镜像地址:

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”

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

2.       用VC打开生成的vpx.sln,就可以用VS浏览整个解决方式。能够右键解决方式,选择“生成解决方式”批量编译当中全部的工程。

 

最简单的视频编码器:编译(libx264,libx265,libvpx)的更多相关文章

  1. 最简单的视频编码器:基于libx265(编码YUV为H.265)

    ===================================================== 最简单的视频编码器系列文章列表: 最简单的视频编码器:编译 最简单的视频编码器:基于libx ...

  2. 最简单的视频编码器:基于libvpx(编码YUV为VP8)

    ===================================================== 最简单的视频编码器系列文章列表: 最简单的视频编码器:编译 最简单的视频编码器:基于libx ...

  3. 最简单的视频编码器:基于libx264(编码YUV为H.264)

    ===================================================== 最简单的视频编码器系列文章列表: 最简单的视频编码器:编译 最简单的视频编码器:基于libx ...

  4. linux下面用Mingw编译libx264

    linux下面用Mingw编译libx264 首先要先安装好mingw 我用的是Ubuntu 编译ffmpeg的时候 ,官方上面有一个自动化脚本能够把mingw安装好 这里就不说了 新版本的libx2 ...

  5. ubuntu下简单的驱动编译

    转自:http://www.eefocus.com/jefby1990/blog/13-02/291628_c39b8.html 本文是参考了网上多篇帖子而写的算不上什么原创.唯一值得欣慰的只不过在本 ...

  6. 【Linux学习】 写一个简单的Makefile编译源码获取当前系统时间

    打算学习一下Linux,这两天先看了一下gcc的简单用法以及makefile的写法,今天是周末,天气闷热超市,早晨突然发现住处的冰箱可以用了,于是先出去吃了点东西,然后去超市买了一坨冰棍,老冰棍居多, ...

  7. bat 简单命令实现编译cocos2d-x android项目

    新建一个compile_cmd.bat文件,存放需要执行的命令: cocos compile -p android -j 4 然后,如果直接运行这个文件,在编译完之后命令行窗口会自动退出,这样我们无法 ...

  8. [ffmpeg 扩展第三方库编译系列] 关于libvpx mingw32编译问题

    在编译libvpx的时候遇到挺多的问题, 1.[STRIP] libvpx.a < libvpx_g.a strip: Bad file number   这个错误也是比较难搞的,一开始以为只是 ...

  9. 转:windows下使用gvim搭建简单的IDE编译环境(支持C/C++/Python等)

    原文来自于:http://www.cnblogs.com/zhuyp1015/archive/2012/06/16/2552269.html 使用gvim在windows环境下搭建简单的IDE环境可以 ...

随机推荐

  1. webdriver(python)学习笔记七——多层框架定位与智能等待

    多层框架或窗口定位: switch_to_frame() switch_to_window() 智能等待: implicitly_wait() 现在web应用中经常会遇到框架如(frame)或窗口(w ...

  2. IOS UIScrollView中 使用 touch 无法响应的问题

    添加一个 Category  然后在使用到 UIScrollView 的文件里面 导入这个头文件 就可以 // //  UIScrollView+UITouch.m //  alarm // //  ...

  3. Socket异步发送的同步控制

    在网络通信中,我们使用Socket异步发送数据,但在客户端,往往是需要等待服务器的返回结果后(握手过程)再往下执行,这就涉及到同步控制了,在多次的实现中,使用AutoResetEvent,实现不,即有 ...

  4. 使用python的logging模块

    一.从一个使用场景开始 开发一个日志系统, 既要把日志输出到控制台, 还要写入日志文件 import logging # 创建一个logger logger = logging.getLogger(' ...

  5. Unity3D-数学相关

    1. Transform.rotation:对象在世界坐标系下的旋转:Transform.localRotation:对象在父对象的局部坐标系下的旋转.两个变量的类型均为四元素. (1)得到游戏对象当 ...

  6. 批量ping主机脚本

    #! /bin/bash for i in `cat test.list`do   host=`echo $i|awk -F"," '{print $1}'`   app_IP=` ...

  7. Hive自定义UDAF详解

    遇到一个Hive需求:有A.B.C三列,按A列进行聚合,求出C列聚合后的最小值和最大值各自对应的B列值.这个需求用hql和内建函数也可完成,但是比较繁琐,会解析成几个MR进行执行,如果自定义UDAF便 ...

  8. CodeForces 489B BerSU Ball (贪心)

    BerSU Ball 题目链接: http://acm.hust.edu.cn/vjudge/contest/121332#problem/E Description The Berland Stat ...

  9. POJ 3660 Cow Contest(传递闭包floyed算法)

    Cow Contest Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5989   Accepted: 3234 Descr ...

  10. linux下面的查找命令

    在linux下面经常用查找命令,我自己最常用的是find whereis locate 关于find 我常用find的基本功能,如 find / -name filename 在某个目录下寻找文件. ...