引子:最近在帮老师做项目,涉及到视频和图形图像处理这方面的内容。我觉得作为一个程序猿,不仅仅着眼于小的细节,对自己整体方向的把握也需要一个比较好的规划,我们的目标是:当一个好的程序猿。
项目整体的架构是:ubuntu+python+django+apache+html+mongodb。
当时卡在视频关键帧提取这一块好长时间,也没人指导我自己该怎么做,谁让我们程序猿自学能力要强呢?
网上找了很多资料,折腾了一个多星期,终于把这件事搞定了。
用的是ffmpeg,它是干啥的呢?大白话就是:能够处理音视频的转换,编码,当然最重要一点就是:能够读取视频,并生成图片,这其中当然有对关键帧的提取。
步骤1:在ubuntu下安装和编译ffmpeg
关于这一步,另外一位朋友已经写得很详细了,这里我就不再多说了。地址是这个:http://blog.csdn.net/liuyangriver/article/details/9566769
(http://blog.csdn.net/jk110333/article/details/8978280,这篇文章的方法安装ffmpeg失败)
编译方法1:
1、下载ffmpeg1.1.2
apt-get install subversion //安装svn,
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg //下载ffmpeg源代码,保存目录/home/parallels/Documents/ffmpeg/test/ffmpeg.
//output:Checked out revision 26402.
apt-get install git//安装git
git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg //http://ffmpeg.org/download.html官方下载ffmpeg方法,Receiving objects: 100% (314377/314377), 77.14 MiB | 145//KiB/s, done..
//保存目录://home/parallels/Documents/ffmpeg/test/test/ffmpeg
2、配置ffmpeg
2.1、./configure --enable-shared --prefix=/usr/local/ffmpeg //执行该命令,报如下的错误:yasm not found, use --disable-yasm for a crippled build
//解决方法:安装yasm
3、安装yasm
3.1、下载yasm
http://download.csdn.net/detail/reboot2009/4424607 //yasm是汇编编译器,因为ffmpeg中为了提高效率用到了汇编指令,比如MMX和SSE
3.2、配置yasm
./configure
注意:不要使用prefix指定安装路径什么的,否则后患无穷啊!
3.3、编译yasm
make
3.4、安装yasm
make install
4、重新配置ffmpeg
./configure //OK
5、编译ffmpeg
make
6、安装ffmpeg
make install
【废弃
1、下载源文件,最新的版本1.2.1
http://ffmpeg.org/releases/ffmpeg-1.2.1.tar.bz2
网上有人用svn下载的,可见ffmpeg是用svn维护的,下载个trunk版本,稳定版!
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
我用的是第一种方法下载的
2、解压
tar xvjf ffmpeg-1.2.1.tar.bz2
3、运行自动配置
./configure --enable-shared --prefix=/usr/local/ffmpeg
其中:--enable-shared 是允许其编译产生动态库,在以后的编程中要用到这个几个动态库。--prefix设置的安装目录。
期间可能会出错,说少了yasm,请用--disabled-yasm重新运行,在命令中加入这个参数也能成功,不过最好加上,这个和格式转换有关系的!