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

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

作者: IT_man    時間: 2015-10-10 10:47
標題: Linux下安装FFmpeg ~1
本帖最後由 IT_man 於 2017-3-28 13:02 編輯 7 D( [. Y* H+ ?8 Q
) f) b% L0 c3 L' Y4 W3 [
FFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等
, f! I% N# {: H6 n  l) I1 Z5 T
; c5 h0 y5 W. p% F' X方法一:
* q( O, M4 D- f2 k$ I% r

% i7 _& E7 Q2 Z! m* A% t[安裝]
6 p5 x$ @6 o" y+ w/ g6 J! X[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz2
) R$ t, [" v& u6 T) R' w1 d[/usr/local]#cd ffmpeg-2.5.3: j3 y; }' t7 @. s; m
" C% _0 v6 f* H- `3 |, E

# ]& N( E% E3 h6 h  f) \. j; _! Z( P安裝yasm. p5 ~& k+ x) A. `
ffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。) r& S7 A' k( Y% ]
[/usr/local/ffmpeg-2.5.3]#yum -y install yasm
0 y3 t- O! C$ E* g- s( T& U或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝
  D7 M3 [; N0 m9 E+ C0 @8 X[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg
& v: K! a" h8 d6 H其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。. B0 D" c; r- y# S& u
–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。
7 D% J9 _) y* [, k
[/usr/local/ffmpeg-2.5.3]#make     
, n5 u2 P* P( z# R/ n3 [3 u[/usr/local/ffmpeg-2.5.3]#make install 6 d8 s" k: b( G

0 q# r6 V' z- A9 x
! r' Q, E+ s1 M/ W+ T7 P6 f
路径處理:

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

不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:3 z1 o. j/ n$ z1 f. h/ |
[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf
% z9 U, k; _9 P) Cinclude ld.so.conf.d/*.conf
2 R  B& T4 |7 x6 e
2 a/ c& b" Z% _於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:
2 T! p8 H$ \2 s8 V/usr/local/ffmpeg/lib
+ c% J; j1 g* A' _1 I& z再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:
/ ?; m* O" T9 ^2 M- x7 Sldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>
1 l( j% F3 D4 r# |& w$ o* m0 Sll /usr/lib64/! k! P! ?7 H3 o, F3 r7 g" k- @
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2
+ f* D7 j1 C" F7 U' o-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0
5 H0 _, J* ?; c$ @So:2 K1 S* F' D# x* A
ln -s /usr/lib64/libgd.so.2.0.0   /usr/lib64/libgd.so.2     就解決
( ^% [+ `' K; n7 `可以 vi /etc/ld.so.cache  看看
/usr/local/ffmpeg/lib 是否已加入 cache中$ k  d- f; d4 }! P  O! a. V: Y
, \% E5 F& J0 C; G& S0 ~" x+ D
為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下: 2 q- Z/ B1 @2 v6 \& ]0 }' }
& Z" a8 w7 j. p4 J6 o$ c; z
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg  .
( ^9 a2 A3 W2 w; ?
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe . 2 d/ N9 R7 [0 l3 m( @. ]/ K( w
sudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver . / t; b1 S6 K- a! V8 g" N& k. S
+ s- k" N$ W+ V. g* w- r
另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。
1 I/ V6 C, T* k; b" j/ ~! U3 _現在可以在shell中直接輸入ffmpeg執行,結果如下:. }8 f. w' I% u; J

" L$ @3 x* A+ Y- B/ S$ |/ |: z, z
8 Q, V+ ]& V# e, N/ i& f
[root@CentOS6 bin]# ffmpeg, k  `$ C( W4 ^1 N8 H
ffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers
7 o: C" C1 M& e% Y: y) _7 X  built on Oct  9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)3 I! q7 G+ `4 ?5 j, e
  configuration: --enable-shared --prefix=/usr/local/ffmpeg3 e! v; ?5 H6 z* N, W
  libavutil      54.  7.100 / 54.  7.100
8 Q( `0 p  Q* a$ L, z  libavcodec     56.  1.100 / 56.  1.1004 f  e  P5 D6 X) }$ o" [  K
  libavformat    56.  4.100 / 56.  4.100
9 V8 r( n( j4 L  C  libavdevice    56.  0.100 / 56.  0.100
; ]) l/ q, n9 d$ }. g4 ?  libavfilter     5.  1.100 /  5.  1.100
% O$ [6 o" c! O% e  libswscale      3.  0.100 /  3.  0.100
1 \; H4 y6 T* O1 f% x0 N" J  libswresample   1.  1.100 /  1.  1.100. Y; A( K4 h2 d2 _
Hyper fast Audio and Video encoder% X' ~9 g: j# R5 B% b
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...9 E; [0 t, Q/ c6 T# R
Use -h to get full help or, even better, run 'man ffmpeg'
' {7 t/ h& s3 S5 v. ^- z

- K1 Q, k7 j) s7 i方法二:& L% m; u- {! G3 Q% H  V. k$ R

' b  E' k2 H; L' b4 S以 ffmpeginstaller 安裝 ffmpeg 相關套件:( q# t; U$ P- M8 x# ^
% N/ D- G( ^' F2 ~( J* B! @2 I
http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/' M5 e' N7 S0 Y8 ~+ ~
解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為7 Q- k6 c4 g, V% N( \# a3 y
/tmp/ffmpeginstaller.8.0/$ H7 O& u9 G' \; [8 A. r+ M6 w
進去目錄後,下指令以執行
; r, J, Q# X- H/ G5 l9 u+ }
# j: _% E0 P. P- g[root]# ./install
  N5 F, w( X( Z" R& e2 G& i2 J0 l6 K; v4 e
安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。
9 w4 X# Q6 x' ?7 |! v6 `1 Z其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時( V4 ^/ `8 [! B  M/ E5 n
下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:; h5 N" \1 h; W$ @+ C' a

1 c0 C" f" R# D$ h
: X; S% C. h$ |4 N! T: j, S1 D% Y9 O% ^1 R' n$ F: Q+ ?: Q! {7 b
參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html% v  p0 [; x7 b) K( T1 i

, b: }" o0 ^9 G; y! }* r
. p$ A) u, V" q9 A9 L6 r
' e8 T6 Z. @% H2 S. F' P3 L5 {3 p3 q




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