一、
ffmpeg 0.8.2
编译
由于对linux
系统的熟悉程度不够,近段时间编译ffmpeg 0.8.2
时遇到了很大的麻烦,在不停地查资料,不停地重试之后,我终于搞定了这个让我头疼的编译问题,现在将我的编译方法和大家分享一下,希望对大家有用:
1、 下载debian-multimedia-keyring_2010.12.26_all.deb包,执行:
dpkg -i debian-multimedia-keyring_2010.12.26_all.deb
2、
将下面的代码加到文件/etc/apt/sources.list
中
## Debian Multimedia squeeze:
deb http://www.debian-multimedia.org squeeze main non-free
deb-src http://www.debian-multimedia.org squeeze main non-free
3、
开始安装编译需要的lib
apt-get update
apt-get install subversion frei0r-plugins-dev libdc1394-22-dev libfaac-dev libmp3lame-dev libx264-dev libdirac-dev libxvidcore-dev libfreetype6-dev libvorbis-dev libgsm1-dev libopencore-amrnb-dev libopencore-amrwb-dev libopenjpeg-dev libschroedinger-dev libspeex-dev libtheora-dev libva-dev
4、
进入ffmpeg 0.8.2
目录
./configure --prefix=/opt/ffmpeg --enable-gpl --enable-nonfree --enable-postproc --enable-pthreads --enable-x11grab --enable-swscale --enable-version3 --enable-shared --disable-yasm --enable-filter=movie --enable-frei0r --enable-libdc1394 --enable-libfaac --enable-libmp3lame --enable-libx264 --enable-libdirac --enable-libxvid --enable-libfreetype --enable-libvorbis --enable-libgsm --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libschroedinger --enable-libspeex --enable-libtheora
之前试过好多种编译的方式,编译完成后视频/
音频的转换都没有问题,测试一下水印,发现水印能加上,但是水印的效果相当差。重新编译发现上面参数中:--enable-filter=movie
,--enable-frei0r
两个参数很重要,顺利编译上这两个参数之后,水印也就正常地加上了。
不知道什么原因,我到这步的时候总是出现一个警告信息,上网查了一下,原来是系统时间不对,检查一下我的时间居然和现在差着三个月,怪不得过不去,于是进行系统对时:
chkconfig time on
ntpdate 210.72.145.44
顺利通过后:
make
make install
编译完成,执行:/opt/ffmpeg/bin/ffmpeg
,大功告成!
二、编译包的迁移
将编译包copy
到没有安装过ffmpeg
得服务器上之后运行时会出现与这样类似的错误提示:
error while loading shared libraries: libavdevice.so.52: cannot open shared object file: No such file or directory
这个提示很清晰,就是找不到lib
文件,原因是在编译ffmpeg
的服务器上我们使用apt-get install
装了一些包,这些包默认装到/usr/lib
目录下,而迁移之后的服务器上没有这些需要的包,所以出现以上类似的提示。
解决办法:将这些文件复制到新的服务器里相应的文件夹下,如复制到/opt/ffmpeg/lib
中(如果是文件复制,不是整个lib
文件夹复制,复制的是要用命令:cp -d
)。
然后,在vi /etc/ld.so.conf
文件中第一行加入:/opt/ffmpeg/lib
,保存退出。
执行:ldconfig
这样再去运行ffmpeg
的时候就能正常使用了。
三、视频加水印
顺便给大家一个ffmpeg 0.8.2
加透明水印的命令示例:
ffmpeg -i moviegs.mp4 -vf "movie=logo.png [logo]; [in][logo] overlay=(main_w-overlay_w)/2:main_h-overlay_h:1 [out]" 888.flv
其中:
-vf
命令为添加水印
Overlay=
……,这个是定义水印的位置,第一个参数水印图片的x
坐标,第二个参数为y
坐标,main_w-overlay_w
这个参数代表水印加在视频最右端,以此类推main_h-overlay_h
代表水印加到视频最底部。
举两个例子:
overlay=10:10:1
将水印加在视频左上角
overlay=10:main_h-overlay_h:1
将水印加在视频左下角
overlay=main_w-overlay_w:10:1
将水印加在视频右上角
overlay=main_w-overlay_w:main_h-overlay_h:1将水印加在视频右下角
本文转自 vfast_chenxy 51CTO博客,原文链接:http://blog.51cto.com/chenxy/748626,如需转载请自行联系原作者