Linux下使用FFmpeg框架安装音视频制作服务器

准备

1、 yum -y install gcc gcc-c++ kernel-devel

2、 32位:yum -y install libX11-devel*

3、 64位:yum -y install libX11-devel.x86_64 libX11.i686 libXv-devel.x86_64

4、 yum install -y subversion  libvorbis  libvorbis-devel libogg libogg-devel zlib-devel  libtool

 

安装ffmpeg

    1. 1. yasm(汇编器,支持x86和AMD64指令集)

# tar xvf yasm-1.1.0.tar.gz

# cd yasm-1.1.0

# ./configure --prefix=/usr --enable-shared

# make && make install

    1. 2. faad2(音频文件解码器)

  # tar xvf faad2-2.7.tar.bz2

# cd faad2-2.7

# chmod 777 bootstrap

  # ./bootstrap

  # ./configure --prefix=/usr --enable-shared

  # make && make install

    1. 3. liba52(用于编码 ATSC A/52码流,采用GPL许可证)

  # wget http://ftp.de.debian.org/debian/pool/main/a/a52dec/a52dec_0.7.4.orig.tar.gz

# cd a52dec-0.7.4

64位系统上编辑vim liba52/Makefile.am,去掉第一行

  # ./configure  

       # make && make install

    1. 4. libdirac(通用视频编解码器)

  32位置安装

wget http://downloads.sourceforge.net/dirac/dirac-1.0.2.tar.gz

tar xvfz dirac-1.0.2.tar.gz

cd dirac-1.0.2

  # ./configure --prefix=/usr --enable-shared

# make && make install

64位安装

# rpm -ivh dirac-libs-1.0.2-4.puias6.x86_64.rpm

# rpm -ivh dirac-devel-1.0.2-4.puias6.x86_64.rpm

    1. 5. faac2(音频文件编码器)

  # tar xvf faac-1.28.tar.gz

  # cd faac-1.28

(替换mpeg4ip.h文件,直接按下面方法修改文件也可以。)

cp ../mpeg4ip.h common/mp4v2/mpeg4ip.h

  # ./configure --prefix=/usr --enable-shared

  # make && make install

make时会有错误,把faac-1.28/common/mp4v2/mpeg4ip.h文件中

#ifdef __cplusplus

extern "C" {

#endif

char *strcasestr(const char *haystack, const char *needle);

#ifdef __cplusplus

}

#endif

改成

#ifdef __cplusplus

extern "C++" {

#endif

const char *strcasestr(const char *haystack, const char *needle);

#ifdef __cplusplus

}

#endif

    1. 6. libamrnb(AMR Codecs)

  # tar xvf amrnb-10.0.0.0.tar.bz2

  # cd amrnb-10.0.0.0

  # ./configure --prefix=/usr --enable-shared

  # make && make install

    1. 7. libamrwb(AMR Codecs)

  # tar xvf amrwb-10.0.0.0.tar.bz2

  # cd amrwb-10.0.0.0

  # ./configure --prefix=/usr --enable-shared

  # make && make install

    1. 8. libmp3lame(mp3 Encoder)

  # tar xvf lame-3.98.4.tar.gz

  # cd lame-3.98.4

  # ./configure --prefix=/usr --enable-shared

  # make && make install

    1. 9. git

CentOS的yum源中没有git,只能自己编译安装,现在记录下编译安装的内容,留给自己备忘。

 

确保已安装了依赖的包

 

yum install curl

yum install curl-devel

yum install zlib-devel

yum install openssl-devel

yum install perl

yum install cpio

yum install expat-devel

yum install gettext-devel

下载最新的git包

 

wget http://www.codemonkey.org.uk/projects/git-snapshots/git/git-latest.tar.gz

  # tar xvf git-latest.tar.gz

  # cd git-latest.tar.gz

  #

  # make && make install

make时出错

安装git可以试试

#yum install git -y

安装svn可以试试

#yum install svn

 

    1. 10.    libx264(视频编码器)

  # tar xvf x264-snapshot-20120513-2245.tar.bz2

  # cd x264-snapshot-20120513-2245

  # ./configure --prefix=/usr --enable-shared

  # make && make install

    1. 11.    libnut(容器格式)

  # svn co svn://svn.mplayerhq.hu/nut/src/trunk libnut

  # cd libnut

  # make && make install

    1. 12.    libogg(编码解码器所依赖的函数库)

  # tar xvf libogg-1.3.0.tar.gz

  # cd libogg-1.3.0

  # ./configure --prefix=/usr --enable-shared

  # make && make install

    1. 13.    libtheora(开源的视频编解码器)

  # tar xvf libtheora-1.1.1.tar.bz2

  # cd libtheora-1.1.1

  # ./autogen.sh

  # ./configure --prefix=/usr --enable-shared

  # make && make install

    1. 14.    libvorbis(压缩不同比特率的音频)

  # tar xvf libvorbis-1.3.3.tar.gz

  # cd libvorbis-1.3.3

  # ./configure --prefix=/usr --enable-shared

  # make && make install

    1. 15.    libxvid(视频的编解码器)

  # tar xvf xvidcore-1.3.2.tar.gz

       # cd xvidcore/build/generic/

     #./bootstrap.sh

  # ./configure --prefix=/usr --enable-shared --disable-assembly

  # make && make install

    1. 16.    imlib2(图形库)

yum install libXp-devel

# wget wget http://sourceforge.net/projects/enlightenment/files/imlib2-src/1.4.5/imlib2-1.4.5.tar.gz/

# tar vxf imlib2_loaders-1.4.5.tar.bz2

# cd imlib2_loaders-1.4.5

# ./configure --prefix=/usr --enable-shared

# make && make install

    1. 17.    opencore-amr(音频转换工具)

# tar xvf opencore-amr-0.1.2.tar.gz

# cd opencore-amr-0.1.2

# ./configure --prefix=/usr --enable-shared

# make && make install

    1. 18.    FFmpeg(音视频处理框架)

  # tar -xvf ffmpeg-0.10.3.tar.bz2

  # cd ffmpeg-0.10.3.tar.bz2

#export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig CFLAGS="-fPIC -m64"

  # ./configure --prefix=/usr --enable-gpl --enable-shared --enable-nonfree --enable-postproc --enable-avfilter --enable-pthreads  --enable-libdirac --enable-libnut --enable-libtheora --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb  --enable-libvorbis --enable-libxvid  --enable-libfaac --enable-libx264 --disable-ffserver --disable-ffplay --enable-nonfree  --enable-version3  --extra-ldflags=-ldl

# make && make install

 

    1. 19.    mencoder解码器

http://rays.openrays.org/RAYSLX/pool/main/u/unzip/unzip_5.52.orig.tar.gz

gzip先把这个包解压后,进入解压开的文件夹,

1、cp unix/Makefile ./

2、make generic

3、make install

 

# tar -xvf all-20110131.tar.bz2

# mv all-20110131 codecs

# mv codecs /usr/lib

# unzip windows-essential-20071007.zip

# mv windows-essential-20071007 wincodes

# mv wincodes /usr/lib

    1. 20.    mplayer

# tar –xvf MPlayer-1.0rc4.tar.bz2

#cd MPlayer-1.0rc4/

# ./configure --prefix=/usr/ --codecsdir=/usr/lib/codecs/ --yasm=yasm

# make && make install

    1. 21.   

    1. 1.  

    2. 2.   /usr/lib和/usr/local/lib

例如:

 

 

 

 

错误帮助和参考文档:

http://www.blogjava.net/javaren/articles/install_ffmpeg_on_linux_64bit.html

    1. chcon -t texrel_shlib_t /usr/local/lib/libavutil.so.49

    2.  ldd `which ffmpeg`

    3. find /usr/local/lib/ | grep -E "libavdevice.so.52|libavfilter.so.1|libavcodec.so.52|libavcore.so.0"

    4. ldconfig

    5. http://forum.ivorde.ro/ffmpeg-error-while-loading-shared-libraries-libavdevice-so-52-cannot-open-shared-object-file-no-t129.html

    6. http://iamcaihuafeng.i.sohu.com/blog/view/142463995.htm

 

其它软件的安装:

一、TS流分割器segmenter的安装与使用(将大的ts文件切成小的m3u8)

方法一: m3u8-segmenter

git clone https://github.com/johnf/m3u8-segmenter

下载m3u8-segmenter 下载后不要用它的反复编译,直接取m3u8-segmenter.c文件。

执行

gcc -Wall -g m3u8-segmenter.c -o segmenter -lavformat -lavcodec -lavutil

 

方法二: segmenter

 svn co http://httpsegmenter.googlecode.com/svn/trunk segmenter

cd segmenter

gcc -Wall -g segmenter.c -o segmenter -lavformat -lavcodec -lavutil -std=c99

 

安装好其中一个后,把执行文件拷贝过去。

cp segmenter /usr/bin/

例如:

segmenter -i /var/www/resource-pa/minivideo/chenjie/ts/gq.ts -d 5  test_ts -x /var/www/resource-pa/minivideo/chenjie/gq/index.m3u8  -o  /var/www/resource-pa/minivideo/chenjie/gq/

(后来是拷贝的原服务器上的segmenter)

二、qt-faststart的安装(因ffmpeg转码成mp4后,把mate data移到了视频尾部,因此网上看这视频的时候,需要在线下载完成后才能播放,但我们可以用qt-faststart功能,把mata data移到头部。)

qt-faststart的源文件在ffmpeg的tools中。

# cd ffmpeg-0.10.3/tools/

# make qt-faststart

# cp -a qt-faststart /usr/bin/

这样就可以使用了,例如:

qt-faststart  ./mp4/gq.mp4 ./mp4/gq_temp.mp4

 

三、yadmi

yadmi的作用是为flv文件添加关键帧,才能实现拖动播放

# wget http://sourceforge.net/projects/yamdi/files/yamdi/1.4/yamdi-1.4.tar.gz/download 

# tar xzvf download

# cd yamdi-1.4

# make && make install

# cd ..

 

使用方法:

# yamdi -i input.flv -o out.flv

给input.flv文件 添加关键帧,输出为out.flv文件

 

 

你可能感兴趣的:(linux)