巧妹儿,点滴生活,生活点滴,都需要你来陪伴,往后余生,请多多指教。男人最幸福的事情是:一个好妻子,一份好工作,一个好身体。

2009-2022
DFHL
首页 » ubuntu » Ubuntu安装开源H.264标准编解码库x264

Ubuntu安装开源H.264标准编解码库x264

1 x264



x264是基于H.264/AVC标准的一款免费、开源的视频编解码器(库),x264是目前使用最广的、最优秀的一款H.264编解码器。x264编解码器支持的功能众多,包括:



    8x8与4x4自适应空间变换



    自适应B帧选择



    B帧作为参考帧/任意帧的顺序



    CAVLC / CABAC熵编码



    自定义量化矩阵



    I帧:所有宏块类型(16x16, 8x8, 4x4, PCM和所有预测PCM)



    P帧:所有分区(从16x16到4x4)



    B帧:从16x16到8x8的分区( 包括skip/direct )



    隔行扫描(MBAFF)



    多参考帧



    码率控制:恒定量化器,恒定质量, 单次或者多次编码的平均码率 ,可选VBV参数



    场景变化检测



    B帧时间域、空间域direct模式自适应选择



    支持多个cpu上并行编码



    预测性无损编码



    用于细节保留的Psy优化(自适应量化、psyrd、psygrid)



    用于任意调整比特率分布的区域





2 安装



    汇编工具安装

    x264库安装





2.1 安装汇编工具



x264库依赖于汇编工具(asm),首先需安装汇编工具,否则编译x264失败。目前x264库使用的是nasm,旧版本x264库依赖于yasm;这里需安装nasm。



nasm下载地址:



最新版本:https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/



本人使用的版本:https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/



各种压缩文件格式都有,选择一个自己系统已经安装了相应格式的解压工具,省去再安装一个额外解压工具的过程。这里选择.bz2压缩版本。



在这里插入图片描述



2.2 安装x264库



x264库下载地址:http://www.videolan.org/developers/x264.html



x264代码仓库:https://code.videolan.org/videolan/x264.git



编译完成成功后,在当前目录生成静态库libx264.a和动态库libx264.so.157。



在这里插入图片描述



安装则是将动态库libx264.so.157安装(拷贝)到/usr/local/lib目录下,并创建一个软链接文件libx264.so,链接到libx264.so.157动态库。因为,依赖于x264库的应用程序执行时,索引链接的库名称是libx264.so。使用软链接的好处就是,不因为x264库的更新导致应用程序索引不到动态库。x264的库是持续更新迭代的,编译后的动态库名称一般会带版本后缀,如libx264.so.157中的“157”后缀;如果以具体版本的动态库为索引名称,更新动态库时将需要修改脚本或者程序。因此,最理想的方式是建立一个软链接。



在这里插入图片描述



3 测试



源码中提供了一个测试例子x264.c,该例子是一个基本的视频编码过程,可以将YUV视频流转换成264、flv、mkv等格式的视频。通过这个例子初步直观体会x264的强大功能。编译x264库的时候,已经将测试例子源码编译,编译后的执行文件为x264,可以执行./x264 -help查看使用方法。



从网络上下载一个YUV序列文件测试效果,编码后的文件可以通VLC播放器播放。



执行编码,可以看到原始YUV序列文件的信息,编码后I帧、P帧、B帧的压缩信息,编码率为631.36fps。编码后文件(bus.264)大小为98.5K,原YUV文件为2.71M,压缩率3%。



使用快速编码方式:



使用快速编码,编码率提高到1441.39fps,编码后文件为248K,压缩率接近9%(压缩率越低压缩比越大)。



4 参考文章



【1】H264基础简介

【2】H264基本原理


文章如无特别注明均为原创! 作者: 等风也等你, 转载或复制请以 超链接形式 并注明出处 走近风的BLOG
原文地址《 Ubuntu安装开源H.264标准编解码库x264》发布于2021年9月17日

分享到:
打赏

评论

游客

看不清楚?点图切换