FFmpeg是一套可以用来记录、转换数字音视频,并能将其转化为流的开源计算机程序。它包括了目前领先的音/视频编码库libavcodec等。

libavformat :用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构和读取音视频帧等功能; 
libavcodec :用于各种类型声音/图像编解码; 
libavutil :包含一些公共的工具函数; 
libswscale :用于视频场景比例缩放、色彩映射转换; 
libpostproc:用于后期效果处理; 
ffmpeg :该项目提供的一个工具,可用于格式转换、解码或电视卡即时编码等; 
ffsever :一个 HTTP 多媒体即时广播串流服务器; 
ffplay :是一个简单的播放器,使用ffmpeg 库解析和解码,通过SDL显示;

编译方法1:

1、下载ffmpeg src

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 installGit//安装git

http://ffmpeg.org/download.html)
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg

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://yasm.tortall.net/Download.html下载Source .tar.gz(即yasm-1.2.0.tar.gz)

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

tar zxvf yasm-1.2.0.tar.gz

cd yasm-1.2.0

./configure

make

sudo make install

###########

output:

root@parallels-Parallels-Virtual-Platform:~/Documents/ffmpeg/yasm-1.2.0# make install
make  install-recursive
make[1]: Entering directory `/home/parallels/Documents/ffmpeg/yasm-1.2.0'
Making install in po
make[2]: Entering directory `/home/parallels/Documents/ffmpeg/yasm-1.2.0/po'
/bin/mkdir -p /usr/local/share
if test "yasm" = "gettext-tools"; then \
 /bin/mkdir -p /usr/local/share/gettext/po; \
 for file in Makefile.in.in remove-potcdate.sin quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot   Makevars.template; do \
   /usr/bin/install -c -m 644 ./$file \
   /usr/local/share/gettext/po/$file; \
 done; \
 for file in Makevars; do \
   rm -f /usr/local/share/gettext/po/$file; \
 done; \
else \
 : ; \
fi
make[2]: Leaving directory `/home/parallels/Documents/ffmpeg/yasm-1.2.0/po'
Making install in .
make[2]: Entering directory `/home/parallels/Documents/ffmpeg/yasm-1.2.0'
make[3]: Entering directory `/home/parallels/Documents/ffmpeg/yasm-1.2.0'
test -z "/usr/local/bin" || /bin/mkdir -p "/usr/local/bin"
  /usr/bin/install -c yasm ytasm vsyasm '/usr/local/bin'
test -z "/usr/local/lib" || /bin/mkdir -p "/usr/local/lib"
 /usr/bin/install -c -m 644  libyasm.a '/usr/local/lib'
 ( cd '/usr/local/lib' && ranlib libyasm.a )
make  install-exec-hook
make[4]: Entering directory `/home/parallels/Documents/ffmpeg/yasm-1.2.0'
make[4]: Nothing to be done for `install-exec-hook'.
make[4]: Leaving directory `/home/parallels/Documents/ffmpeg/yasm-1.2.0'
test -z "/usr/local/include" || /bin/mkdir -p "/usr/local/include"
 /usr/bin/install -c -m 644 libyasm.h '/usr/local/include'
test -z "/usr/local/share/man/man1" || /bin/mkdir -p "/usr/local/share/man/man1"
 /usr/bin/install -c -m 644 yasm.1 '/usr/local/share/man/man1'
test -z "/usr/local/share/man/man7" || /bin/mkdir -p "/usr/local/share/man/man7"
 /usr/bin/install -c -m 644 yasm_arch.7 yasm_parsers.7 yasm_dbgfmts.7 yasm_objfmts.7 '/usr/local/share/man/man7'
test -z "/usr/local/include/libyasm" || /bin/mkdir -p "/usr/local/include/libyasm"
 /usr/bin/install -c -m 644 libyasm/arch.h libyasm/assocdat.h libyasm/bitvect.h libyasm/bytecode.h libyasm/compat-queue.h libyasm/coretype.h libyasm/dbgfmt.h libyasm/errwarn.h libyasm/expr.h libyasm/file.h libyasm/floatnum.h libyasm/hamt.h libyasm/insn.h libyasm/intnum.h libyasm/inttree.h libyasm/linemap.h libyasm/listfmt.h libyasm/md5.h libyasm/module.h libyasm/objfmt.h libyasm/parser.h libyasm/phash.h libyasm/preproc.h libyasm/section.h libyasm/symrec.h libyasm/valparam.h libyasm/value.h '/usr/local/include/libyasm'
test -z "/usr/local/include" || /bin/mkdir -p "/usr/local/include"
 /usr/bin/install -c -m 644 libyasm-stdint.h '/usr/local/include'
make[3]: Leaving directory `/home/parallels/Documents/ffmpeg/yasm-1.2.0'
make[2]: Leaving directory `/home/parallels/Documents/ffmpeg/yasm-1.2.0'
make[1]: Leaving directory `/home/parallels/Documents/ffmpeg/yasm-1.2.0'
root@parallels-Parallels-Virtual-Platform:~/Documents/ffmpeg/yasm-1.2.0#

###########

4、重新配置ffmpeg

./configure    //OK

##########

output:

root@parallels-Parallels-Virtual-Platform:~/Documents/ffmpeg/test/ffmpeg# ./configure
install prefix            /usr/local
source path               /home/parallels/Documents/ffmpeg/test/ffmpeg
C compiler                gcc
ARCH                      x86 (generic)
big-endian                no
runtime cpu detection     no
yasm                      yes
MMX enabled               yes
MMX2 enabled              yes
3DNow! enabled            yes
3DNow! extended enabled   yes
SSE enabled               yes
SSSE3 enabled             yes
CMOV enabled              yes
CMOV is fast              yes
EBX available             yes
EBP available             yes
10 operands supported     yes
debug symbols             yes
strip symbols             yes
optimizations             yes
static                    yes
shared                    no
postprocessing support    no
new filter support        yes
network support           yes
threading support         pthreads
SDL support               no
Sun medialib support      no
AVISynth enabled          no
frei0r enabled            no
libdc1394 support         no
libdirac enabled          no
libfaac enabled           no
libgsm enabled            no
libmp3lame enabled        no
libnut enabled            no
libopencore-amrnb support no
libopencore-amrwb support no
libopencv support         no
libopenjpeg enabled       no
librtmp enabled           no
libschroedinger enabled   no
libspeex enabled          no
libtheora enabled         no
libvorbis enabled         no
libvpx enabled            no
libx264 enabled           no
libxavs enabled           no
libxvid enabled           no
zlib enabled              no
bzlib enabled             no

Enabled decoders:
aac dsicinaudiompeg1video
aac_latm dsicinvideompeg2video
aasc dvbsub mpeg4
ac3 dvdsub mpegvideo
adpcm_4xm dvvideomsmpeg4v1
adpcm_adx eac3msmpeg4v2
adpcm_ct eacmvmsmpeg4v3
adpcm_ea eamadmsrle
adpcm_ea_maxis_xa eatgqmsvideo1
adpcm_ea_r1 eatgvmszh
adpcm_ea_r2 eatqinellymoser
adpcm_ea_r3 eightbpsnuv
adpcm_ea_xas eightsvx_exppam
adpcm_g722 eightsvx_fibpbm
adpcm_g726 escape124pcm_alaw
adpcm_ima_amv ffv1pcm_bluray
adpcm_ima_dk3 ffvhuffpcm_dvd
adpcm_ima_dk4 flacpcm_f32be
adpcm_ima_ea_eacs flicpcm_f32le
adpcm_ima_ea_sead flvpcm_f64be
adpcm_ima_iss fourxmpcm_f64le
adpcm_ima_qt frapspcm_lxf
adpcm_ima_smjpeg frwupcm_mulaw
adpcm_ima_wav gifpcm_s16be
adpcm_ima_ws gsmpcm_s16le
adpcm_ms gsm_mspcm_s16le_planar
adpcm_sbpro_2 h261pcm_s24be
adpcm_sbpro_3 h263pcm_s24daud
adpcm_sbpro_4 h263ipcm_s24le
adpcm_swf h264pcm_s32be
adpcm_thp huffyuvpcm_s32le
adpcm_xa idcinpcm_s8
adpcm_yamaha iff_byterun1pcm_u16be
alac iff_ilbm pcm_u16le
als imc pcm_u24be
amrnb indeo2 pcm_u24le
amrwb indeo3 pcm_u32be
amv indeo5 pcm_u32le
anm interplay_dpcmpcm_u8
ansi interplay_videopcm_zork
ape jpegls pcx
ass kgv1 pgm
asv1 kmvc pgmyuv
asv2 lagarith pgssub
atrac1 loco pictor
atrac3 mace3 ppm
aura mace6 ptx
aura2 mdec qcelp
avs mimic qdm2
bethsoftvid mjpegqdraw
bfi mjpegb qpeg
bink mlp qtrle
binkaudio_dct mmvideor10k
binkaudio_rdft motionpixelsr210
bmp mp1 ra_144
c93 mp1float ra_288
cavs mp2 rawvideo
cdgraphics mp2floatrl2
cinepak mp3 roq
cljr mp3adu roq_dpcm
cook mp3adufloatrpza
cscd mp3float rv10
cyuv mp3on4 rv20
dca mp3on4floatrv30
dnxhd mpc7 rv40
dpx mpc8 sgi
shorten truemotion1vp6a
sipr truemotion2vp6f
smackaud truespeechvp8
smacker tta vqa
smc twinvq wavpack
snow txd wmapro
sol_dpcm ulti wmav1
sonic v210 wmav2
sp5x v210x wmavoice
srt vb wmv1
sunrast vc1 wmv2
svq1 vcr1 wmv3
svq3 vmdaudio wnv1
targa vmdvideows_snd1
theora vmnc xan_dpcm
thp vorbis xan_wc3
tiertexseqvideo vp3xl
tiff vp5 xsub
tmv vp6 yop
truehd

Enabled encoders:
a64multi jpeglspcm_u24le
a64multi5 ljpegpcm_u32be
aac mjpeg pcm_u32le
ac3 mp2 pcm_u8
ac3_fixed mpeg1videopcm_zork
adpcm_adx mpeg2videopcx
adpcm_g722 mpeg4pgm
adpcm_g726 msmpeg4v1pgmyuv
adpcm_ima_qt msmpeg4v2ppm
adpcm_ima_wav msmpeg4v3qtrle
adpcm_ms nellymoserra_144
adpcm_swf pam rawvideo
adpcm_yamaha pbmroq
alac pcm_alaw roq_dpcm
ass pcm_f32be rv10
asv1 pcm_f32lerv20
asv2 pcm_f64besgi
bmp pcm_f64le snow
dnxhd pcm_mulawsonic
dvbsub pcm_s16besonic_ls
dvdsub pcm_s16lesvq1
dvvideo pcm_s24betarga
ffv1 pcm_s24daudtiff
ffvhuff pcm_s24lev210
flac pcm_s32bevorbis
flv pcm_s32le wmav1
gif pcm_s8 wmav2
h261 pcm_u16bewmv1
h263 pcm_u16lewmv2
h263p pcm_u24bexsub
huffyuv

Enabled hwaccels:

Enabled parsers:
aac dvdsub mpeg4video
aac_latm flac mpegaudio
ac3 h261 mpegvideo
cavsvideo h263pnm
dca h264 vc1
dirac mjpeg vp3
dnxhd mlp vp8
dvbsub

Enabled demuxers:
aac ipmovie pcm_u32be
ac3 iss pcm_u32le
aea iv8 pcm_u8
aiff ivf pva
amr lmlm4 qcp
anm lxf r3d
apc m4v rawvideo
ape matroska rl2
applehttp mjpegrm
asf mlp roq
ass mm rpl
au mmf rso
avi mov rtp
avs mp3 rtsp
bethsoftvid mpcsap
bfi mpc8 sdp
bink mpegps segafilm
c93 mpegts shorten
caf mpegtsraw siff
cavsvideo mpegvideosmacker
cdg msnwc_tcp sol
daud mtv sox
dirac mvi spdif
dnxhd mxf srt
dsicin mxg str
dts nc swf
dv nsv thp
dxa nut tiertexseq
ea nuv tmv
ea_cdata ogg truehd
eac3 oma tta
ffm pcm_alaw tty
ffmetadata pcm_f32betxd
filmstrip pcm_f32levc1
flac pcm_f64bevc1t
flic pcm_f64levmd
flv pcm_mulaw voc
fourxm pcm_s16bevqf
g722 pcm_s16lew64
gsm pcm_s24be wav
gxf pcm_s24le wc3
h261 pcm_s32bewsaud
h263 pcm_s32lewsvqa
h264 pcm_s8 wtv
idcin pcm_u16bewv
iff pcm_u16le xa
image2 pcm_u24beyop
image2pipe pcm_u24leyuv4mpegpipe
ingenient

Enabled muxers:
a64 ipod pcm_s16le
ac3 m4v pcm_s24be
adts matroska pcm_s24le
aiff matroska_audiopcm_s32be
amr md5 pcm_s32le
asf mjpeg pcm_s8
asf_stream mlppcm_u16be
ass mmf pcm_u16le
au mov pcm_u24be
avi mp2 pcm_u24le
avm2 mp3 pcm_u32be
cavsvideo mp4 pcm_u32le
crc mpeg1systempcm_u8
daud mpeg1vcd psp
dirac mpeg1videorawvideo
dnxhd mpeg2dvdrm
dts mpeg2svcd roq
dv mpeg2video rso
eac3 mpeg2vob rtp
ffm mpegts rtsp
ffmetadata mpjpegsap
filmstrip mxf sox
flac mxf_d10 spdif
flv null srt
framecrc nut swf
framemd5 ogg tg2
g722 pcm_alaw tgp
gif pcm_f32be truehd
gxf pcm_f32le vc1t
h261 pcm_f64bevoc
h263 pcm_f64lewav
h264 pcm_mulawwebm
image2 pcm_s16beyuv4mpegpipe
image2pipe

Enabled protocols:
concat mmst rtmpt
file pipe rtmpte
gopher rtmp rtp
http rtmpe tcp
md5 rtmps udp
mmsh

Enabled filters:
anull gradfun scale
anullsink hflipsetdar
anullsrc noformatsetpts
buffer null setsar
color nullsinksettb
copy nullsrc slicify
crop overlay transpose
drawbox pad unsharp
fifo pixdesctestvflip
format

Enabled bsfs:
aac_adtstoasc mjpeg2jpegmp3_header_decompress
chomp mjpega_dump_headernoise
dump_extradata mov2textsubremove_extradata
h264_mp4toannexb mp3_header_compresstext2movsub
imx_dump_header

Enabled indevs:
dv1394 oss v4l2

Enabled outdevs:
oss

License: LGPL version 2.1 or later
Creating config.mak and config.h...
root@parallels-Parallels-Virtual-Platform:~/Documents/ffmpeg/test/ffmpeg#

##########

5、编译ffmpeg

make

6、安装ffmpeg

make install

3.动态链接库
        vi /etc/ld.so.conf

sudo gedit /etc/ld.so.conf
        加入:/usr/local/ffmpeg/lib
        执行

/usr/local/lib$ sudo ldconfig

4.为 Ffmpeg 加入环境变量
       sudo gedit /etc/profile

export PATH="/usr/local/ffmpeg/bin:$PATH"

source /etc/profile

5.使修改立即生效
        source /etc/profile
        执行 
        ffmpeg -version
        打印结果
ffmpeg version 2.0
built on Jul 24 2013 09:59:06 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-3)
configuration: --enable-shared --prefix=/usr/local/ffmpeg
libavutil      52. 38.100 / 52. 38.100
libavcodec     55. 18.102 / 55. 18.102
libavformat    55. 12.100 / 55. 12.100
libavdevice    55.  3.100 / 55.  3.100
libavfilter     3. 79.101 /  3. 79.101
libswscale      2.  3.100 /  2.  3.100
libswresample   0. 17.102 /  0. 17.102
        证明已升级成功。如果遇到 ffmpeg: error while loading shared libraries: libavdevice.so.55: cannot open shared object file: No such file or directory 之类的错误,请检查第三步是否做好。

7、安装ffmpeg

apt-get install ffmpeg

##############

root@parallels-Parallels-Virtual-Platform:~/Documents/ffmpeg/ffmpeg-1.1.2# sudo apt-get install ffmpeg
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  libav-tools libavcodec53 libavdevice53 libavfilter2 libavformat53 libavutil51 libpostproc52 libswscale2
The following NEW packages will be installed:
  ffmpeg libav-tools libavdevice53 libavfilter2
The following packages will be upgraded:
  libavcodec53 libavformat53 libavutil51 libpostproc52 libswscale2
5 upgraded, 4 newly installed, 0 to remove and 447 not upgraded.
Need to get 4,360 kB of archives.
After this operation, 2,251 kB of additional disk space will be used.

##############

ubuntu平台下ffmpeg的编译安装方法相关推荐

  1. 各种平台下Perl模块的安装方法

    各种平台下Perl模块的安装方法 来源:http://www.linuxforum.net David lee (2001-04-21 18:11:53) Perl到了第五版增加了模块的概念,用来提供 ...

  2. Android Ubuntu平台下ADB驱动的安装

    在Android平台下做开发,adb总是需要使用到的,同时,因为linux没有windows这样操作傻瓜化,有些东西还是需要自行设置的,否则将会连接不上. 关于这些内容,google也有一定的描述,可 ...

  3. 【转载】【重要】Ubuntu Linux 下 Ffmpeg 及 Mencoder 安装使用小结

    近段时间在学习 Ffmpeg.Mencoder 音视频转换,大概在 Ubuntu 10.04.Ubuntu 10.10.Ubuntu Natty 测试版上安装和使用过.重点是针对低分辨率的普通手机视频 ...

  4. Ubuntu 16.04源码编译安装Apache 2.4.25教程

    这篇文章主要为大家详细介绍了Ubuntu 16.04源码编译安装Apache 2.4.25,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文为大家介绍了Ubuntu 16.04源码编译安装Apa ...

  5. opencv4.0在linux下编译,Ubuntu 18.04源码编译安装OpenCV 4.0步骤

    Ubuntu 18.04下标准常规安装方法安装的OpenCV版本比较低,想尝鲜使用4.0版本,只好源码安装. 安装环境 OS:Ubuntu 18.04 64 bit 显卡:NVidia GTX 108 ...

  6. 在Ubuntu 16.04 LTS下编译安装OpenCV 4.1.1

    目录 一 安装前的准备 二 编译并安装OpenCV 4.1.1 注:原创不易,转载请务必注明原作者和出处,感谢支持! OpenCV目前(2019-8-1)的最新版本为4.1.1.本文将介绍如何在Ubu ...

  7. Linux平台下Ntop流量监测安装,并实现Netflow全过程

    Linux平台下Ntop流量监测安装,并实现Netflow全过程 更多原创教学视频详见: http://you.video.sina.com.cn/m/1443650204

  8. Ubuntu 16.04 源码编译安装 uhd gnuradio

    Ubuntu 16.04 源码编译安装 uhd & gnuradio 环境介绍 UHD安装 1 安装依赖 2 编译 3 测试安装结果 4 配置 USB gnuradio安装 1 安装依赖 2 ...

  9. Ubuntu 16.04系统实用插件安装方法

    Ubuntu 16.04系统实用插件安装方法 Ubuntu 16.04 系统实用插件安装方法链接 搜狗输入法 链接: https://blog.csdn.net/u010648921/article/ ...

最新文章

  1. 2017.4.18 静态代码分析工具sonarqube+sonar-runner的安装配置及使用
  2. 盘点丨机器学习做不到14件事,你知道吗?
  3. TCP三次握手与四次挥手
  4. 自己设计java流程审核_关于工作流引擎取回审批的设计方案与实现过程
  5. nginx的函数调用
  6. 279. 完全平方数 golang 动态规划
  7. hibernate mysql 超时_Java_web:hibernate+mysql超时
  8. 使用Python将字符串转换为格式化的日期时间字符串
  9. 用PHP编写提供性别的发法,第6节 Laravel-通过模型处理性别
  10. 【转】程序员:如何写出杀手级简历
  11. 三大代码审计工具对比
  12. 从月薪5千到财富自由:有远见的人都在做这件事情
  13. C/C++面试宝典2022版(最新版)
  14. 程序员面试需要出示身份证和毕业证原件吗
  15. wifi信号衰减与距离关系_wifi无线信号传输衰减间隔核算公式
  16. excel学习1:合并两个单元格,并把内容用符号隔开。
  17. OC学习笔记之011IOS应用开发入门--控件2进度条、拖动条、警告框、日期选择器、选择器
  18. 微信小程序检测版本是否有更新
  19. Qt 之自定义搜索框QLineEdit
  20. three相机在模型上_深入理解Three.js中透视投影照相机PerspectiveCamera

热门文章

  1. 桌面任务栏卡死了解决办法
  2. 关于谷歌浏览器最新版出现的视频下载按钮禁掉解决方案
  3. PHP实现新订单提醒功能。
  4. 囫囵C语言(写在前面的话)
  5. (HDU-1024)Max Sum Plus Plus(动态规划)
  6. linux网络电话代码,即使拨打至电话号码,Skype 翻译功能仍然可以使用啊
  7. B2C外贸网站产品设计和功能需求,一个产品设置了在多个类别里面都可以看到,以及Email模板问题...
  8. vegas可以做动画吗_Vegas设置关键帧动画的方法分享
  9. 32位系统与64位系统各数据类型所占空间大小
  10. web前端从零开始学习(html5) 三