zoukankan      html  css  js  c++  java
  • Linux下FFmpeg的编译

      当前视频分享网站十分火爆,其中涉及到两个技术问题,一是对用户上传的视频进行转码,例如几乎所有的视频网站都会把视频转换成FLV格式;另一就是对视频进行截图,方便用户预览。视频转码常用的是MEncoder,这个工具包含在MPlayer中,也可以使用FFmpeg,但据说有些格式转换的时候效率不及MEcoder,所以能用MEncoder转换的尽量用MEncoder转换,由于MEncoder暂时还没有研究,等研究过了再补充上。视频截图就要用FFmpeg了,这篇文章介绍的是FFmpeg。Windows下FFmpeg只要下载编译好的包就可以了,点击以下地址下载(下载地址已失效,请尝试到SourceForge上下载 2010-12-02),这个包里包含有绝大多数的编码解码器,比如mp3、ogg、xvid、mp4、3gp、aac、flv等等,可以执行ffmpeg -formats看到支持的编码格式。Linux下FFmpeg编译就稍复杂了点,下面介绍步骤。

    2010-01-13 说明
    Windows下的FFmpeg和MPlayer已经在SourceForge上创建了项目http://sourceforge.net/projects/mplayer-win32/,在此可以下载到最新版本的FFmpeg和MPlayer二进制包。

      要编译成功FFmpeg,并支持大部分主流视频编码格式,首先还要做一些准备工作。

    1. 支持MP3

      下载LAME(http://lame.sourceforge.net/)。

    # tar zxvf lame-*.tar.gz
    # cd lame-*
    # ./configure --prefix=/usr --enable-shared
    # make
    # make install

    2. 支持OGG和Vorbis

      RPM或YUM安装libogg、libogg-devel、libvorbis和libvorbis-devel。

    3. 支持Xvid和x264

      下载Xvid(http://www.xvid.org/)。

    # tar zxvf xvidcore-*.tar.gz
    # cd xvidcore-*/build/generic
    # ./configure --prefix=/usr
    # make
    # make install

      下载x264(http://www.videolan.org/developers/x264.html)。

    # bunzip2 x264-*.tar.bz2
    # tar xvf x264-*.tar
    # cd x264-*
    # ./configure --prefix=/usr --enable-shared --disable-asm
    # make
    # make install

    4. 支持AC3和DTS

      下载liba52(http://liba52.sourceforge.net/)。

    # tar zxvf a52dec-*.tar.gz
    # cd a52dec-*
    # ./configure --prefix=/usr --enable-shared
    # make
    # make install

    2010-01-13 说明
    新版FFmpeg貌似不支持liba52了,不知道是什么原因,配置参数中删除--enable-liba52 --enable-liba52bin。

      下载libdca(http://www.videolan.org/developers/libdca.html)。

    # bunzip2 libdca-*.tar.bz2
    # tar xvf libdca-*.tar
    # cd libdca-*
    # ./configure --prefix=/usr
    # make
    # make install

    5. 支持MPEG4和AAC

      下载FAAC和FAAD2(http://sourceforge.net/projects/faac/)。

    # tar zxvf faac-*.tar.gz
    # cd faac-*
    # ./bootstrap
    # ./configure --prefix=/usr --enable-shared
    # make
    # make install
    
    # tar zxvf faad2-*.tar.gz
    # autoreconf -vif
    # ./configure --prefix=/usr --enable-shared
    # make
    # make install

      注:编译FAAD2需要使用autoreconf,需要预先RPM或YUM安装autoconf、automake和libtool。

    6. 支持3GP

      下载libamrnb和libamrwb(http://www.penguin.cz/~utx/amr)。

    # tar zxvf amrnb-*.tar.gz
    # cd amrnb-*
    # ./configure --prefix=/usr --enable-shared
    # make
    # make install
    
    # tar zxvf amrwb-*.tar.gz
    # cd amrwb-*
    # ./configure --prefix=/usr --enable-shared
    # make
    # make install

    2010-01-13 说明
    新版FFmpeg中已将libamrnb和libamrwb用libopencore-amrnb和libopencore-amrwb代替,配置参数由原来的--enable-libamr-nb --enable-libamr-wb变为--enable-libopencore-amrnb --enable-libopencore-amrwb。

    7. 编译FFmpeg

      完成了以上准备工作后,开始编译FFmpeg了。FFmpeg的最新源码可以使用Subversion获取。

    # ./configure --prefix=/usr/local/ffmpeg --enable-shared --enable-nonfree --enable-gpl --enable-version3 --enable-libmp3lame --enable-libvorbis --enable-libxvid --enable-libx264 --enable-liba52 --enable-liba52bin --enable-libfaad --enable-libfaadbin --enable-libfaac --enable-libamr-nb --enable-libamr-wb --enable-libopencore-amrnb --enable-libopencore-amrwb
    # make
    # make install

      至此,FFmpeg就编译安装成功了。找一段视频测试一下:

    # /usr/local/ffmpeg/bin/ffmpeg -i /tmp/test.avi -y -f image2 -ss 00:00:02 -t 0.001 -s 320x240 /tmp/test.jpg

      其中/tmp/test.avi为视频文件,/tmp/test.jpg为截图文件,00:00:02表示截2秒时候的一屏。

      如果这时遇到“error while loading shared libraries”,是因为找不到库文件。编辑/etc/ld.so.conf,加入/usr/local/ffmpeg/lib,执行ldconfig即可。

    PS: 这个FFmpeg折腾了我好久,终于搞定了,记下笔记,希望对朋友们有所帮助。

    转:http://www.code-life.com/?p=88

  • 相关阅读:
    Codeforces758C
    Codeforces758B
    CodeForces758A
    数据库实习
    数据结构实习-迷宫(基于Qt实现)
    CodeForces757B
    CodeForces757A
    HDU3790
    数据结构实习
    Codeforces374B
  • 原文地址:https://www.cnblogs.com/shuaixf/p/2773968.html
Copyright © 2011-2022 走看看