嵌入式视频--X264的安装测试

上一篇做了usb摄像头码流的获取,现在开始对码流进行编码 yuv2h264

首先,要用到的是h264开源编码库 X264。(之前工作中开发,用的hi3520D soc,支持硬件上的h264编码,现在没有硬件上的支持,用这个x264开源库,软件上实现,学习起来一样妥妥的,并且也不用对着个黑匣子调人家的接口,呵呵,这才是linux)。

1.0下源码:http://www.videolan.org/developers/x264.html

先在ubnut12.04上测测。

三部曲:configure, make , make install

注意:个人下载的版本,配置的时候,提示至少需要 那2.13的nasm, 嵌入式,,就这样,太多的依赖。

那就装个 nasm,去官网下个最新的https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/

注意看到别人博客,有的提示需要 yasm-1.2 

这两个玩意到底是什么呢?百度一下:

NASM全称The Netwide Assembler,是一款基于80x86和x86-64平台的汇编语言编译程序,其设计初衷是为了实现编译器程序跨平台和模块化的特性

Yasm是一个完全重写的NASM汇编。

这两个玩意,都是用来支持汇编的,x264库中为了编码的效率部分使用了汇编语言,所以需要这玩意支持,当然,给他disenable掉应该也是可以的,为了效率,还是装上先。

后面,重新configure x264, make , make install .  记得confiure的时候加上 --enable-share --enable-static 编译出来两个库哦,其他的多看看 ./configure --help . 

2.0测试demo

完事,竟然没有看到readme啊什么的,就一个example?咋用?

编译完有一个 x264执行文件, 一样, ./x264 --help下,就会告诉你怎么用了。


部分help如下:

Infile can be raw (in which case resolution is required),

or YUV4MPEG (*.y4m),
      or Avisynth if compiled with support (yes).
      or libav* formats if compiled with lavf support (no) or ffms support (no).
Outfile type is selected by filename:
 .264 -> Raw bytestream
 .mkv -> Matroska
 .flv -> Flash Video
 .mp4 -> MP4 if compiled with GPAC or L-SMASH support (no)
Output bit depth: 8/10
Example usage:
      Constant quality mode:

       x264 --crf 24 -o <output> <input>


这里需要一个测试文件,一个yuv序列的原始数据文件作为输入,然后编码成.h264或者.mkv等文件。

网上找一个yuv序列文件,就可以测试了

附上一张我的测试结果图:

嵌入式视频--X264的安装测试

嵌入式视频--X264的安装测试


注: h264文件,比如用potplayer就可以播放,不过有些以.h264结尾的文件,potplayer放不了,之前就在网上找到别人的h264的demo的文件就不行,用ue打开发现,这可能不是标准的h264文件,因为头部还加了一些其他信息,很多厂家(做安防的)有私有协议,这,就是他们搞得鬼。


下面附上我的测试文件: