/ 中存储网

Ubuntu搭建SDL+FFmpeg的方法及命令

2014-12-19 00:00:00 来源:中存储网

在Ubuntu Linux下安装了ffmpeg加载了sdl,编译运行了ffplay.c.tutorial01-08.c.过程记录如下:

1.安装ffmpeg,就是一裸体,呵呵,我什么都没加载。对于刚入门的话,没必要装那么多选项,等用到了什么在加上去吧,我将在以后会吧那些选项加上,当前我只想阅读源码。

2.安装SDL:

因为ubuntu里面有SDL,所以直接在命令窗口输入以下就可以了:

sudo apt-get install libsdl1.2-dev libsdl-image1.2-dev libsdl-ttf2.0-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-sound1.2-dev

检测SDL装上了没有:sdl-config --exec-prefix --version --cflags

2)ffmpeg不讲了,网上一大堆,步骤也繁琐,我就装了一个裸体

下载源码
./configure --enable-shared --enable-pthreads
make

make install

3.对文件的编译命令,很杂:

典型的例子:

gcc  -o player ffplay.c cmdutils.c -I/home/han/soft/ffmpeg_src  -lavformat -lavcodec  -lavcore -lavdevice -lavfilter  -lswscale -lavutil  -I/usr/include/SDL -lSDL -lSDLmain

-lm  -lz

或者

gcc -o tutorial07 tutorial07.c -lavformat -lavcodec  -lavcore -lavdevice -lavfilter  -lswscale -lavutil  -lz -lm `sdl-config --cflags --libs`

-lz的下载:

这类错误:

/usr/bin/ld: cannot find -lz
collect2: ld returned 1 exit status
这是由于缺少libz库

我是这样解决的:在名狂直接输入:apt-get install zlib1g-dev

/usr/bin/ld: cannot find -l* 错误的解决方法……

碰到这个问题大概可以用这个方法去解决(我碰到几个都是这样搞定的):
yum -y install libtool-l*
譬如:
/usr/bin/ld: cannot find -lltdl
解决方法:
yum -y install libtool-ltdl*
 
-lm:一些数学公式等系统内部库,不用管。

ffmpeg那几个tutorial编译的时候,出现rint那个函数错误:只需要注释掉就可以了:

/*
int rint(int x)
{
return (int)(x + (x < 0 ? -0.5 : 0.5));
}
*/

附加:测试电影最好是.mpg文件。