在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文件。