本帖最後由 IT_man 於 2017-3-28 13:02 編輯
; C. ]3 }# t9 [9 S9 H
+ G# J r8 }+ xFFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等
% c* T) `' [) U" ]: C4 \6 G; [- j; F$ t; U9 c2 C
方法一: t" N- o4 q$ g" p# S1 _
. N, m. G$ m6 _9 G4 K[安裝]% o9 ]( L3 X6 [) O3 s" i
[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz2
6 J( |" D, i6 c; \3 o$ A! D+ I; a5 Z[/usr/local]#cd ffmpeg-2.5.33 M1 e0 @! Q# ]$ r% b, d, a7 j
4 T3 @7 r( |- U
: }6 x" a9 ]; c! |1 a6 `4 j安裝yasm
9 f- k+ r# C- S+ A# a& tffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。3 } f S, y# P0 j/ c
[/usr/local/ffmpeg-2.5.3]#yum -y install yasm% H2 K, m( @' B( v
或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝" z0 M0 D# [+ E7 T# |3 d( p
[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg
2 U' V, H2 k$ ?0 `, Q( j$ h其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。/ e5 @! u: ? y9 _! H; s
–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。
( t! W" l2 k# R9 V* U; K[/usr/local/ffmpeg-2.5.3]#make 8 l; D x$ G7 }% s
[/usr/local/ffmpeg-2.5.3]#make install 1 T. w8 a' {! a
$ P. T k: C" b; ?% o$ f* N( B+ n3 C6 Y$ i& d- U
路径處理:安裝完成后在/usr/local/ffmpeg產生三個目錄: - bin:可執行檔目錄
- lib:動態連接庫目錄
- include:編程用到的頭文件目錄
, y( L5 V4 k$ s8 i 不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:2 }: ]) h6 c# f! B
[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf; b! S. A) z# E8 K3 W) e
include ld.so.conf.d/*.conf
4 q: s( o2 R( L% f0 @# B3 ^4 B+ [
於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:6 ^) v& w$ q8 G% I8 A f
/usr/local/ffmpeg/lib2 R. V! F* G- e+ B5 k' y
再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:! p b0 j ^, \( v& @! t" }+ ^
ldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>
) ~* I, k. V1 K# }( g% a o/ qll /usr/lib64/
$ N- F7 Y6 V# n- ]& u8 D-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2& m4 o( @& J) Q' @8 m
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0
( Q% i( R! |$ w9 j' h1 s4 f) wSo:7 I0 u' k% l1 J- f1 T8 Q/ A1 d ] f
ln -s /usr/lib64/libgd.so.2.0.0 /usr/lib64/libgd.so.2 就解決( j1 {" Q6 H2 \& V( `9 m, p
可以 vi /etc/ld.so.cache 看看/usr/local/ffmpeg/lib 是否已加入 cache中
. H4 o3 H, K U/ W3 M7 i& Q4 j! c: @/ G/ v
為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下:
, {/ w# q: o2 q$ g' d7 f" H2 n/ ~1 k# ?2 |3 d2 A
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg . `" E, _. q9 a3 z$ ^* j6 [- f, Q
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe .
3 m% V! a9 A2 V7 w9 z" I! P. a7 lsudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver . 7 P- U5 P: c; F! ?4 a
; U) I8 A5 g5 @' Z" k; r$ } t a* `另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。
% a) i& `0 R3 `" @現在可以在shell中直接輸入ffmpeg執行,結果如下:4 c; T& ]! l1 S$ Q
& B% @. V( }+ N- F" l0 b7 u
$ U# [ `! A) n: `3 W% v6 N8 Q; P
[root@CentOS6 bin]# ffmpeg9 a% e) x: V2 B2 v6 |9 \
ffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers
% [4 P; y0 k! a$ g( S' j7 M built on Oct 9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)
3 x2 n4 o5 N. }6 I configuration: --enable-shared --prefix=/usr/local/ffmpeg
: G7 E: x" l. z) C' z' b* e7 _: J libavutil 54. 7.100 / 54. 7.1005 ^; K7 F6 p& d9 Z
libavcodec 56. 1.100 / 56. 1.100: V8 ~3 \1 r3 C- [8 F
libavformat 56. 4.100 / 56. 4.100$ k; ]0 d6 t/ x7 Y [
libavdevice 56. 0.100 / 56. 0.100
0 x- v: k7 i3 x7 E1 \. T) G, N/ r libavfilter 5. 1.100 / 5. 1.100/ z2 I8 r1 S% @2 A, D
libswscale 3. 0.100 / 3. 0.1004 m5 `- ~. c+ p9 u2 u1 E6 x
libswresample 1. 1.100 / 1. 1.100 P8 W I( w* D$ w& c: B
Hyper fast Audio and Video encoder ?- m1 M6 X: Z/ E% l0 }. K9 A( D5 W0 U
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
6 l! m% }4 P& r$ ?& E1 l# ]3 cUse -h to get full help or, even better, run 'man ffmpeg'2 w% E; O( `% o; o
/ `7 H) Z X; C方法二:
' I$ ~1 Y3 P8 Y9 o# p; Y2 b o- n2 ]
以 ffmpeginstaller 安裝 ffmpeg 相關套件:$ q( q, v0 b3 u& S1 Q
3 }" r' W9 ` P+ M0 [/ F. ^到http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/2 u4 I7 D: M1 k
解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為& |" X5 W4 s8 ~! r6 k( N
/tmp/ffmpeginstaller.8.0/" \* M2 O$ L: \# A
進去目錄後,下指令以執行' \* Z7 M3 M& E
/ Y* O/ U! a; i$ O! K[root]# ./install5 x# v# \! O$ _. ~
+ ^5 E( I$ {5 y( ]: h安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。
: I0 L0 k1 @3 l( X% Z其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時
. |8 N2 i+ D0 p0 I下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:9 V* `' O3 b, t9 e& B
: L, }7 i$ l* s( {& \% o; @. L
! a% ]" `4 v8 ]% E1 F. D6 G% W7 g- m
* L4 r8 ?! ~ r6 H
參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html
1 c& {7 @# L1 b) f/ g4 z7 L/ R5 `* ]& M5 f
( ^- q& y; ?8 q% Z$ Z- W
5 |1 e0 ?3 V- R/ l; _( M2 b |