X264 的编译和移植

时间:2023-02-15 06:34:26

原文来自:http://www.cnblogs.com/lixiaoming90/archive/2012/08/25/2656991.html



摘要:

     H.264提供比H.263和MPEG-4更高的压缩性能,使图像的数据量减少50%,有利于用有限的空间存储更多的图像数据;更好地支持网络传输,引入面向对象数据包的编码有利于将数据打包在网络中传输,支持流媒体服务应用;具有强的抗误码特性,以适应在噪声干扰大、丢包率高的无线信道中传输;对不同应用的时延要求具有灵活的适应性;编码和解码的复杂度具有可扩展性,支持编码和解码复杂度的不等分配和扩展。H.264的这种优异的压缩性能和良好的网络亲和性,很好地迎合了我们所需要的实时视频通信。所以H.264广泛的应用于视频监控、会议电视、可视电话、远程医疗、远程教学、视频点播、数字电视广播、数字视频存储等等各领域。H.264标准包含了三大开源编码器,它们分别是JM、X264、T264,通过比价他们的优缺点,选择移植X264进行视频编码。

准备阶段:

      主机环境:  Ubuntu11.10

      目标机:     飞凌-Ok6410-A

      交叉编译环境: arm-linux-gcc-4.3.2

     

      源码准备: X2.64源码:http://www.videolan.org/developers/x264.html

                     在linux终端采用git下载:

?
1 $ git clone git://git.videolan.org/x264.git

移植步骤:

      1. 进入x264文件夹,进行配置

?
1 $ ./configure--prefix=/lxm/x264_arm--enable-shared --disable-asm --host=arm-linux

      说明:--prefix=/lxm/x264_arm 安装目录
              --enable-shared   打开动态链接,可以生成libx264.so
              --disable-asm     因为是移植到arm开发板上,因此把汇编选项关闭
              --host=arm-linux  指定目标CPU和系统

       2. 配置完后生成config.mak,打开config.mak修改:
         1)将 CC=gcc 改为 CC=arm-linux-gcc
         2)将 LD=gcc -o 改为 LD=arm-linux-gcc –o
         3)将 AR=ar rc  改为 AR=arm-linux-ar rc
         4)将 RAMLIB=ranlib 改为 RANLIB=arm-linux-ranlib
         保存退出

      3. make 编译
      4. make install 安装
      安装之后在指定安装目录就有/bin,/include,/lib这三个文件夹,其中lib文件夹是动态链接库,/bin是可执行文件,拷贝到开发板的/lib,/bin目录就可以调用x264编码了

 

     之前参照网上的配置,有几个问题,因为我移植的是最新的源码,所以有些配置不一样,还是自己探究比较好,今天终于搞定了。移植好了x264,下面就可以为视频采集压缩做准备,这几天研究了一下H.264视频编码,了解H.264不能对JPEG格式图片进行编码,后面的工作就是将中新微USB摄像头采集到的图片转换为yuv图片,为以后的智能机器人做准备。


参考文章:

http://xzpeter.blog.51cto.com/783279/181647