【zz】Ubuntu10.04编译FFmpeg

    技术2022-06-24  38

     

    转载自http://www.cnblogs.com/cnhome/archive/2010/10/12/1849165.html

     

     

    刚开始安装折腾了好久,很多软件包都找不到,可能是跟软件源有关,所以先说一下我的软件源:

    软件源是用的中国默认的官方源http://cn.archive.ubuntu.com/ubuntu/

     

    一、安装编译所需的工具和库:(1)先可以执行命令:sudo apt-get purge ffmpeg x264 libx264-dev

    清除原来的安装包

     

    (2)然后执行命令:

    sudo apt-get install build-essential subversion git-core checkinstall yasm texi2html libfaac-dev libfaad-dev libMP3lame-dev libsdl1.2-dev libtheora-dev libx11-dev libxvidcore-dev zlib1g-dev

     

     

    注意:ubuntu10.04以前的版本请将libxvidcore-dev替换为libxvidcore4-dev,否则会找不到包。

     

    二、编译和安装x264库(可选)git clone git://git.videolan.org/x264.gitcd x264./configuremakesudo make install有时候编译不过去,则可以使用新力德软件安装程序来进行安装,使用方便。

    三、编译和装ffmpeg:svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg

     

    ./configure --enable-gpl --enable-nonfree --enable-pthreads --enable-libfaac  --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-libxvid --enable-x11grab --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopencore-amrnb --enable-version3

     

    注意:配置中没有这一项--enable-libfaad暂时移除,还需要安装两个包libopencore-amrnb-dev libopencore-amrwb-dev

    make

    make install

    完成了上面几步,就可以使用FFmpeg的各项功能了。

     

    上面很多内容也是来源于网络资源,自己根据实际情况做了一些小的修改,做个记录。

     

    10/15更新:

    按上面的配置编译完成之后,播放视频音频是没有什么问题了,但是不能用来编译自己写的程序,总会报错。后来发现要加上--enable-shared这个选项,这样才可以编译自己的例子。还有,要把--enable-libx264这个选项也先去掉,可能也是在编译的时候没有配置shared选项,暂时先不管了,有空再看。下面是一个更新之后的配置选项:

    ./configure --enable-shared --enable-gpl --enable-nonfree --enable-pthreads --enable-libfaac  --enable-libmp3lame --enable-libtheora --enable-libxvid --enable-x11grab --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopencore-amrnb --enable-version3

    在configure,make, make install之后,执行ffplay时会报下面的错:

    ffplay: error while loading shared libraries: libavdevice.so.52: cannot open shared object file: No such file or directory

     

    这个是因为默认的*.so库是安装到了/usr/local/lib这个目录下面,这个目录并不是系统默认的路径,所以会说找不到文件或目录。解决方法有两种:

    1. 把/usr/local/lib目录下的库拷贝到/usr/lib下面。

    2. 修改/etc/ld.so.conf文件,在下面加上一行include /usr/local/lib,然后执行一下sudo ldconfig。

     

    编译ffmpeg/libavcodec/api-example.c命令:

     

    gcc -o api-example api-example.c -lavcodec -lavformat -lavutil

     


    最新回复(0)