Ubuntu10.04下安装ffmpeg
来源:互联网 发布:剑三儒风盾太脸型数据 编辑:程序博客网 时间:2024/06/06 20:20
转载出自:http://blog.csdn.net/jk110333/article/details/8978280(本来想自己写,发现作者已经写的很详细了,果断转了,2013年5月27作者写的文章,已经算是很新的文章了...)
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重新运行,在命令中加入这个参数也能成功,不过最好加上,这个和格式转换有关系的!
Yasm是一个完全重写的NASM汇编。目前,它支持x86和AMD64指令集,接受NASM和气体汇编语法,产出二进制, ELF32 , ELF64 , COFF , Mach - O的( 32和64 ) , RDOFF2 ,的Win32和Win64对象的格式,并生成STABS 调试信息的来源,DWARF 2 ,CodeView 8格式。
安装yasm:apt-get install yasm 即可!
在运行配置./configure --enable-shared --prefix=/usr/local/ffmpeg
ok!
4、编译安装
make && make install
安装之后在/usr/local/ffmpeg会看到有三个目录
lib 动态链接库位置
include 编程要用到头文件
bin 执行文件所在的目录
5、为了以后方便编程,我们把lib中的三个链接库libavcodec.so libavformat.so libavutil.so复制到/usr/lib下。把include目录下的文件夹复制到/usr/include下。
执行bin目录下的ffmpeg,ffmpeg是一个很好的视频和音频的格式转化工具,可以去处理视频文件了。命令参看http://blog.csdn.net/jk110333/article/details/8978328
另外,bin目录下还有两个文件:ffprobe和ffserver
网上有很多它的说明文档。如果不想生成ffserver,只要在./configure的时候加--disable-ffserver即可。
运行的时候可能出现下面的问题:
root@jack-desktop:~# ffmpeg --help
ffmpeg: error while loading shared libraries: libavdevice.so.54: cannot open shared object file: No such file or directory
用ldd命令查看缺少什么库
- root@jack-desktop:~# ldd `which ffmpeg`
- linux-gate.so.1 => (0x00a39000)
- libavdevice.so.54 => not found
- libavfilter.so.3 => not found
- libavformat.so.54 => not found
- libavcodec.so.54 => not found
- libswresample.so.0 => not found
- libswscale.so.2 => not found
- libavutil.so.52 => not found
- libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0x00260000)
- libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0x00d9c000)
- libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x00286000)
- /lib/ld-linux.so.2 (0x006f6000)
然后find搜索这些库都在什么地方
- root@jack-desktop:/usr/share# find / -name "libavdevice.so.54"
- /usr/share/ffmpeg/lib/libavdevice.so.54
去目录下查看发现/usr/share/ffmpeg/lib/下都是ffmpeg运行的库,现在需要加入这些库就行了!
- root@jack-desktop:/usr/share# vim /etc/ld.so.conf
- include /etc/ld.so.conf.d/*.conf
- /usr/share/ffmpeg/lib
在用命令ldconfig就成功了!~
6、如果写了一个test.c文件,要包含ffmpeg的头文件,可以这样写:
#include <文件夹名/头文件名>
编译:gcc -o test test.c -lavformat -lavcodec -lavtuil (前提是有第5步的操作)
如果没有第5部的操作,则编译的时候如下:
gcc -o test test.c -I/usr/local/ffmpeg/include -L/usr/local/ffmpeg/lib -lavformat -lavcodec -lavtuil
编译成功之后,执行的时候还是需要动态库的支持,还是要把那三个动态库文件复制到/usr/lib或者/lib中,不然执行的时候会说找不到动态库链接。还有一个方法可以解决这个问题,就是把/usr/local/ffmpeg/lib这个目录加入到/etc/ld.so.config中,然后执行ldconfig,或者重启电脑,这样执行的时候系统就可以从/usr/local/ffmpeg/lib这个目录下去找这三个动态库文件了。
以上的方式是采用动态库编译ffmpeg的,如果在configure的时候不加上--enable-shared的,则采用静态链接的方式,不会生成那三个动态库。同时生成的ffplay、ffmpeg的执行文件也比较的大,因为他们不需要动态库的支持,就可以执行。但是不利于再次开发,所以我采用动态链接的方式。configure中还有很多的选项,可以通过./configure --help查看,也可以直接查看configure文件。这在配置的时候很重要。
- Ubuntu10.04下安装ffmpeg
- Ubuntu10.04下安装ffmpeg
- Ubuntu10.04下安装ffmpeg(续)
- Ubuntu10.04安装ffmpeg
- Ubuntu10.04下使用ffmpeg
- ubuntu10.04安装编译ffmpeg
- Ubuntu10.04下ffmpeg选项详解
- Ubuntu10.04下安装JDK6
- Ubuntu10.04下安装uClinux
- Ubuntu10.04下安装JDK6
- ubuntu10.04下安装LAMP
- UBUNTU10.04 下安装 lamp
- ubuntu10.04下安装LAMP
- ubuntu10.04下安装oracle10g
- ubuntu10.04下安装qq
- ubuntu10.04下安装jdk
- ubuntu10.04下安装jdk
- Ubuntu10.04下安装SQLite3
- 黑马程序员_Java基础_字符串操作
- cocos2dx游戏开发简单入门视频教程 (cocos2d-x)- 第5天
- unity3d学习笔记(十八)--利用C#的代理和事件结合NGUI的按钮实现施放技能
- VC中BSTR、Char*、CString和CComBSTR类型的转换
- css hack
- Ubuntu10.04下安装ffmpeg
- Tomcat7.x时区问题导致时间获取不正确
- Android基础之TabHost
- 堆排序
- Atl ActiveX控件事件不执行
- repeater内绑定事件
- Android开源工具整理
- visual studio 2012 error: LINK1318
- 淘宝开源框架tbnet之connection