嵌入式视频--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序列文件,就可以测试了
附上一张我的测试结果图:
注: h264文件,比如用potplayer就可以播放,不过有些以.h264结尾的文件,potplayer放不了,之前就在网上找到别人的h264的demo的文件就不行,用ue打开发现,这可能不是标准的h264文件,因为头部还加了一些其他信息,很多厂家(做安防的)有私有协议,这,就是他们搞得鬼。
下面附上我的测试文件: