最简单的视频编码器:编译(libx264,libx265,libvpx)
=====================================================
最简单的视频编码器系列文章列表:
最简单的视频编码器:基于libx264(编码YUV为H.264)
最简单的视频编码器:基于libx265(编码YUV为H.265)
=====================================================
近期研究了一下几种常见的视频编码器: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)的更多相关文章
- 最简单的视频编码器:基于libx265(编码YUV为H.265)
===================================================== 最简单的视频编码器系列文章列表: 最简单的视频编码器:编译 最简单的视频编码器:基于libx ...
- 最简单的视频编码器:基于libvpx(编码YUV为VP8)
===================================================== 最简单的视频编码器系列文章列表: 最简单的视频编码器:编译 最简单的视频编码器:基于libx ...
- 最简单的视频编码器:基于libx264(编码YUV为H.264)
===================================================== 最简单的视频编码器系列文章列表: 最简单的视频编码器:编译 最简单的视频编码器:基于libx ...
- linux下面用Mingw编译libx264
linux下面用Mingw编译libx264 首先要先安装好mingw 我用的是Ubuntu 编译ffmpeg的时候 ,官方上面有一个自动化脚本能够把mingw安装好 这里就不说了 新版本的libx2 ...
- ubuntu下简单的驱动编译
转自:http://www.eefocus.com/jefby1990/blog/13-02/291628_c39b8.html 本文是参考了网上多篇帖子而写的算不上什么原创.唯一值得欣慰的只不过在本 ...
- 【Linux学习】 写一个简单的Makefile编译源码获取当前系统时间
打算学习一下Linux,这两天先看了一下gcc的简单用法以及makefile的写法,今天是周末,天气闷热超市,早晨突然发现住处的冰箱可以用了,于是先出去吃了点东西,然后去超市买了一坨冰棍,老冰棍居多, ...
- bat 简单命令实现编译cocos2d-x android项目
新建一个compile_cmd.bat文件,存放需要执行的命令: cocos compile -p android -j 4 然后,如果直接运行这个文件,在编译完之后命令行窗口会自动退出,这样我们无法 ...
- [ffmpeg 扩展第三方库编译系列] 关于libvpx mingw32编译问题
在编译libvpx的时候遇到挺多的问题, 1.[STRIP] libvpx.a < libvpx_g.a strip: Bad file number 这个错误也是比较难搞的,一开始以为只是 ...
- 转:windows下使用gvim搭建简单的IDE编译环境(支持C/C++/Python等)
原文来自于:http://www.cnblogs.com/zhuyp1015/archive/2012/06/16/2552269.html 使用gvim在windows环境下搭建简单的IDE环境可以 ...
随机推荐
- hdu 1078(dfs记忆化搜索)
题意:容易理解... 思路:我开始是用dfs剪枝做的,968ms险过的,后来在网上学习了记忆化搜索=深搜形式+dp思想,时间复杂度大大降低,我个人理解,就是从某一个点出发,前面的点是由后面的点求出的, ...
- Delphi RichEx 图像
unit RichEx; {2005-03-04 LiChengbinAdded:Insert bitmap or gif into RichEdit controls from source fil ...
- IOS 弹出式 POPMenuView
//MenuView.h // // MenuView.h // RockPopMenu // // Created by zhuang chaoxiao on 14-6-26. // C ...
- Qt使用Cookies对网站操作之Get和POST
1.添加QNetwork模块: a.Qt Creator中打开.pro文件添加QT+=Network; b.VS_Qt中项目属性中Qt Project Settings中Qmodules中勾选”QNe ...
- 【windows核心编程】一个HOOK的例子
一.应用场景 封装一个OCX控件,该控件的作用是来播放一个视频文件,需要在一个进程中放置四个控件实例. 由于控件是提供给别人用的,因此需要考虑很多东西. 二.考虑因素 1.控件的父窗口resize时需 ...
- Geodesic-based robust blind watermarking method for three-dimensional mesh animation by using mesh segmentation and vertex trajectory
之前因为考试,中断了实验室的工作,现在结束考试了,不能再荒废了. 最近看了一篇关于序列水印的文章,大体思想是:对于一个网格序列,首先对第一帧进行处理,在第一帧上,用网格分割算法(SDF)将网格分割成几 ...
- 【和我一起学python吧】Python解释执行原理
这里的解释执行是相对于编译执行而言的.我们都知道,使用C/C++之类的编译性语言编写的程序,是需要从源文件转换成计算机使用的机器语言,经过链接器链接之后形成了二进制的可执行文件.运行该程序的时候,就可 ...
- PackageManager获取版本号
PackageInfo代表的是关于一个包的所有信息,就相当于一个APP应用的清单文件中收集到的所有信息. 通过这个类我们就可以获取类似版本号等一些信息. /** * 得到应用程序的版本名称 */ pr ...
- 多校7 HDU5818 Joint Stacks
多校7 HDU5818 Joint Stacks 题意:n次操作.模拟栈的操作,合并的以后,每个栈里的元素以入栈顺序排列 思路:开三个栈,并且用到了merge函数 O(n)的复杂度 #include ...
- 如何用十条命令在一分钟内检查Linux服务器性能
“如果你的Linux服务器突然负载暴增,报警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?来看Netflix性能工程团队的这篇博文,看它们通过十条命令在一分钟内对机器性能问题进行诊断 ...