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

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

作者: IT_man    時間: 2015-10-10 10:47
標題: Linux下安装FFmpeg ~1
本帖最後由 IT_man 於 2017-3-28 13:02 編輯 & E( E' q; b6 j& N

! _9 Z4 M1 l7 I9 b% pFFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等
: u6 ?1 |- B( T6 |1 q7 ~% P) R6 s5 G% o. N) U
方法一:
$ i$ z$ l, O% _9 H) J

% [: U9 x) M. A/ x[安裝]* Q( i* s: E: \2 z
[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz2
4 n7 [" F. \4 f8 H6 \  J3 L5 f[/usr/local]#cd ffmpeg-2.5.3
1 K. b8 N! N1 S$ z$ c' q- D, z0 B  y
5 U* C% m3 f4 }( t  I3 ]
安裝yasm
7 z  ]6 i. y& e9 b( `5 V2 j) Jffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。
( r! x/ g6 A* Q9 V[/usr/local/ffmpeg-2.5.3]#yum -y install yasm
$ D7 z* P3 u# ]. z或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝
1 s  M4 O  Y5 t6 R7 Y[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg
) p& S$ ~7 m& M4 S2 k5 q其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。5 L" B4 [6 p( _: x
–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。
4 D3 ^1 m8 w3 ]) l- {2 s
[/usr/local/ffmpeg-2.5.3]#make     $ D. ~3 z/ U/ |% o$ c$ T
[/usr/local/ffmpeg-2.5.3]#make install
( f! \7 W+ u. a+ x0 a# G8 k5 m' {3 @, [
+ l' @$ K" h7 _/ J7 Y6 }' t) M4 ~+ r% }+ D
路径處理:

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

不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:
5 Z2 s. y, Z, C  M  u6 [7 [+ D3 a[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf
' _- C$ s5 F: ninclude ld.so.conf.d/*.conf
( Q$ h4 P# g; M7 U  G& A1 I' q
' _$ t# k; U! o! e" X! F4 g於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:4 {) K7 v! X: ^# H5 K2 @
/usr/local/ffmpeg/lib
; A3 S. S; p1 C$ C6 H2 U7 I' Z再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:
; K! S/ g, s* Rldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>
$ ~. ^* y6 Y$ C9 X: r1 ]6 qll /usr/lib64/
& r& k' e" T. V2 `% f-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2
* m9 ]2 a0 v& F& |( X+ e' D( H+ g-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0' r! H  w' L5 r3 f7 e4 n' P) w, y5 N: N
So:8 ^: p  t- @$ }6 _2 ]9 j
ln -s /usr/lib64/libgd.so.2.0.0   /usr/lib64/libgd.so.2     就解決
# R; y1 S9 J! _7 X1 }. h: l可以 vi /etc/ld.so.cache  看看
/usr/local/ffmpeg/lib 是否已加入 cache中$ t1 l5 t" |8 k: H" I$ H; _
5 B. M5 g% G7 L! A* V1 w1 f
為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下:
* V8 R1 o+ X; w
, H2 ^, j  }0 n3 {4 i, A6 w2 i( W
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg  . ' _6 a- f# }1 V% i
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe . 6 @1 G# n# `" g: {  j
sudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver . , ~9 F4 t% G' _+ W4 I* S

# f  ?1 ~  X8 t$ a9 n9 _7 s另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。
- p" {! ^; o( c' F現在可以在shell中直接輸入ffmpeg執行,結果如下:6 |$ {3 U3 @5 m8 @
! a- e+ o( p* c, F4 G3 L9 }8 |; i

) \; V/ J* e" R* c% ]. Z[root@CentOS6 bin]# ffmpeg! M$ W  C% l+ J
ffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers
* h, R# [5 G( |* d" K5 _; n' \  built on Oct  9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)
8 i" i" }! q& B( [; @7 y! X5 Q  configuration: --enable-shared --prefix=/usr/local/ffmpeg
2 [+ F  x$ t& }: I% f3 c/ T' a! O  libavutil      54.  7.100 / 54.  7.1001 C7 d1 x: A+ O8 M' G
  libavcodec     56.  1.100 / 56.  1.100- r" m3 m, L6 N' G
  libavformat    56.  4.100 / 56.  4.100
1 p3 M1 q9 ~3 P  libavdevice    56.  0.100 / 56.  0.100
, X2 \0 D# P, s* \  libavfilter     5.  1.100 /  5.  1.100
2 H6 a2 [  z+ O; m6 B) h  libswscale      3.  0.100 /  3.  0.100
  r8 p0 D8 K3 L, O3 ]/ R0 ~  libswresample   1.  1.100 /  1.  1.100& z1 R5 d) N. T1 h5 {
Hyper fast Audio and Video encoder; h8 z1 E5 x/ ]6 F( h
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...9 J/ p; V9 s/ g; h# k  v- j) v
Use -h to get full help or, even better, run 'man ffmpeg'
: R  L& i2 G& m" G/ s/ E, j

" e  I" Y+ e7 L. L9 H9 M方法二:
) l- M/ [/ P0 A( G) g. u3 b0 H! K$ {0 U. z* Y! o' ~9 P
以 ffmpeginstaller 安裝 ffmpeg 相關套件:: e4 ^) w3 N9 K( r( C# n

3 q7 K6 z, l% m
http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/! d. o# _  B2 O* \7 y+ g( I
解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為3 ?6 [8 F2 c# U/ h
/tmp/ffmpeginstaller.8.0/+ R, B- \( j3 M  U
進去目錄後,下指令以執行
5 O, r9 p0 f: D0 r4 {8 Z2 i
7 I1 y  X4 r/ n# Z  M1 l) ^[root]# ./install( ^% X0 p+ g( _3 f& r" d
# F2 J7 F1 g8 ?/ K
安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。
, ~( v* K" B* |* B其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時3 k1 b1 D2 s* G$ N! _
下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:
2 F& V9 b# E6 p# O. s: ~  Y: K' Z8 Y5 i# w
! L/ ^- K) M9 F1 c$ @# ]' A
' i: G$ U4 w7 _* [% n) q/ x
參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html2 x) l$ L/ y, v* f  a  [
7 B( P! t% X1 O; h+ v
2 N) ?) W% |" f% z( Y8 r0 b

3 k6 `* c# ?" j" C! I$ H




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