FFmpeg Linux下编译整理

今天终于将服务器架设起来了.心理舒坦,所以总结一下,我使用的操作系统是:Ubuntu 9.10,我是参考这里的来进行编译的插件安装的,不过有些插件安装不上,注意在Ubuntu下如果执行命令make install失败,则使用sudo make install使用root 权限来执行,因为有些目录普通用户不能创建。基本编译过程和需要安装的差价包上面博客讲的很详细,网上也有很多教程。

一、安装编译所需的工具和库:

(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 libxvidcore4-dev zlib1g-dev

二、编译和安装x264库

git clone git://git.videolan.org/x264.git

cd x264

./configure

make

sudo make install

有时候编译不过去,则可以使用新力德软件安装程序来进行安装,使用方便

三、编译和装ffmpeg:

svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg

cd ffmpeg

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

make

sudo make install

一般就可以了,输入ffplay  xxx.rm 播放OK。configure 不用带参数也行,就用默认的。

//------------------------------------------

//

在此我遇到了一个奇怪的问题,编译是通过了,但是编译出来的ffmpeg有问题,在进行流媒体解码时出错,于是我去官方网站手动下载了ffmpeg源码包

顺利编译完成后,输入命令ffserver,ffmpeg,ffplay都会有相应的提示,说明你以经安装完成,具体安装在哪里,一般在/usr/local/bin/下面,也可以在./configure参数指定

接下来,我们通过ffserver,ffmpeg,ffplay,来时间流媒体播放功能

第一步:

ffserver.conf 配置

Port 8090

BindAddress 0.0.0.0

MaxHTTPConnections 2000

MaxClients 1000

MaxBandwidth 1000

CustomLog -

NoDaemon

<Stream testflv>

File "test.flv"

Format flv

</Stream>

<Stream Blue>

File "Blur.MP3"

Format flv

</Stream>

<Feed feed1.ffm>

File /tmp/feed1.ffm

FileMaxSize 2M

ACL allow 127.0.0.1

</Feed>

<Stream mytest>

Feed feed1.ffm

Format flv

</Stream>

<Redirect index.html>

URL

</Redirect>

参数说明:

我上面创建了三个流,其中Blue,testflv都是直接使用本地文件创建的

<Stream Blue>

File "Blur.MP3"

Format flv

</Stream>

表示创建一个以当前文件所在目录下的Blur.MP3创建的流,Blue,并将他以flv格式播放

Feed feed1.ffm>

File /tmp/feed1.ffm

FileMaxSize 2M

ACL allow 127.0.0.1

</Feed>

表示:在/tmp/下创建一个缓冲区,feed1.ffm,大小为2M,这个可以自己根据需要修改

ACL allow 127.0.0.1 表示可以访问的IP

<Stream mytest>

Feed feed1.ffm

Format flv

</Stream>

表示:以缓冲区feed1.ffm 创建的流mytest

其它东西不用管,OK,ffserver.conf配置好后,我们开始启动ffserver服务器

启动命令:

打开终端,输入 ffserver -f ffserver.conf  命令启动ffserver

这里注意,你的ffserver.conf路径,我一般是在当前ffserver.conf所以的文件夹下运行终端的

当启动成功后,就不用管了,我们另开启一个终端测试,是否配置成功

输入:

ffplay :8090/Blue

ffplay :8090/testflv

如果能正常播放的话,那说明已经配置成功了

现在我们要做的是通过ffmpeg来将,数据字入缓冲区feed1.ffm中

注意,由于我们现在的缓存冲只有2M所以,当缓冲区的内容满后,他会自动覆盖

我们打开一个新的终端:

输入:ffmpeg -i inputfile -an :800/feed1.ffm

启动ffmpeg

inputfile 为输入文件名,由于要达到电影播放效果,我使用了一个MP4格式的电影,后成,是将数据写了缓冲区feed1.ffm

如果没有问题,则会出现转换数据,一直在转换,那说明正在转换了,本人刚开始用svn下载的版本,在此执行就出问题了,后面自己去官方网站下载了一个ffmpeg源码压缩包,便运行成功了

OK,现在我们再用ffplay测试一下吧

新开一个终端输入:ffplay :8090/mytest

OK,达到我们想要的效果了。。如果大家在以上出现什么问题,可以和我交流

首先要安装各种解码器

1、lame

lame-3.97.tar.gz

Url:?group_id=290&package_id=309

安装方法如下:Java代码

tar -zxvf lame-3.97.tar.gz  

cd lame-3.97

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

make  

make install

tar -zxvf lame-3.97.tar.gz

cd lame-3.97

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

make

make install

2、libogg

libogg-1.1.3.tar.gz

Url:

安装方法如下:

Java代码

./configure --prefix=/usr  

make  

make install

./configure --prefix=/usr

make

make install

3、libvorbis

libvorbis-1.1.2.tar.gz

Url:

安装方法如下:

Java代码

./configure --prefix=/usr  

make  

make install

./configure --prefix=/usr

make

make install

4、xvid

xvidcore-1.1.3.tar.gz

Url:

安装方法如下:

Java代码

tar zvxf xvidcore-1.1.3.tar.gz  

cd xvidcore-1.1.3/build/generic  

./configure --prefix=/usr  

make  

make install

tar zvxf xvidcore-1.1.3.tar.gz

cd xvidcore-1.1.3/build/generic

./configure --prefix=/usr

make

make install

5、x264

x264-snapshot-20071107-2245.tar.bz2

Url:

ftp://ftp.videolan.org/pub/videolan/x264/snapshots/

安装方法如下:Java代码

bunzip2 x264-snapshot-20070913-2245.tar.bz2  

tar xvf x264-snapshot-20070913-2245.tar  

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

make  

make install

bunzip2 x264-snapshot-20070913-2245.tar.bz2

tar xvf x264-snapshot-20070913-2245.tar

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

make

make install

6、libdts

libdts-0.0.2.tar.gz

[url] [/url]

安装方法:Java代码

tar zxvf libdts-0.0.2.tar.gz  

cd libdts-0.0.2 

./configure --prefix=/usr  

make  

make install

tar zxvf libdts-0.0.2.tar.gz

cd libdts-0.0.2

./configure --prefix=/usr

make

make install

7、a52

a52dec-0.7.4.tar.gz

安装方法:Java代码

./configure --prefix=/usr  

make  

make install

./configure --prefix=/usr

make

make install

8、faad2

faad2-2.6.1.tar.gz

安装方法Java代码

autoreconf -vif  

./configure --prefix=/usr --with-MP4v2 --enable-shared  

make  

make install

autoreconf -vif

./configure --prefix=/usr --with-MP4v2 --enable-shared

make

make install

9、faac

faac-1.26.tar.gz

安装方法:Java代码

tar zxvf faac-1.26.tar.gz  

cd faac  

./bootstrap  

./configure --prefix=/usr  

make   

make install

tar zxvf faac-1.26.tar.gz

cd faac

./bootstrap

./configure --prefix=/usr

make

make install

10、amr-nb

amrnb-6.1.0.4.tar.bz2

安装方法:Java代码

./configure --prefix=/usr  

make  

make install

./configure --prefix=/usr

make

make install

11、amr-wb

amrwb-7.0.0.1.tar.bz2

安装方法:Java代码

./configure --prefix=/usr  

make  

make install

./configure --prefix=/usr

make

make install

12、lib52

a52dec-0.7.4.tar.gz

如果前面的安装一切顺利的话,恭喜你,可以安装ffmpeg了

安装ffmpeg

Java代码

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/pfsxp.html