文档章节

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

abcijkxyz
 abcijkxyz
发布于 2016/08/06 11:53
字数 1053
阅读 138
收藏 0

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

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

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

最简单的视频编码器:基于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”的版本。

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

 

本文转载自:http://blog.csdn.net/leixiaohua1020/article/details/42069383

abcijkxyz
粉丝 64
博文 6421
码字总数 1876
作品 0
深圳
项目经理
私信 提问
我的开源视音频项目汇总

本文汇总一下自己视音频编解码学习方面的开源项目。这些开源项目大体上可以分成专业领域程序,FFmpeg示例程序,FFmpeg移植程序,多媒体项目示例程序,视音频编解码原理学习工程几个类别。这些...

leixiaohua1020
2015/01/13
0
0
Windows下Mingw编译生成的ffplay闪退

0.环境:Windows8 x64; mingw-get version 0.6.2-beta-20131004-1 Mingw编译ffmpeg2.6.1,sdl1.2.15 Configure配置如下: ./configure --enable-gpl --enable-version3 --disable-w32thread......

luoyanghero
2015/05/02
617
1
在pcDuino上学习OpenCV系列教程(一)安装ffmpeg

FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编...

雨后的彩虹桥
2014/03/12
817
1
在pcDuino上学习OpenCV系列教程(一)安装ffmpeg

FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编...

酸酸苹果汁
2014/03/07
1K
0
Facebook:AV1比x264和libvpx-VP9提升至少30%

在AV1刚刚完成定稿后,Facebook公布了AV1的测试结果,测试结果显示AV1至少有30%以上的性能提升,这多少给了AV1的潜在用户一定的信心。Facebook还表示,将在内部继续推广AV1。LiveVideoStack对...

LiveVideoStack
2018/04/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Nginx 快速安装详解

一、Nginx Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамбле...

网络小虾米
10分钟前
3
0
技术分享 | slave_relay_log_info 表认知的一些展开

作者:胡呈清 slave_relay_log_info 表是这样的: mysql> select * from mysql.slave_relay_log_info\G *************************** 1. row *************************** Number_of_lin......

爱可生
13分钟前
2
0
nginx配置http访问自动跳转到https

server {listen 80;server_name www.域名.com;rewrite ^(.*) https://$server_name$1 permanent;}server {listen 443;server_name www.域名.com;root /home/www;ssl on;......

很好亦平凡ms
13分钟前
2
0
SpreadJS:一款中国研发的类Excel开发工具,功能涵盖Excel的 95% 以上

Excel 作为一款深受用户喜爱的电子表格工具,借助其直观的界面、出色的计算性能、数据分析和图表,已经成为数据统计领域不可或缺的软件之一。 基于Excel对数据处理与分析的卓越表现,把Excel...

葡萄城技术团队
13分钟前
2
0
用javafx框架tornadofx做了个天气预报的程序

class WeatherApp : App(WeatherView::class)class WeatherView : View("十五天天气预报") { val weatherVM: WeatherViewModel by inject() val controller: WeatherController by......

oschina4cyy
17分钟前
2
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部