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

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

网站1:http://www.videolan.org/developers/x265.html

网站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”的版本。

以本机为例,打开“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/

源代码获取地址:

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浏览整个解决方案。可以右键解决方案,选择“生成解决方案”批量编译其中所有的工程。

时间: 2024-10-24 07:35:38

最简单的视频编码器:编译的相关文章

最简单的视频编码器:编译(libx264,libx265,libvpx)

===================================================== 最简单的视频编码器系列文章列表: 最简单的视频编码器:编译 最简单的视频编码器:基于libx264(编码YUV为H.264) 最简单的视频编码器:基于libx265(编码YUV为H.265) 最简单的视频编码器:libvpx(编码YUV为VP8) ===================================================== 近期研究了一下几种常见的视频编码器:

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

打算学习一下Linux,这两天先看了一下gcc的简单用法以及makefile的写法,今天是周末,天气闷热超市,早晨突然发现住处的冰箱可以用了,于是先出去吃了点东西,然后去超市买了一坨冰棍,老冰棍居多,5毛钱一根,还有几根1.5的. 嗯 接着说gcc的事 先把源代码贴上来 //gettime.h #ifndef _GET_TIME_H_ #define _GET_TIME_H_ void PrintCurrentTime(); #endif //gettime.c #include <stdio.

简单程序的编译链接三种方法(编译多个源文件,静态链接库、动态链接库)

一个程序简单的程序如下: 1 hello.h #ifndef HELLO_H#define HELLO_H void hello(const char *name); #endif 2 hello.c #include <stdio.h>#include <stdlib.h> void hello(const char *name){ printf("hello %s\n",name);} 3 main.c #include <stdio.h>#in

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

本文记录一个最简单的基于libvpx的VP8视频编码器.这个例子是从官方的示例代码中精简出来的例子.我发现与H.264不同,VP8的裸流(即不包含封装格式的纯视频数据流)是不能播放的.换言之,VP8的裸流必须存放在容器中才可以播放.官方示例代码中存储VP8视频流的封装格式是IVF.IVF这种封装格式不是很常见,相关的资料可以查询有关的文档.此外,这个工程中的libvpx也可以编码VP9格式的视频.但是封装格式那里有点问题目前还没有解决,所以暂时没有包含编码VP9的代码.编码VP9和编码VP8的函

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

本文记录一个最简单的基于libx264的H.264视频编码器.此前记录的H.264编码器都是基于FFmpeg调用libx264完成编码的,例如:<最简单的基于FFMPEG的视频编码器(YUV编码为H.264)>相比与上文中的编码器,本文记录的编码器属于"轻量级"的编码器.因为它不再包含FFmpeg的代码,直接调用libx264完成编码.因此项目的体积非常小巧.该编码器可以将输入的YUV数据编码为H.264码流文件. 流程图 调用libx264进行视频编码的流程图如下所示.

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

本文记录一个最简单的基于libx265的H.265(HEVC)视频编码器.此前记录的编码器是通过FFmpeg调用libx265完成编码的,例如: <最简单的基于FFmpeg的视频编码器-更新版(YUV编码为HEVC(H.265))> 相比与上文中的编码器,本文记录的编码器属于"轻量级"的编码器.因为它不再包含FFmpeg的代码,直接调用libx265完成编码.因此项目的体积非常小巧.该编码器可以将输入的YUV数据编码为H.265码流文件. 流程图 调用libx265进行视频

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

原文来自于:http://www.cnblogs.com/zhuyp1015/archive/2012/06/16/2552269.html 使用gvim在windows环境下搭建简单的IDE环境可以参见:http://my.oschina.net/u/146511/blog/50717 该文章讲的很详细,而且给出了各种辅助插件的下载链接. 这里主要讲如何在gvim环境下通过快捷键编译程序. 如果需要编译C/C++程序,首先将微软的cl 编译器 加入到环境变量中,也就是说在cmd 模式下能够使用

Ubuntu下简单配置反编译工具以及其开发环境

0x0:前言 个人电脑重新换了下系统,Ubuntu14.04,刚好需要配置下android的反编译环境,这里简单记录一下,以供有需要的朋友参考. 其实最简单的,只需要apktool就可以了,不过有编码能力的朋友,肯定是希望用自己编写的可视化界面工具来操作了,所以我们就开始配置,并且方便后期继续开发完善工具. 0x01:相关软件的下载 Sig包 http://www.riverbankcomputing.co.uk/software/sip/download Pyqt包 http://source

简单的反编译class文件并重新编译的方法

在没有.java源码的情况下,如果想修改一个.class文件.可以通过以下步骤实现: 修改前的class文件: 一.反编译.class文件成.java文件. 1.可以使用Java Decompiler这个工具,直接打开对应的.class文件.然后点击菜单:File→Save Source,将文件保存成.java文件.如下: PS:Java Decompiler工具还可以用来反编译jar包,有时候需要了解下jar包里的代码实现,如果开发工具里看不到,可以直接用Java Decompiler打开ja