虽然H265/Hevc的压缩率要比H264提高40%以上,但是,市面上绝大多数视频还是采用h264的编码方式。而且,目前支持H265/Hevc的硬件设备还是比较少。因此,写点H264的东西,一是供大家相互交流学习,二也算是学习的笔记以备忘。因为能力有限,再加工作繁忙,不免会有遗漏,误解之处,望不吝指正相互学习。
我目前使用的x264的版本信息如下:
x264 0.148.2721 72d53ab (libswscale 4.1.100) (libavformat 57.48.101)
built on Oct 10 2016, gcc: 4.2.1 Compatible Apple LLVM 7.3.0
(clang-703.0.31) x264 configuration: –bit-depth=8 –chroma-format=all
libx264 configuration: –bit-depth=8 –chroma-format=all x264 license:
GPL version 2 or later libswscale/libavformat license: LGPL version
2.1 or later
准备内容
获取源码
X264官网:http://www.videolan.org/developers/x264.html
你也可以直接下载源码:git clone http://git.videolan.org/git/x264.gitx264的命令行使用
安装x264后,我们可以利用help来查询x264的使用方法。共有三种help方式分别是
--help List basic options --longhelp List more options --fullhelp List all options
运行x264 –help,我们可以获取一些基本的命令选项,其它两个通过名字我们可以知道分别是获取更多的选项以及全部选项。运行后输出如下:
上图可以看出在基本选项中主要有5个部分:
- Presets
- Frame-type
- Ratecontrol
- Input/Output
- Filtering
举个例子:我们缩放一个视频。我们可以使用resize filter。用法如下:
x264 ***.flv -o out.h264 --vf resize 256x144,method spline
或者
x264 ***.flv -o out.h264 --vf resize:width=1280,height=720,method=spline
在后一篇文章将要从源码中分析整个x264的代码结构。主要以添加注释的形式,因为源码中注释非常少,这使得看源码非常吃力。