tid=19906& 本帖最後由 IT_man 於 2017-3-28 13:02 編輯 ; m5 S' u" E) N" W$ ?8 t5 ~
! u5 L: a2 W/ ^! z+ d/ l" v
FFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等9 y, U; P. [ {1 J: {+ m' @: H
/ i$ o& n0 [# R5 z: Q" h方法一:. b0 U! G' u% O# @' ^6 i( G
. ]" D& j/ }6 I% G$ T[安裝]
) G9 r' b& V# v5 @. U' z[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz2
5 S, G% }& W3 N0 z5 Q[/usr/local]#cd ffmpeg-2.5.3
8 r) F) @2 |' z" R- m: ]) r k6 Z8 C: ?6 ?9 L
% [6 `/ ` l+ u; ~2 ?8 f
安裝yasm0 Q: N$ P* i2 v3 O5 \
ffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。' v2 d, W* a9 N3 y. G9 V# Z1 U" ]
[/usr/local/ffmpeg-2.5.3]#yum -y install yasm
* x: C# C: q1 L. z) c. ^% x或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝) ^! D* Y% h' u6 ] G5 o* M' O* [
[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg! F# C& I, W1 b
其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。
& q5 S6 r- w( E( S–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。
7 w9 D" Q2 C" O" J, q: p[/usr/local/ffmpeg-2.5.3]#make
8 g! c! k$ u7 I+ u. `[/usr/local/ffmpeg-2.5.3]#make install 3 F* s6 g6 s1 H3 g1 V4 _5 `* L
4 i$ F4 }. ^: C0 S9 r
# ~- t2 ~8 V) W$ T1 w& f
路径處理:安裝完成后在/usr/local/ffmpeg產生三個目錄: - bin:可執行檔目錄
- lib:動態連接庫目錄
- include:編程用到的頭文件目錄
; Y. c% D5 Z$ S& N) s% e. F8 Q 不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:
" I+ j3 [+ B* n: T[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf
& p& J0 t& j3 t9 C3 F& ~# \include ld.so.conf.d/*.conf/ c9 }& x0 i% D2 Q% x6 \
' p1 O& e8 z3 I2 Q# |; b' V2 L
於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:0 j% y( n; O4 t6 H1 C
/usr/local/ffmpeg/lib! |2 c) ?7 E0 `* h
再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:
& L U& h, ]) ?' I A8 g7 fldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>
# t; P' n; r( N0 G9 y1 ^& [ll /usr/lib64/
6 [" C7 a6 m8 o6 v* M-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.20 U6 _: z& f) }/ T$ L* n
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0" z% T) E- i! C. J
So:
( K' ?( C- L4 n6 |7 O& Nln -s /usr/lib64/libgd.so.2.0.0 /usr/lib64/libgd.so.2 就解決' K( O; q7 _8 b( S0 e+ |
可以 vi /etc/ld.so.cache 看看/usr/local/ffmpeg/lib 是否已加入 cache中) M. ~& B+ o* @( G, z: n' w3 V
8 @3 S7 J3 y. k. Q9 O; J為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下:
4 [: o# d" h( @' I7 U- j' u2 o; t: v! Y* |2 C) f c
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg . , [7 c6 @9 @0 U4 Z6 \8 r
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe . # D6 W2 o) W) f* |' F) b. z* C
sudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver .
* H6 \5 U! O% `# e% @: r) s4 y( b
+ ^3 r, t/ S1 t2 `另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。& b$ e n/ Z* U, f8 W
現在可以在shell中直接輸入ffmpeg執行,結果如下:7 O# W* T9 D% s S
! ]4 [, j% ?) e
3 ~- t* ^% s; V+ i! k, w[root@CentOS6 bin]# ffmpeg
2 b, i# P0 h1 ~( _. xffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers
+ N c4 ?( }7 e built on Oct 9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)
. s$ [% Q, D* D# ?% }) Y* u configuration: --enable-shared --prefix=/usr/local/ffmpeg" t. F7 j( r2 j: d: h
libavutil 54. 7.100 / 54. 7.100. v4 o% S0 p: F2 f9 N
libavcodec 56. 1.100 / 56. 1.100' i- B' z4 G/ ?
libavformat 56. 4.100 / 56. 4.100
1 P+ q- e% ~. N# e libavdevice 56. 0.100 / 56. 0.100
# g& p w( X b4 ?. W% J8 k/ ]( ~1 U1 d libavfilter 5. 1.100 / 5. 1.100
0 Y0 z( Y: p+ V; e5 T& D" b libswscale 3. 0.100 / 3. 0.100
- ]$ [# j# ~2 ^# p/ k% @% f6 c; M libswresample 1. 1.100 / 1. 1.100
& {' H/ U5 a8 jHyper fast Audio and Video encoder8 D+ i( M9 q) O/ @( C
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
5 ^( f0 ]- S$ k3 RUse -h to get full help or, even better, run 'man ffmpeg'
% m5 B9 Y) }) K% i4 }; A; A
: [6 n' `& R0 r2 I5 H& P- {7 k方法二:# `+ Z' Y3 \+ z$ |% g" w! }3 T
6 K+ R9 L$ a; r- J
以 ffmpeginstaller 安裝 ffmpeg 相關套件:
; ]0 M7 _, |. ?# w$ _% l/ o: E! A
1 `, f# L* x d到http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/
2 k( a4 `- f! L7 U' I解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為
( k5 \2 l" Z; H9 |$ }$ z' b/ S* r/tmp/ffmpeginstaller.8.0/
0 X8 B! U0 U5 n+ f/ g8 p! r進去目錄後,下指令以執行
7 U! M8 w {- j" c
4 e* B. H" r N0 j% C0 i. {8 J[root]# ./install5 e) a; S$ z$ U& M. D* h5 P
& L" {+ Q) @/ f: J' T: J
安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。
( V6 e6 m1 S; D' U6 V F其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時
' y) H D4 Z& e1 ], i7 I: @下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:
0 z; H2 o6 u+ |6 m: G; `% c! ]
5 m2 ~. ~, K% z* N1 i+ V
$ R; c& Q! W1 V6 l
! `4 U4 K0 L, V% A* e2 K. M參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html
2 j4 q# D* f: g
. v2 ]5 Y7 e2 x7 l) F9 b9 B
( U" P# ?0 Y8 }3 F4 o- E/ e3 }# f5 P; Q/ O* c, W* F
|