本帖最後由 IT_man 於 2017-3-28 13:02 編輯 ! ^6 m( i9 v/ @) A4 u6 B( n; G
0 S4 }9 y9 N. f+ B! W) MFFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等
. W! y4 b5 k5 T0 }$ c
2 o4 n! H( k0 \9 K+ d6 @方法一:
. r5 t( @" \& Z' N! G5 j9 P8 z5 w
8 r3 p' U8 n3 f[安裝]
/ i8 ^+ ^- _4 [/ m2 v$ N5 X: G5 N[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz29 b6 k } S. ^% C
[/usr/local]#cd ffmpeg-2.5.3
: j9 W) ~3 Y+ O( k1 t* w
& U# S, [1 L5 K. l. E( k% s1 Q# [) Y i
安裝yasm0 @$ X. z0 s$ Q1 v4 ]
ffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。
8 L) Y7 ?. K: Q) Z" H6 d[/usr/local/ffmpeg-2.5.3]#yum -y install yasm' B' O4 o% d/ k
或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝4 H U$ d% L2 D3 L6 A9 }
[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg @4 ^ q: c4 b% h. d* z" y
其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。 F$ C: T5 h* U* h7 W7 X
–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。
. y1 d: l% r) W: U" t[/usr/local/ffmpeg-2.5.3]#make
% b2 l) X6 i* m# l[/usr/local/ffmpeg-2.5.3]#make install 0 V( Q( C- k# W, x5 `
" K" r' _ Y) Z0 V, O: R
5 }" {- ^9 h V$ E' R& M; n路径處理:安裝完成后在/usr/local/ffmpeg產生三個目錄: - bin:可執行檔目錄
- lib:動態連接庫目錄
- include:編程用到的頭文件目錄7 Y% F: S. G( S4 M8 g s
不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:' ^3 l8 O' }- y+ i$ h
[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf
. l2 r1 L% U# ]- j8 Winclude ld.so.conf.d/*.conf
9 r1 g8 ]) S- I% D$ t) ^& U; j. J- U4 p
於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:9 z @2 B7 V! j1 f/ v4 W: g
/usr/local/ffmpeg/lib
" l4 @4 x' K; I% q" [, x* P& R再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:
- q! `5 S; z, \( M& G8 L4 g1 fldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>% k( }- p: y" B/ Q
ll /usr/lib64/3 J; j# O0 s8 ~6 n
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2; [) b; c6 g5 H _7 N( S5 z Y( P
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0; P, J+ I) Z; F6 H
So:
. V, _& N5 k% l% k' u% w' Bln -s /usr/lib64/libgd.so.2.0.0 /usr/lib64/libgd.so.2 就解決3 q9 ~+ {8 \+ _
可以 vi /etc/ld.so.cache 看看/usr/local/ffmpeg/lib 是否已加入 cache中
5 V9 x4 \! I3 H; m
o. u/ s* Y" S為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下: & V# R% r4 ^: B6 @, n7 T
7 S' b ]8 b- F4 r. i
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg . / E) O5 g% A0 k0 w+ v3 a) @
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe .
( J6 _# {" D/ A7 R# i# ?) asudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver .
* E: T( V, }2 [" a4 X ~* E
5 f5 @; u, ^' U; q/ X$ L. i5 G另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。
2 c B5 W, ]# h1 k% \ J% v現在可以在shell中直接輸入ffmpeg執行,結果如下:
- w4 m" y8 p0 R$ v6 I9 L3 \2 p$ \3 ^5 w; [+ V& o7 x1 c/ R6 M0 z
! w+ `- t4 L+ i
[root@CentOS6 bin]# ffmpeg, V* d/ m6 P) v! g2 q' r$ G5 ]4 d c
ffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers
. S8 X% w. }, g" U* u7 @ built on Oct 9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)- t, p1 ` i% _" V& n
configuration: --enable-shared --prefix=/usr/local/ffmpeg
+ e9 g( M8 v- {/ c7 E* V, p7 k. w libavutil 54. 7.100 / 54. 7.100
# o) {1 v$ I7 H& A6 |6 |% h' ?$ c libavcodec 56. 1.100 / 56. 1.100
9 s4 D% n# T' | libavformat 56. 4.100 / 56. 4.100* y: e% m7 U/ L$ `$ Q. o3 J
libavdevice 56. 0.100 / 56. 0.1008 Y4 S% @) A# n7 s
libavfilter 5. 1.100 / 5. 1.100
. ^) ?9 r7 _& n; o8 D9 j libswscale 3. 0.100 / 3. 0.100
' n) x# u' v# k: K) c: O( V libswresample 1. 1.100 / 1. 1.100
* x8 y) A7 {8 ]! X0 GHyper fast Audio and Video encoder* K& m/ |( j- }3 z" O8 I' \
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
0 S2 i. ~7 \4 j; R6 XUse -h to get full help or, even better, run 'man ffmpeg'% F9 k% t6 z! K7 s
/ F* d1 B3 D( Q
方法二:
* M5 ^8 X# }9 A+ u: C5 Q
6 ^9 l5 K% ]" X X' P2 A以 ffmpeginstaller 安裝 ffmpeg 相關套件:
! S/ L+ B" s1 b0 F. F; _* V
' y* g, A: q( P0 E1 o, o到http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/; v0 ] \. p- Y
解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為
2 }' Z4 @) z5 u7 o/tmp/ffmpeginstaller.8.0/
U) [- b6 f- \) F. n3 V& W T7 W5 v U6 l進去目錄後,下指令以執行9 f% H& _# B+ K3 Q9 j! {
8 y7 K( F/ S( Z3 f8 s U3 x1 l[root]# ./install( a8 z0 n0 D9 E" K! \/ x6 [6 @" g
0 V& t* [9 U2 X6 C安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。
: v! m: H+ h' y! P其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時
% `* l5 w% `- ~下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:2 c# A, K: o1 g) `9 R ~- k4 m. S {
- T9 h/ r: f; Y* Z) ^/ v8 l
. T( V/ i" [+ z
; n( ~) E. |4 b# s參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html
6 ^9 b; E9 R2 m! b! e6 u, h
6 C& [; k9 P; n; W* w" E$ J! s7 `2 o# p1 ]( M" u# P
! _( o% Z2 ?+ a J& a* H2 R, v. [
|