本帖最後由 IT_man 於 2017-3-28 13:02 編輯 % z, _ Q9 W% j: g7 a# ~
# `+ f2 q1 N7 S. W2 G% H
FFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等
+ y. V) E! j. N) e' v2 L5 p! `4 ~; Y6 T2 v. Y; M
方法一:9 b2 j. @9 N; J: C9 C6 C
$ O2 p1 M8 \+ j8 J
[安裝]
4 w9 z. m, C" w M1 t[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz2( d8 h- i3 W& \8 s
[/usr/local]#cd ffmpeg-2.5.3( N- S, D @: d$ u) T, b% G
: @' B# h5 y3 {, U/ m$ `/ {7 G$ R j
安裝yasm5 T- M& O4 ]; g, L: {" T
ffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。0 C5 x- D! D- v4 o. W' u# p
[/usr/local/ffmpeg-2.5.3]#yum -y install yasm" c% B( O" v" ~% B
或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝8 V5 f A: U8 k
[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg
6 T1 @2 c n' o其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。
: E h2 w5 Z% |- ~. R. M/ m9 z* f* t–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。; j* I5 N/ Y% Y& l( D" b; d9 [, W
[/usr/local/ffmpeg-2.5.3]#make ( [2 X" \0 P9 ]7 _( ?* J
[/usr/local/ffmpeg-2.5.3]#make install
% N& W# f& d+ p: A$ g, G/ [4 _' c8 s# T
& _- X& g) Y- s1 k* O8 F' A' b; |0 E9 m路径處理:安裝完成后在/usr/local/ffmpeg產生三個目錄: - bin:可執行檔目錄
- lib:動態連接庫目錄
- include:編程用到的頭文件目錄# V7 b/ z7 U+ P+ ?% Q9 h: o
不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:6 @ K, Q8 A0 X7 I6 d j
[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf' s# ]5 o s) r* I/ P1 E7 P3 _
include ld.so.conf.d/*.conf) j* U9 I. y3 U9 s; K* y
3 H( [5 P+ b D* X' l
於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:
7 V/ i: b% l _* m) G/usr/local/ffmpeg/lib4 S) M) H9 }. h; D6 a
再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:
1 w0 f( U q$ y& Lldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>' q! U& B3 i+ B/ \
ll /usr/lib64/( f. {& N3 Y) o+ i. l! Z
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2! C$ z4 d% P6 v- @ Q4 \& N; ]5 ?
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0& y/ ?# D: A' _
So:3 }6 p% Y* M6 K
ln -s /usr/lib64/libgd.so.2.0.0 /usr/lib64/libgd.so.2 就解決
; X' A' Q" J. v/ l7 \" G3 u2 A# V可以 vi /etc/ld.so.cache 看看/usr/local/ffmpeg/lib 是否已加入 cache中: [6 n' C' f$ D# V1 S1 ?
$ A, i7 p. V6 e為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下:
! n. G. k* s# |/ D
( I5 W: B! E2 [3 ~9 Y. R* @) [sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg . 6 z+ _; w- e! k; T
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe .
& _; p8 W Y- d. k' q1 m+ usudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver .
9 L7 `& J* s* p* [2 \% {
$ R" F, ^6 T( M& q( b另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。
8 ]. D0 y: O+ K! d! h& W現在可以在shell中直接輸入ffmpeg執行,結果如下:
# p, M3 I: r e- h
R" x% B4 ~/ x( C; s
% c! J: U7 h0 ^% Y: F9 e4 Y[root@CentOS6 bin]# ffmpeg- m$ M6 `6 h4 {: W
ffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers5 g) a$ R2 |7 p* `6 L; k
built on Oct 9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)
1 \0 r$ P& o" t configuration: --enable-shared --prefix=/usr/local/ffmpeg
7 m6 z7 ~9 ?5 c& M. a6 Q) u libavutil 54. 7.100 / 54. 7.1003 _" c9 I, V# u! x
libavcodec 56. 1.100 / 56. 1.100: f0 U3 X# q; J9 e, n7 S
libavformat 56. 4.100 / 56. 4.100! m) _5 R. O- ?. ]( c
libavdevice 56. 0.100 / 56. 0.100
, F. Z2 V. h* s* K: ^ libavfilter 5. 1.100 / 5. 1.100
, }0 _4 p3 @$ \! h0 {; Q0 R* I/ P: E libswscale 3. 0.100 / 3. 0.1004 @1 I+ N3 H& \$ P. T
libswresample 1. 1.100 / 1. 1.100( e, ?4 r8 m6 a1 V3 C6 l
Hyper fast Audio and Video encoder: w, i# A- G q% Y/ [0 [/ D4 E
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
, n) M, f# y0 T% l2 cUse -h to get full help or, even better, run 'man ffmpeg'* K+ q- D( B: G" ?4 M6 v
! O, ^3 j& w" T1 Z& p& R3 P
方法二:. n/ v0 Y' ^+ A4 }2 [& m5 z9 V
1 E" T3 f8 e$ U" u! q1 p+ `
以 ffmpeginstaller 安裝 ffmpeg 相關套件:
) j* B& F* e# t
$ i2 i0 x* h+ i/ D$ T2 u7 u3 ?到http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/
1 B Q6 E+ [! N" `& \解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為9 m+ T( A; B, ~5 _( j7 G
/tmp/ffmpeginstaller.8.0/
% ]- L1 a& U/ o, R- J進去目錄後,下指令以執行
% J0 v% x1 ?6 o0 v, |0 V1 x0 Z/ @3 `6 \5 {0 |
[root]# ./install
* P" i8 w! ~& X, b+ t& H& J8 n6 F7 ~( c7 R; r4 E
安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。, C/ ~0 G# }. B4 j
其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時2 X! |# u1 s, {/ {7 f& s
下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:
! ~6 L( _/ c& r; j
7 n0 T$ Y8 ?$ m. P1 g
" C; y$ w0 A$ k- Z9 j8 p7 a9 r8 s( P
" s# C$ w4 a8 w/ Y8 p5 }: k3 R
參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html, g. I4 T, d% H5 S; n4 n- ]- }+ W
% n, C# N: c/ I$ v* n# W5 v& u
9 u- r1 f% _5 D: }3 b9 o6 n1 w1 q8 L4 C4 H
|
|