h264源码分析[0]

来源:互联网 发布:vb滚动条怎么做 编辑:程序博客网 时间:2024/06/11 05:31

虽然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.git

  • x264的命令行使用
    安装x264后,我们可以利用help来查询x264的使用方法。共有三种help方式分别是

  --help                    List basic options  --longhelp                List more options  --fullhelp                List all options

运行x264 –help,我们可以获取一些基本的命令选项,其它两个通过名字我们可以知道分别是获取更多的选项以及全部选项。运行后输出如下:

这里写图片描述
上图可以看出在基本选项中主要有5个部分:

  1. Presets
  2. Frame-type
  3. Ratecontrol
  4. Input/Output
  5. 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的代码结构。主要以添加注释的形式,因为源码中注释非常少,这使得看源码非常吃力。

0 0