zoukankan      html  css  js  c++  java
  • [原]零基础学习视频解码之安装ffmpeg

      写在文章前面:ffmpeg是一个开源的编解码框架,拥有很强大的功能。但是对于如果使用其来做开发呈现着严重两极分化,大神们讨论着高深的问题,大多数像我这样的小白连门都进不去。最近无意间领会了如何入门,现在写下这个系列文章《零基础学习视频解码》用来帮大家提供入门基础。博主的开发机器是基于Ubuntu 14.04 64位的,所以这个系列的文章都是在Ubuntu下完成的。

      一、安装SDL

      C语言没有图形库,其中SDL比较小巧,并且是开源的,适合入门者学习。另外安装ffmpeg的时候会检测是否安装SDL库,否则会安装失败,故先安装SDL库。

      Ubuntu已经包含SDL库,所以通过几个简单的命令就可以安装。

      sudo apt-get install libsdl1.2-dev(比较大,10M左右) 或者到 Ubuntu Software Center中安装

      附加包:

      sudo apt-get install libsdl-image1.2-dev

      sudo apt-get install libsdl-mixer1.2-dev

      sudo apt-get install libsdl-ttf2.0-dev

      sudo apt-get install libsdl-gfx1.2-dev

      安装完成之后,在目录/usr/include中,就会有个SDL文件夹,里面包含了所需要的头文件。

      执行sdl-config --version 查看是否安装成功,如果显示版本信息则表示安装成功。

      二、安装ffmpeg

      方法一:直接前往 Ubuntu Software Center中搜索ffmpeg安装。

      方法二:命令行运行:sudo  apt-get install ffmpeg

      方法三:自己下载源码编译安装:

        1、git clone https://github.com/FFmpeg/FFmpeg.git

        2、需求配置:./configure --prefix=/usr/local/ffmpeg --enable-shared --enable-nonfree --enable-gpl --enable-pthreads --disable-yasm --extra-cflags=-I/usr/local/ffmpeg/include/ --extra-ldflags=-L/usr/local/ffmpeg/lib

          --prefix=PREFIX 设置的是ffmpeg安装目录

          --enable-shared 设置允许编译共享库

          --enable-nonfree --enable-gpl 设置对License的限制,分别为允许使用付费代码和gpl代码。

          --disable-yasm 禁用汇编程序

          --extra-ldflags 设置动态链接库目录

        3、编译安装:

          sudo make

          sudo make install

          安装完成后,如果我们直接运行ffmpeg程序,会报错:

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

          这是因为还有一些动态链接库没有注册到系统中。第4步执行注册动态链接库。

        4、注册动态链接库:

          我们设置了动态链接库的目录,需要注册到系统中。

           echo "/usr/local/ffmpeg/lib" > /etc/ld.so.conf.d/ffmpeg.conf

           ldconfig -v

        

        在命令行执行:ffmpeg 

        显示如下信息,那么恭喜你编译安装ffmpeg成功了:

        ffmpeg version N-64965-g937eaba Copyright (c) 2000-2014 the FFmpeg developers
        built on Jul 29 2014 01:28:01 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
        configuration: --prefix=/usr --disable-yasm --enable-shared
        WARNING: library configuration mismatch
        swscale configuration: --arch=amd64 --enable-pthreads --enable-runtime-cpudetect --extra-version='6:9.14-0ubuntu0.14.04.1' --libdir=/usr/lib/x86_64-linux-gnu --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-swscale --enable-libcdio --enable-x11grab --enable-libx264 --enable-libxvid --shlibdir=/usr/lib/x86_64-linux-gnu --enable-shared --disable-static
        libavutil 52. 92.101 / 52. 92.101
        libavcodec 55. 69.100 / 55. 69.100
        libavformat 55. 49.100 / 55. 49.100
        libavdevice 55. 13.102 / 55. 13.102
        libavfilter 4. 11.102 / 4. 11.102
        libswscale 2. 6.100 / 2. 1. 1
        libswresample 0. 19.100 / 0. 19.100
        Hyper fast Audio and Video encoder
        usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

        Use -h to get full help or, even better, run 'man ffmpeg'

      

      

  • 相关阅读:
    LeetCode: Binary Tree Zigzag Level Order Traversal
    LeetCode: Binary Tree Level Order Traversal II
    LeetCode: Climbing Stairs
    LeetCode: Binary Tree Inorder Traversal
    windows下利用xdebug和WinCacheGrind优化PHP代码(转)
    15个你未知的 Chrome 浏览器杀手级应用(转)
    【转】PHP技巧汇总:提高PHP性能的53个技巧
    21个实用PHP代码
    PHP魔术函数集锦
    介绍9个很有发展潜力的PHP开源项目
  • 原文地址:https://www.cnblogs.com/tanlon/p/3878783.html
Copyright © 2011-2022 走看看