Ubuntu10.04下安装ffmpeg(续)

来源:互联网 发布:再向虎山行gotv源码ts 编辑:程序博客网 时间:2024/06/13 21:47

               本来觉得不用写了,现在看来还是写下吧。针对在ubuntu10.04上面编译安装FFmpeg的记录。

整体的步骤就是参考http://blog.csdn.net/mlj1668956679/article/details/18840197

下面针对以上的有些步骤做些解释,和我在安装编译过程中遇到的问题如何解决的做一下补充记录。

======================================================================================

1.首先遇到的第一个问题

我先看了下这篇文章继而被ubuntu自身所误导,之所以在ubuntu10.04上面应用,是因为10.04版本稳定且好使用,这个因人而异。  当打开终端:直接输入--->ffmpeg

                                   ubuntu会自动提醒你----->sudo apt-get install ffmpeg

该文章上还有一个ffprobe -i money.mp4

                                                       直接输入----->ffmprobe

                                     ubuntu一样会提醒你------>sudo apt-get install ffprobe

如果你按照这个装估计你就和我一样悲剧了...       

http://blog.csdn.net/chennxi/article/details/8022236


所以我建议在你按照之前的那篇文章的步骤进行之前如果有以上和我一样的这些动作,希望你按照下面的步骤处理一下

在命令行下运行:sudo apt-get remove ffmpeg

                            sudo apt-get autoremove

                            sudo apt-get remove ffprobe

                            sudo apt-get autoremove


这个很关键!!

======================================================================================

2.为什么说上面的那个步骤很关键?

先稍等....

root@jack-desktop:~# ffmpeg --help
ffmpeg: error while loading shared libraries: libavdevice.so.54: cannot open shared object file: No such file or directory

之前的转载的那篇文章在你执行到这一步骤时可能遇到的不是libavdevice.so.54库找不到而是libavdevice.so.52

当然网上也给了相应的解决方案:

跟遇到libavdevice.so.54是作者提供的方案一样.

运行ffmepg,提示以下错误信息:

ffmpeg: error while loading shared libraries: libavdevice.so.52: cannot open shared object file: No such file or directory

解决方法是用vi编辑/etc/ld.so.conf文件,末尾增加以下代码

/usr/share/ffmpeg

其中/usr/share/ffmpeg是刚才安装的位置.

但是细心的人可能会发现作者一开始在执行第3个步骤时:

3、运行自动配置

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

所以会给大家造成困惑,明明你安装的路径是/usr/local/ffmpeg怎么在添加/etc/ld.so.conf时填的却是/usr/share/ffmpeg路径呢?这个大家只要记住你自己的安装路径就好了!这个应该是作者的一个失误,写错了...

======================================================================================

当你按照上面的方案做了以后可能会面临第3个问题

3.命令行运行:ffmpeg -- help

可能报如下错误:

ffmpeg: relocation error: /usr/local/ffmpeg/lib/libavdevice.so.52: symbol av_new_packet, version LIBAVCODEC_52 not defined in file libavcodec.so.52 with link time reference

解决方案为:<方案的来源:http://forum.ovh.de/showthread.php?t=9692>

可以用下面这条语句解决
1--->方法:命令行:export LD_LIBRARY_PATH=/usr/local/ffmpeg/lib

该方法只能暂时性的解决问题,当你再次启动终端时将会失效

2----->方法:永久性的解决问题:

在~/.bashrc中写入上面这句,再运行
. ~/.bashrc
就一次性OK了。(我是写在了文件末尾)

======================================================================================

4.怎么在终端上直接敲命令:ffmpeg就可以了,而不用每次都跑到安装目录下的Bin目录下去找到ffmpeg执行./ffmpeg

1.------>方法:命令行:export PATH=/usr/local/ffmpeg/bin:$PATH 

此处假设要加入的路径是usr/local/arm/bin,记住,可执行文件是位于bin下面,比如可执行文件是a.o路径不能是:usr/local/arm/bin/a.o,路径指向可执行文件的所在 文件夹。

当然这样添加是暂时的,在关闭终端后就失去作用

2.-------->方法:

把路径加到/etc/profile ,添加完成后要注销一下机器哈

所有的步骤都解决完了!

==================================================================================================

现在总结下为什么要执行第一个步骤中的操作,前提是你在装之前,做了那些步骤,就要remove掉之前的。因为如果你不做,有可能在你遇到第三个问题的时候即使按照解决方案做了,还是会出现ffmpeg: relocation error: /usr/local/ffmpeg/lib/libavdevice.so.52: symbol av_new_packet, version LIBAVCODEC_52 not defined in file libavcodec.so.52 with link time reference


总结一句话就是那个安装路径是关键 --prefix=XXX

之后的很多在环境变量中的添加,或者库连接文件中的添加都是和这个文件有着千丝万缕的联系的。

OK,总结完了,希望能帮你顺利编译安装ffmpeg。下一步就是开发了...

0 0
原创粉丝点击