tid=19906& 本帖最後由 IT_man 於 2017-3-28 13:02 編輯
# _8 M0 `3 M! W# b. M
! D/ T( S. X' `& n% Z! P! \$ eFFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等# S0 M+ f! l u
' I5 L* n6 L$ i. W S! _
方法一:
: h! W! e7 t9 G1 p3 X* ]2 f1 M% l( C5 Z4 h' _* [9 c
[安裝]+ k, P+ R# n7 p5 @1 |
[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz2( t$ a4 H( @7 Y! c
[/usr/local]#cd ffmpeg-2.5.3
. K8 D: f8 t6 f3 D- v, l, |8 Z) v {4 J2 U4 U7 Y( u
+ N6 ~1 e- Q& i6 M. I% O+ \安裝yasm
% u6 s: @+ L. ^" ?& g6 c/ g! O. vffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。
1 C6 d5 A6 H" ^. O% o, K' G t[/usr/local/ffmpeg-2.5.3]#yum -y install yasm9 D6 c! Y5 S6 p
或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝
4 ]/ Q% d. F- Y9 m; J2 ?[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg
( R% a, N8 ~+ I# j I2 ~; }其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。
; ~ M3 ^( w+ Q! t4 B–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。' j" ?8 y" X; S) o2 d
[/usr/local/ffmpeg-2.5.3]#make
' R* k& n: ]3 m6 a4 r[/usr/local/ffmpeg-2.5.3]#make install " S7 P$ L! D! { b* f# _
0 M; \3 t+ Q+ `
7 c+ o: ]; _4 F6 o" @( c/ R) x. `路径處理:安裝完成后在/usr/local/ffmpeg產生三個目錄: - bin:可執行檔目錄
- lib:動態連接庫目錄
- include:編程用到的頭文件目錄( {7 f3 |& _3 g! P
不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:
: g* ^8 B( k7 A+ E& W l1 Z[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf
! j" m% V* `6 j1 qinclude ld.so.conf.d/*.conf" W4 P4 K$ W' b. i$ C
* ]1 Q3 m* C$ B3 @ d5 [於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:
* F6 C/ Y4 Y' H7 F. L# ^4 R3 W/usr/local/ffmpeg/lib
9 e2 {, y4 M( U/ {0 [再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:
8 I1 L u9 O/ U3 x1 U' wldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>
' }7 F& h7 f% b6 Q) ell /usr/lib64/
, V) P; U5 ?$ M, p0 h! {8 M- q: u-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2
4 t' r6 `- U' i! c, e7 P! j( |" G-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0
$ v* k* `) |9 O6 dSo:0 G% C+ S- h) S! K+ v
ln -s /usr/lib64/libgd.so.2.0.0 /usr/lib64/libgd.so.2 就解決
) t% E0 E' u7 v/ c0 ~3 o1 M可以 vi /etc/ld.so.cache 看看/usr/local/ffmpeg/lib 是否已加入 cache中
7 P* G4 A- V* r/ T7 [$ o. X) `% K( n2 ?2 ~
為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下: # O* e5 e; r( F& H# ] n
# a: O. B' Z! v# @+ b$ t, ~/ rsudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg .
5 N" l: u' w1 `sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe .
. Q5 l. F9 l# l' Z) }( ?$ I3 xsudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver .
6 p' I/ L& b! C8 C' i$ X9 P& U. _3 p& u/ V" r: B* [
另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。
8 U3 H9 Z9 c8 h8 C/ a現在可以在shell中直接輸入ffmpeg執行,結果如下:( C' U* F) Y, g3 J
9 c! ~! O' _% R0 Y, I$ ~6 i; @
8 F4 d/ g0 q1 W6 F% N. A h
[root@CentOS6 bin]# ffmpeg2 v. ~* c A! |9 R6 T- w+ i
ffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers
+ L4 S s% j! v! H3 w- Q built on Oct 9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)% s# X# }/ @9 ^ ~( m6 o
configuration: --enable-shared --prefix=/usr/local/ffmpeg# q, \% [+ F; @6 v8 V
libavutil 54. 7.100 / 54. 7.100* X0 E. A( R2 U9 R
libavcodec 56. 1.100 / 56. 1.100
7 \% n! W+ p8 p2 b, y libavformat 56. 4.100 / 56. 4.100( d$ [- s x6 J% y
libavdevice 56. 0.100 / 56. 0.1006 }+ _/ l: T' _0 {) Q, i7 t
libavfilter 5. 1.100 / 5. 1.100
2 ?' ?1 Q. G, i$ ]1 J! ?; y libswscale 3. 0.100 / 3. 0.1004 J6 n3 U7 R% ~4 F- E( F
libswresample 1. 1.100 / 1. 1.100( g" p* \- s& M: w; S' d# L
Hyper fast Audio and Video encoder0 `+ G' Q$ B1 m. W4 j. H3 W
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}.../ _2 A7 }9 C# O
Use -h to get full help or, even better, run 'man ffmpeg'
$ ^6 R9 r. o+ y/ @$ A" T; Q; v) M0 ?2 N9 h% m/ Q9 z
方法二:+ A% ^6 \* p$ n8 N( y/ ]
( B5 j" @0 M: D2 C. A( ^以 ffmpeginstaller 安裝 ffmpeg 相關套件:5 q2 t0 K7 ?2 W, \/ Z
: ?4 f' j2 Z! t9 A) i1 ~: d2 W
到http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/( Z" n/ @6 C, ]2 f
解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為- A; ]8 L1 [* b4 c
/tmp/ffmpeginstaller.8.0/ s v/ V1 V F/ a
進去目錄後,下指令以執行1 b* P* x& k3 w- U$ a+ V
# o% _5 h8 p4 v
[root]# ./install
$ c& K; N4 J* D9 L
4 I* ]$ [: `8 k. o+ @' u, H0 d `安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。6 h: d7 f, o; ~7 ^ \8 e8 L1 K0 w0 {
其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時0 n6 H7 `" c& I! ?7 F! [2 H$ h
下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:2 _; k; b* Y# ^) o, p) m+ j9 g
& F9 w7 J0 d* c
+ G8 O* e% a! G4 c" ~% {6 p
& f: R; v8 J Q4 ^$ X參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html
; p; |" u- T9 `. g( b+ s# {" [: \4 }! C: R6 ]9 F) J
& _ t R0 m* h
6 _! `7 u' s/ u |