tid=19906& 本帖最後由 IT_man 於 2017-3-28 13:02 編輯 9 Q, R5 B6 ]' w( I. S# q
) E9 Z# Y$ K6 oFFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等" K# {- {9 ^1 c9 u- W! _2 o* H- G
2 c* |6 f x5 l( N, m! V: z方法一:
# Y4 J: K! U6 G. Z0 w
4 l9 X" H: d; w- F. x[安裝]0 c O8 W: T; u P8 o
[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz2: K+ }0 ]+ T1 }+ T( }+ s. c
[/usr/local]#cd ffmpeg-2.5.3+ D8 ~; q: I# k' X* }+ M* s, N# U) H
* l5 I" ^0 V9 q' b7 y5 B& l0 Y
: Q! R- _0 |! J: d" i. p. U! Z" Z安裝yasm
) ^) U4 {4 o2 E7 _2 ^% A6 g4 offmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。- ?' ?9 v( K" V/ T" I
[/usr/local/ffmpeg-2.5.3]#yum -y install yasm
4 a3 ?+ a" |% B u# q* G3 R或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝: r5 y% d( g6 c, n8 B0 a8 W1 V
[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg
( ?3 j3 S2 A6 d, d, |6 w其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。; k3 [7 F g* d3 G! }
–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。1 g A. g9 K1 W, f: t+ R& E
[/usr/local/ffmpeg-2.5.3]#make 3 t% T8 k: H+ R3 x9 [& q9 V/ G' Z& E
[/usr/local/ffmpeg-2.5.3]#make install
8 W7 Z3 t" k% b, n, w. a3 [% C) M ]: T6 `/ E4 h+ c& j
) Y' l/ L1 A" |! F* p3 i6 k路径處理:安裝完成后在/usr/local/ffmpeg產生三個目錄: - bin:可執行檔目錄
- lib:動態連接庫目錄
- include:編程用到的頭文件目錄+ P. l% p. p( f
不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:
* ^0 F( {( Z; r; V% v3 H- ][/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf0 n7 b' j) l4 Y, L$ c5 }
include ld.so.conf.d/*.conf
# y' `7 u0 O5 G
c2 T. y- d# ?4 L$ K3 G於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:
* n [' U, a6 g; n4 Y/usr/local/ffmpeg/lib) p) x: N7 w5 ]! ?1 g& L0 M! }9 c
再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:
/ N8 X u$ V$ P5 i' kldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>
& L$ M6 C' [, ^4 tll /usr/lib64/
( z5 B, n* |$ g9 K0 ^-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2
" A+ B1 q N1 A-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0
& f$ ~; V, S# l3 ~So:; o. b/ n3 T8 F* r
ln -s /usr/lib64/libgd.so.2.0.0 /usr/lib64/libgd.so.2 就解決) v( |. r3 [- N
可以 vi /etc/ld.so.cache 看看/usr/local/ffmpeg/lib 是否已加入 cache中$ ^# `3 v6 A- | L
8 }6 {. ?/ E5 f為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下: ) L0 [+ k1 Z8 e1 `1 P
4 @# V2 x6 E8 O" Z* d% Osudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg . , z% z7 s: Y6 N* m% t
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe .
( P0 d7 h' D/ ] d# H: psudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver .
: P& E; j4 Q2 W: p# q
! R' k) \( p( p; X- k( o另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。
: }1 ]# p$ L- |7 R9 H6 l+ _- \現在可以在shell中直接輸入ffmpeg執行,結果如下:
4 y6 \# u4 U1 Y: h! q
6 b3 I1 F {+ g& c) @9 |# p6 r7 H, {3 j% Z
[root@CentOS6 bin]# ffmpeg
( e* g4 n4 P/ T$ U( Mffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers
4 w/ V# b/ U* {- b: A built on Oct 9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)
2 e: F) w3 G ]+ U configuration: --enable-shared --prefix=/usr/local/ffmpeg! Y! C$ ~, Z" a( u4 h
libavutil 54. 7.100 / 54. 7.1002 v6 S& { r5 ?$ Z
libavcodec 56. 1.100 / 56. 1.100
- y3 w. N4 ^% Y! L! I libavformat 56. 4.100 / 56. 4.100
. w, L# c1 Z. q. R" n. e' j/ c libavdevice 56. 0.100 / 56. 0.1001 m" P B# I- E b# J4 d, w( K
libavfilter 5. 1.100 / 5. 1.100
# E R( o* |; `9 K8 c! y libswscale 3. 0.100 / 3. 0.100
1 e; I+ w! m) T) P4 c% n libswresample 1. 1.100 / 1. 1.1008 Y' T2 p ?8 X# }* R/ z
Hyper fast Audio and Video encoder5 ^8 l- l% \2 }1 W
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
! O) b; E! K& ?- x7 \Use -h to get full help or, even better, run 'man ffmpeg'
& j; y' w% p- U3 o- J# l% @$ p, W; q' @' F9 Z3 v/ c- M
方法二:6 u# l. z3 r5 R2 V2 q6 P5 B3 S
e$ L0 P/ c# G5 J4 T# e( r以 ffmpeginstaller 安裝 ffmpeg 相關套件:3 E1 d4 O5 {9 z3 x
% S$ I0 {/ v2 Z; U到http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/
3 }8 {0 {! d2 K6 e' r解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為 s: C5 j1 o: }: F2 c
/tmp/ffmpeginstaller.8.0/" S0 @4 T0 k2 Y: L3 q2 _
進去目錄後,下指令以執行
; V/ I0 j2 ?( a$ F( [+ k0 c0 ^4 {% g: L, \5 c1 Y
[root]# ./install
7 M S+ [+ \5 D. n3 V% Y0 i+ v" l2 l9 T6 w+ b
安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。
7 O$ B! Q# D; h0 ~$ L其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時
" g! }5 m3 e5 q9 \下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:
; i! t0 b+ I) N- I) ^- B V
# ~$ i; N, j% x
- c5 @+ p" h2 I7 B: E9 _" I
8 G- X9 _! F5 y8 F3 c* ]1 v3 p' { \
參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html
& G% r8 Z7 {7 f$ h6 {
, A$ s+ C; Y3 C! G' [* r( T, S. l) z: _% h! i
1 b) d+ P# I1 p# K, H" P1 D
|