本帖最後由 IT_man 於 2017-3-28 13:02 編輯 3 j3 n' \& b6 d+ U
" x( [0 I. @& z5 y# [8 [1 Z( b sFFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等% Q) E% a" x1 P, V$ l5 E
0 Y/ A& B: A: |
方法一:
9 ~, [7 ^% K# b+ V# a' j0 E
8 E& W" u% t: H[安裝]& \! |) h6 P* W. M# f6 H
[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz2
3 e ^' C# o# E j6 }9 \[/usr/local]#cd ffmpeg-2.5.3
; n* _- C+ ~; m- [5 o3 {/ d. `9 V) U$ m) `7 W5 q/ m& F
" i1 U) p3 P# T3 B安裝yasm- L1 S; ^& ^& K7 m; U0 \( j( l
ffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。
4 x4 ~$ k7 P& e0 U) ?6 V1 l6 ]( [[/usr/local/ffmpeg-2.5.3]#yum -y install yasm
: e" V% g/ H! t/ i1 K0 k或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝' i/ ]2 Z9 L" n! l0 D
[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg
' H& d# U _/ v其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。- `4 b+ {; T. ]( }
–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。. x; S5 q/ V; h o- X0 f& o! B
[/usr/local/ffmpeg-2.5.3]#make - i( k( `8 s0 p' ^
[/usr/local/ffmpeg-2.5.3]#make install " Q' O' n& R7 J }
; T8 I* h0 J2 z. V3 T* K$ {
4 s/ R; z4 N5 s# b
路径處理:安裝完成后在/usr/local/ffmpeg產生三個目錄: - bin:可執行檔目錄
- lib:動態連接庫目錄
- include:編程用到的頭文件目錄
7 Y$ P! J5 Q. }/ |9 l: b/ C 不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:9 n0 b' W" b7 P; T! r* v" t
[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf7 t% W: f; c# E. K% C7 [+ ]9 }; c
include ld.so.conf.d/*.conf3 `& a8 X; O" B6 f! ~9 G- v
& T' Q- [ `! ?7 l7 x2 ]$ z於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:9 x6 {3 r& Z% J
/usr/local/ffmpeg/lib- i ]5 ]9 F7 T9 W. ~8 E5 k
再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:8 F* _( b D) a% ^, A
ldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>" y$ j+ G4 N5 }' H" o0 S
ll /usr/lib64/! _$ w$ [# n& Z; q
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2$ A, R! }# I; Y; _9 }, f9 T- A! p
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.06 g9 O* B e4 }* |- _1 ?9 _
So:$ ~& I+ x* Z, k/ X/ x9 J+ [
ln -s /usr/lib64/libgd.so.2.0.0 /usr/lib64/libgd.so.2 就解決
/ p# Z g- {/ W. U$ A- y: V可以 vi /etc/ld.so.cache 看看/usr/local/ffmpeg/lib 是否已加入 cache中6 H( x. _. A: O' I% j. W
, A# ~" }& ?1 s s" m: H$ F2 G為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下:
8 U( m! T0 _/ K* e0 Z. A- |: S# b$ m7 ?* L7 p p
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg . * p9 i4 _; { V; L1 y
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe .
/ _! [: ~( A2 X% I) G; Nsudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver . : F3 @7 e9 L# Q
- n, r0 Y K4 t6 b7 n. R另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。
% y3 ~. h5 L% e6 t$ c2 A- P( _現在可以在shell中直接輸入ffmpeg執行,結果如下:& q$ R1 D$ p+ n3 s8 N8 D
1 H' \0 L$ n5 ~7 J" A3 ?: y
! l. R2 a1 g5 e* b
[root@CentOS6 bin]# ffmpeg
7 b- V& X- D4 ]: ?# {2 O" iffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers
: p* i1 @3 f; Q+ x6 q built on Oct 9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)8 g9 C( H9 C2 }; a8 e
configuration: --enable-shared --prefix=/usr/local/ffmpeg
5 t- @( q, k( N& h3 S, Q( d libavutil 54. 7.100 / 54. 7.100
& @0 ~- f1 L8 J; Q+ d libavcodec 56. 1.100 / 56. 1.100: H7 f9 E) W- g8 [ H2 G
libavformat 56. 4.100 / 56. 4.100) C. W$ n7 l: z0 ]
libavdevice 56. 0.100 / 56. 0.100
4 Q1 J! a! n$ i, ` libavfilter 5. 1.100 / 5. 1.1000 Q' @& x8 I: S. } X \
libswscale 3. 0.100 / 3. 0.100
1 R. H- k5 M/ N libswresample 1. 1.100 / 1. 1.100
4 D+ M) r. T3 s, jHyper fast Audio and Video encoder0 ^" b' K. `4 a* s( Y ^
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...3 Q; q _( w d$ c
Use -h to get full help or, even better, run 'man ffmpeg'9 d( b( p5 r+ k, I
/ Y" u2 s1 A# V5 S) u& o, m方法二:/ B! G3 _: F5 r6 X: k! M- V
% I: E$ V+ d8 a2 V6 A! r以 ffmpeginstaller 安裝 ffmpeg 相關套件:# {2 @ U; `% I$ P. z' r" K
4 F: y' {% P2 ?- e9 b- R) [2 U2 R
到http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/* k0 H% p; l, y6 O
解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為
, d6 y$ `4 H- ?+ Z) Z q, W/ s/tmp/ffmpeginstaller.8.0/
; j1 b/ s9 O# C; ^進去目錄後,下指令以執行
6 g, g: n( H, s5 s' D. N; R* ?* M9 \; ?' u3 v
[root]# ./install! _* P7 `* U3 M5 A- d) ~3 R
8 T$ A# e D+ F3 n! K安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。
. |; |2 q5 M q# r/ a& \/ q$ W其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時
& H7 Z' f+ x& t x4 T) j, C8 e/ G下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:4 W" d# }4 S# m
5 J; M7 }8 o' Z2 t3 Y
: a, P1 o; |, _9 ~0 ^ @% U. e9 V1 m; w" G# S9 F
參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html
1 Q2 ?; b& X1 s, _ i" z5 a. n! \; N) {5 V; y
$ h, W1 h$ V# c# \: c, b
8 C8 s- Y) S1 y x
|
|