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

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

作者: IT_man    時間: 2015-10-10 10:47
標題: Linux下安装FFmpeg ~1
本帖最後由 IT_man 於 2017-3-28 13:02 編輯
8 p4 P" _% W) u7 [
# A! O  l" t" A; KFFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等  O9 O3 r: N, `' |9 d9 {/ a  \

$ y1 l  w, h2 \) i方法一:
9 E0 j, W; J9 |

$ X+ ~( j9 w- M; v# P; X[安裝]' l' J. }) m7 Q3 ?/ E" e0 M
[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz2
& r, T% H1 m, \7 J: b2 I[/usr/local]#cd ffmpeg-2.5.3
) H5 l/ m' R8 {8 E& c# j/ f- F$ a. R0 r
% \  A; o9 P* e2 ?' N
安裝yasm' p* }( S6 Z3 V& ~2 P4 j
ffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。% {8 x; M/ R6 U& z) @
[/usr/local/ffmpeg-2.5.3]#yum -y install yasm" f. d& Q- f* `, h2 P
或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝; S; C% h8 J1 n: e9 u9 \# g0 ]; V
[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg
! R9 f7 k  H" B其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。
. a9 G( y3 P% J- K% r1 A2 V–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。

( {) w; N4 A: w1 q6 O6 {6 Y[/usr/local/ffmpeg-2.5.3]#make     
2 ^4 u- i5 n. B8 s: r[/usr/local/ffmpeg-2.5.3]#make install
. j+ C$ O6 Y8 ~) `- N7 }1 ]
3 F  w9 b' n- A; c1 R6 H+ f9 W; U

6 p) {1 u0 ?. @! d# C路径處理:

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

不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:
2 f  k& o4 N3 E! Y3 ?[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf4 V+ m5 q6 x5 `1 L* M1 |
include ld.so.conf.d/*.conf6 x0 K* p% j; ?! [8 T3 u, T4 l

5 r  u$ K4 Q3 k# E4 f於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:' ~, s5 B: Q8 O4 o
/usr/local/ffmpeg/lib/ ?' q/ S  g, O6 ~: E5 Y3 W
再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:
, c8 \4 }  r6 |# J5 a4 V/ |7 dldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>
1 q  }' z* w6 ]ll /usr/lib64/
% C$ M1 C* N8 E-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.21 I/ \4 E# }& Q
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0
5 |' p& D. u4 _" zSo:
# J$ E7 M9 u" m6 vln -s /usr/lib64/libgd.so.2.0.0   /usr/lib64/libgd.so.2     就解決
9 Y# I$ ^9 z3 o4 G% O5 A可以 vi /etc/ld.so.cache  看看
/usr/local/ffmpeg/lib 是否已加入 cache中4 i) _6 R+ H6 G

) H! u* G6 Z4 ?4 ]6 {8 W' i6 ~為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下:
2 W9 u) v1 Y% Z
3 j$ t- w2 F5 Y/ x8 T. {
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg  . " C) P: F2 g. v7 C% M
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe . ' k& d+ v) T( o7 h7 ^5 d2 k4 j
sudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver . $ l- b% Z0 o# A8 t* j& \  w

0 Z' q' y, D7 T2 G另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。
2 w8 D' U% z" L, F現在可以在shell中直接輸入ffmpeg執行,結果如下:3 j, K1 \% a+ v+ o# e7 Q% h& n
5 J! E' b6 C$ U
9 }1 {" Z8 L, r
[root@CentOS6 bin]# ffmpeg7 s# P6 L5 y5 A' v) ?
ffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers
$ O' [+ R- x8 Z- ~7 \, P/ ?9 _  built on Oct  9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)! C6 I( D2 \$ v( Q. U
  configuration: --enable-shared --prefix=/usr/local/ffmpeg
- z  q& l# X: u* z  libavutil      54.  7.100 / 54.  7.100& O6 M; i! }" G5 W# A- a+ v$ j
  libavcodec     56.  1.100 / 56.  1.1002 n3 c: A: ^" t
  libavformat    56.  4.100 / 56.  4.1003 Q: l0 a! k7 k+ Q' w5 L3 Q3 e+ x
  libavdevice    56.  0.100 / 56.  0.100
# C* A" `  k- Y2 j1 d/ q' \1 d4 M  libavfilter     5.  1.100 /  5.  1.100
2 D& \% z2 ^/ \  libswscale      3.  0.100 /  3.  0.100
' t4 K$ D3 {" m$ K. l! `  libswresample   1.  1.100 /  1.  1.1009 n# K% C0 M3 O$ K
Hyper fast Audio and Video encoder
& m. q( Q- Y& C- T; busage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
& ^# I5 c# @% Y2 c/ WUse -h to get full help or, even better, run 'man ffmpeg'
2 X9 Z% I" P/ h1 k2 @

% Y* i" L: A8 N! I. L% l8 n( G0 Q方法二:
. F9 ]6 `- F9 F, B$ o
- _& c' f4 l5 Y! l; O+ n  w! d- ?以 ffmpeginstaller 安裝 ffmpeg 相關套件:8 Q& ^* X5 m8 c* x5 J/ K

0 D, j' {) I2 ~
http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/1 |% N& F1 G. \% r) c( m
解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為8 d8 I/ C+ G  I" g
/tmp/ffmpeginstaller.8.0/. `2 ?' D9 U: b. g# o
進去目錄後,下指令以執行
; }( ?; N4 ]9 X7 H, P6 ~# c6 a: r- Q1 Q5 P9 e
[root]# ./install
$ n0 h+ q9 W# T
1 [  w" }1 n# m& Y$ `" Z安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。
7 g% K- t3 X. x* q  z其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時
" f: U" w  q# i6 G( E6 O
下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:
$ O/ T# L$ ~$ o
8 e% W; [9 Q5 u & s. [  G6 |- O: `1 v
( U# W8 D1 r( |3 P/ j2 h# }
參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html( ]  |: ?+ `# n# k- |* l
' v1 T! a2 b: I* X1 P9 b- R+ O
" v" ^5 m) U" B7 u/ }. X3 J" P/ W& I
; n8 l& B" G1 `1 |0 \+ s





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