52AV手機A片王|52AV.ONE

標題: Linux下安装FFmpeg ~1 [打印本頁]

作者: IT_man    時間: 2015-10-10 10:47
標題: Linux下安装FFmpeg ~1
本帖最後由 IT_man 於 2017-3-28 13:02 編輯
; S. T* ^) o3 R4 A* x
5 w7 X. Z2 V4 D8 e: xFFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等
; |$ U' n6 z& y! p# {2 g9 h$ H; P1 V0 O! L; m
方法一:
: F& F5 i0 u( M6 n4 ~: D& }

8 }( v  X! i2 Q# K5 O. {[安裝]$ l( d% q; o2 y& V2 M
[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz2
  [1 C* Z. t1 m" E3 @5 E[/usr/local]#cd ffmpeg-2.5.3
9 r; O" h5 E! I/ Q1 p+ u* D' j) i, t
/ A) p  L' U0 H: {  S
安裝yasm
4 Q0 {: [. }' S, P  Bffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。
3 F" {$ r2 r" X+ {[/usr/local/ffmpeg-2.5.3]#yum -y install yasm( T8 _* p0 a" H8 s! V
或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝, f9 Z) c$ _3 j! K  }! c
[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg" s; j, W7 D$ |# Y" }, ?4 D
其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。; |3 T3 h5 T6 p, M' ]
–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。
  ]! ]4 T* |. o1 x8 P, m" @
[/usr/local/ffmpeg-2.5.3]#make     
, e1 R4 u) K9 w# G( r# r- b[/usr/local/ffmpeg-2.5.3]#make install 7 j/ T: t: U: B4 G, {" a
; t, b5 @: V1 ~, P
) T% z+ e2 Y" E7 V8 s, n+ g
路径處理:

安裝完成后在/usr/local/ffmpeg產生三個目錄:

不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:# k" ]7 d* F+ I1 u6 P" `0 O, X
[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf* W% @1 g2 [& ~# N
include ld.so.conf.d/*.conf7 k2 m) Q& P0 E) j

6 S& Q* J' h$ F0 ~" y9 E- z於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:
, e$ c1 c3 Y5 h1 d$ ]# N1 U/usr/local/ffmpeg/lib
! r- [+ C- {2 J! K; [" I  X再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:% M4 [4 M; |% e- w8 }1 r6 Q
ldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>
( @/ Z3 ^: E4 d; D  N9 ^6 ?ll /usr/lib64/
9 o- \+ F4 Z1 o8 w+ J" F-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2/ |: _5 V0 W) w* s
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0
( [+ K. C  F. M7 O' @So:* J0 {/ o8 B! l/ ]1 F8 j- m
ln -s /usr/lib64/libgd.so.2.0.0   /usr/lib64/libgd.so.2     就解決
$ K: j7 B; R1 ]可以 vi /etc/ld.so.cache  看看
/usr/local/ffmpeg/lib 是否已加入 cache中$ o) h" F) e# z0 e& ]+ F+ E
. ]( T5 j: H2 J+ U! i
為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下:
- a# d9 G( B: o$ `  y; C
7 y. f0 b' d" G
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg  .
( t  N6 l5 [$ Q3 R8 M% A1 M% a
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe .
  W- Q6 @& k% ^
sudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver . / w  Y! j' w" |6 K

! v% y& A+ ?) f% n6 q  U7 D9 J: i8 i另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。
" I& w% o8 S# c5 R$ L' H現在可以在shell中直接輸入ffmpeg執行,結果如下:0 Z2 u! ~5 D& k2 m
8 n2 c+ h, e- T- w( P4 `" w
0 H, _; m! ]1 J% P
[root@CentOS6 bin]# ffmpeg: A9 \' m8 y, @4 n
ffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers' E- ]; b% N7 x: e8 Q" X7 }; e5 }& [
  built on Oct  9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)5 k+ G- R, V- [  E
  configuration: --enable-shared --prefix=/usr/local/ffmpeg
1 a  z* i% `4 X$ m. v1 H4 H  b6 n  libavutil      54.  7.100 / 54.  7.100
6 L9 ~' ?4 w5 E% n" N  libavcodec     56.  1.100 / 56.  1.100
% J3 v9 J5 f0 m  libavformat    56.  4.100 / 56.  4.100; _) D* i4 j6 ?" Y1 E3 g" H
  libavdevice    56.  0.100 / 56.  0.100
) N. P9 I" ?/ u( [* t  libavfilter     5.  1.100 /  5.  1.100
& M& l% @" m+ @( W+ Q  libswscale      3.  0.100 /  3.  0.100
1 D- o3 g& f9 b) P  libswresample   1.  1.100 /  1.  1.100% L7 h. t* R; U- c8 ^
Hyper fast Audio and Video encoder
4 {, e: O( x/ r3 L. ^usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
! p8 V$ y% k/ O8 R/ s6 L7 gUse -h to get full help or, even better, run 'man ffmpeg'

) k9 }  v; X: u5 |" f6 J
( l  `, [: t2 C$ ]3 I方法二:
! }( p" H% ]6 W" R4 o
" O" m1 w5 R" x/ b: p# T以 ffmpeginstaller 安裝 ffmpeg 相關套件:
/ b4 K7 L" |  C& b/ ~: S( Z; Q  F* U) w  ^" Y
http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/3 V9 F' j; `/ L' V
解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為
1 @6 s1 I( o9 l) R
/tmp/ffmpeginstaller.8.0/
6 L, @) P& B! J進去目錄後,下指令以執行% ~3 g9 z. J' h6 h

! y' A! M% `) R2 F; l7 d[root]# ./install- p/ l4 a% @2 B; M, x1 M% W

+ o9 D0 X8 M# _& s# S9 D6 {安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。1 O# z& k+ `: ^) r% I& z
其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時
  }1 P' o6 v7 q2 P6 g# V
下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:3 S" v+ k1 ^  s: L. K% x: c3 r
. j0 f7 e3 R4 ]. y& `* m7 X4 ^; J
3 x! M* Z% C- n' @& S
2 n( W. ~3 M# q: z' x9 C/ x; J
參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html
( o1 |' Y) S5 s& p& Y# f0 g5 v: r
0 q" Z! V5 M$ d% L
- i* C* ?: ^7 p# S
) g& t$ @* W1 F% M





歡迎光臨 52AV手機A片王|52AV.ONE (https://www.itech.casa/) Powered by Discuz! X3.2