• linux下ffmpeg的安装


      1、下载ffmpeg。

          在网上搜索一下,或者到官方网站下载

                http://www.ffmpeg.org/releases

                http://www.ffmpeg.org/download.html      

      2、解压

         tar命令解压

      tar xvzf ffmpeg-git-c995644

      3、配置

      ./configure --enable-shared --prefix=/usr/local/ffmpeg

      其中:--enable-shared 是允许其编译产生动态库,在以后的编程中要用到这个几个动态库。--prefix设置的安装目录。

      4、编译并安装
      make
      make install

      5、安装之后在/usr/local/ffmpeg会看到有三个目录

      lib 动态链接库位置
      include 编程要用到头文件
      bin 执行文件所在的目录

      6、为了以后方便编程,我们把lib中的三个链接库libavcodec.so libavformat.so libavutil.so复制到/usr/lib下。把include目录下的ffmpeg目录复制到/usr/include下。

      执行bin目录下的ffplay,可以去播放音频或者视频文件。例如播放1.mp3

      ./ffplay 1.mp3

      另外,bin目录下还有两个文件:ffmpeg和ffserver

      ffmpeg是一个很好的视频和音频的格式转化工具。网上有很多它的说明文档。如果不想生成ffserver,只要在./configure的时候加--disable-ffserver即可。

    ./configue 和编译过程中可能需要其他库的支持,例如x264,faac等等,按照提示使用sudo apt-get install libname-dev 一个个的安装即可。

      7、编程

      如果写了一个test.c文件,要包含ffmpeg的头文件,可以这样写:

      #include 

      编译:gcc -o test test.c -lavformat -lavcodec -lavtuil (前提是有第6步的操作)

      如果没有第6部的操作,则编译的时候如下:

      gcc -o test test.c -I/usr/local/ffmpeg/include -L/usr/local/ffmpeg/lib -lavformat -lavcodec -lavtuil

      编译成功之后,执行的时候还是需要动态库的支持,还是要把那三个动态库文件复制到/usr/lib或者/lib中,不然执行的时候会说找不到动态库链接。还有一个方法可以解决这个问题,就是把/usr/local/ffmpeg/lib这个目录加入到/etc/ld.so.config中,然后执行 ldconfig,或者重启电脑,这样执行的时候系统就可以从/usr/local/ffmpeg/lib这个目录下去找这三个动态库文件了。

      以上的方式是采用动态库编译ffmpeg的,如果在configure的时候不加上--enable-shared的,则采用静态链接的方式,不会生成那三个动态库。同时生成的ffplay、ffmpeg的执行文件也比较的大,因为他们不需要动态库的支持,就可以执行。但是不利于再次开发,所以我采用动态链接的方式。configure中还有很多的选项,可以通过./configure --help查看,也可以直接查看configure文件。这在配置的时候很重要。
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    基于linux内核的操作系统中编译:

    我所用的操作系统是ubuntu, 将下载ffmpeg的源码放在/home目录下面。或者你也可以用svn从服务器上checkout ffmpeg的代码。ubuntu默认情况下是没有安装svn,但是你可以通过一个非常的简单的命令就完成安装,命令是sudo apt-get subversion。前提是你可以访问因特网。这个过程大约需要几分钟,具体的时间跟你的网络状况有关系。

    打开终端,进入ffmpeg目录。依次输入以下命令:

    ./configure --enable-memalign-hack --disable-debug

    注:有时候会提示没有yasm,使用"--disable-yasm",或者从http://www.tortall.net/projects/yasm/releases下载相关的版本,当然你也可以用sudo apt-get install yasm 安装,当然前提是ubuntu里有yasm的package

    make

    你也可以将2条命令合成一条,一次性执行完成。

    ./configure --enable-memalign-hack --disable-debug && make

    当命令完成之后你就可以在ffmpeg的目录下找到8个可执行程序:

    ffmpeg.exe

    ffmpeg_g.exe

    ffprobe.exe

    ffprobe_g.exe

    ffplay.exe

    ffplay_g.exe

    ffserver.exe

    ffserver_g.exe

    每个可执行程序有一个_g的相对应。这个带调试信息的可执行程序。

    这样编译任务完成。

    注:默认没有编译ffplay的可执行文件,从Makefile里面可以看出,没有SDL,你可以从http://www.libsdl.org/releases去下载相应的版本去安装,也可以通过

    sudo apt-get install libsdl1.2-dev 安装,当然前提也是ubuntu里面有libsdl的package。 

    似乎很顺利, 接下来我们轻松一下,用我们编译出来的成果来看个电影,敲入如下命令:

    ./ffplay /media/downdriver/hly.mp4

    然而我们被告知:

    Could not initialize SDL library: No avaiable video device

    这是怎么回事呢? 原来我的系统中没有安装x11的库文件, 因此编译出来的SDL库就没有加载视频设备的能力了。那接下来我们首先下载对应x11的库文件,然后重新编译SDL, 那么有没有必要重新编译ffmpeg呢, 没有必要。

    下载库文件:

    sudo apt-get install libx11-dev

    下载必要的头文件:

    sudo apt-get install xorg-dev

    安装成功后,再次进入sdl源代码目录重新编译, 不要忘了首先执行:

    make clean

    接着是:

    ./configure

    make && make install

    再来一次:

    ./ffplay /media/downdriver/hly.mp4

  • 相关阅读:
    ASP.NET Core WebAPI学习-4
    PIESDKDoNet二次开发配置注意事项
    PIE SDK影像快速拼接
    PIE SDK加载WMS服务数据
    PIE SDK加载自定义服务数据
    PIE SDK 距离分类和最大似然分类
    PIE SDK矢量点生成等值线、面
    PIE SDK与OpenCV结合说明文档
    C#录制声卡声音喇叭声音音箱声音
    C#录制屏幕采集系统桌面画面
  • 原文地址:https://www.cnblogs.com/shulianghe/p/3724156.html
Copyright © 2020-2023  润新知