linux编译ffmjpg和x264总结

来源:互联网 发布:mac book 复制 编辑:程序博客网 时间:2024/05/16 23:01

文章来源(其他参考ffmeg和x264):

    http://alphamailpost.blog.163.com/blog/static/2011180812012726103549793/

    http://blog.csdn.net/dgyanyong/article/details/12052857

    http://blog.sina.com.cn/s/blog_784448d60101016h.html

    http://zhangzhenyuan163.blog.163.com/blog/static/8581938920121015954331/

   http://my.oschina.net/u/589721/blog/80192 (windows ffmpeg)

 

 

1、下载ffmpeg。
下载网址:http://www.ffmpeg.org/download.html

2、解压缩
tar -zxvf ffmpeg-2.0.1.tar.gz

3、配置,生成Makefile
./configure --enable-shared --disable-yasm --prefix=/usr/local/ffmpeg
如果执行结果不对,可以根据提示信息,并查看帮助,解决问题
./configure --help

4、编译安装
make
make install

5、安装之后在/usr/local/ffmpeg会看到有三个目录
bin 执行文件目录
lib 静态,动态链接库目录
include 编程用到的头文件

为了防止执行程序找不到库文件,
可以将/usr/local/ffmpeg/lib目录设置到LD_LIBRARY_PATH环境变量,
或者查看/usr/local/ffmpeg/lib下所有的链接,并在/usr/lib下建立同样的链接。如下。
ln -s /usr/local/ffmpeg/lib/libavcodec.so /usr/lib/libavcodec.so
ln -s /usr/local/ffmpeg/lib/libavdevice.so /usr/lib/libavdevice.so
ln -s /usr/local/ffmpeg/lib/libavfilter.so /usr/lib/libavfilter.so
ln -s /usr/local/ffmpeg/lib/libavformat.so /usr/lib/libavformat.so
ln -s /usr/local/ffmpeg/lib/libavutil.so /usr/lib/libavutil.so
ln -s /usr/local/ffmpeg/lib/libswresample.so /usr/lib/libswresample.so
ln -s /usr/local/ffmpeg/lib/libswscale.so /usr/lib/libswscale.so

ln -s /usr/local/ffmpeg/lib/libavcodec.so /usr/lib/libavcodec.so.55
ln -s /usr/local/ffmpeg/lib/libavdevice.so /usr/lib/libavdevice.so.55
ln -s /usr/local/ffmpeg/lib/libavfilter.so /usr/lib/libavfilter.so.3
ln -s /usr/local/ffmpeg/lib/libavformat.so /usr/lib/libavformat.so.55
ln -s /usr/local/ffmpeg/lib/libavutil.so /usr/lib/libavutil.so.52
ln -s /usr/local/ffmpeg/lib/libswresample.so /usr/lib/libswresample.so.0
ln -s /usr/local/ffmpeg/lib/libswscale.so /usr/lib/libswscale.so.2

6、编译测试程序
gcc -o ffmpegtest ffmpegtest.c -I/usr/local/ffmpeg/include -L/usr/local/ffmpeg/lib -lavformat -lavcodec -lavtuil

7、执行程序
./ffmpegtest
或直接执行/usr/local/ffmpeg/lib目录下的./ffmpeg进行测试。

 

 

 先把一个大致的程序处理框图发出来
    

mini2440下UVC摄像头采集视频并且用H264压缩(原创) - engineerdream - engineerdream

 这里面主要涉及到几个点,一个是UVC摄像头的数据采集,另一个是X264在ARM平台下的编译,使其产生libx264.a静态链接库

UVC摄像头的视频采集就不说太多了,想了解的可以去  http://download.csdn.net/detail/zhangzhenyuancs/4771678  下载。
这里出来的数据格式为YUV4:2:2

主要说说X264在ARM平台下的编译
  因为在进行H264压缩时主要用到了X264编译出来的libx264.a静态链接库。
  我用的X264版本为x264-snapshot-20120316-2245-stable。可以去http://download.csdn.net/detail/zhangzhenyuancs/4771526下载
  1.编译

解压x264-snapshot-20120316-2245-stable.tar.bz2

#tar -xvzf x264-snapshot-20120316-2245-stable.tar.bz2

#cd x264-snapshot-20120316-2245-stable

# ./configure --host=arm-linux --prefix=/opt/wecam/ffmpeg --enable-shared --disable-asm

配置选项中已经添加了host的选项,所以makefile就不用再修改了,但是要修改config.mak

[plain] view plaincopy
  1. SRCPATH=.  
  2. prefix=/opt/webcam/ffmpeg  
  3. exec_prefix=${prefix}  
  4. bindir=${exec_prefix}/bin  
  5. libdir=${exec_prefix}/lib  
  6. includedir=${prefix}/include  
  7. ARCH=ARM  
  8. SYS=LINUX  
  9. CC=arm-linux-gcc  
  10. CFLAGS=-Wshadow -O3 -fno-fast-math  -Wall -I. -I$(SRCPATH) -std=gnu99 -fPIC -fomit-frame-pointer -fno-tree-vectorize  
  11. DEPMM=-MM -g0  
  12. DEPMT=-MT  
  13. LD=arm-linux-gcc -o   
  14. LDFLAGS= -lm -lpthread  
  15. LIBX264=libx264.a  
  16. AR=arm-linux-ar rc   
  17. RANLIB=arm-linux-ranlib  
  18. STRIP=arm-linux-strip  

#make

#make install

x264编译也不会出现问题的,如果有,把之前安装的pc端的x264全部删掉

2.测试X264是否在ARM平台下编译好

  把之前采集的.yuv视频命名为   test_352x288.yuv  分辨率可选,这一点很重要

  然后运行./x264 -o test.H264 test_352x288.yuv   可执行文件在bin文件中

  然后用暴风影音播放看.H264文件能否放出

 主要使用其中的libx264.a库


关于把采集出的图像进行编码可以参见http://download.csdn.net/detail/zhangzhenyuancs/4771445

这里每采集出一帧.yuv数据,就把它进行H264编码。