本帖最後由 IT_man 於 2017-3-28 13:02 編輯
9 V8 C7 x u& e1 g Q& A8 S6 E# P1 x( U: l# e# \5 V$ L
FFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等
# J: o: T, w& ]+ K& a1 s2 z: d9 X! F4 O( A2 I; k
方法一:" v" U$ l+ Y1 Y; k# A
5 W. v0 R; r5 d2 u4 `. E+ ~1 }
[安裝]
0 i; {$ ?! r/ m! u D[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz2& F+ e# ?: I# W# Z8 _* S j
[/usr/local]#cd ffmpeg-2.5.3
4 p4 `5 w8 P& G" C% e. p% i
8 _7 Z- ~: T5 H. p8 n7 M( i6 Y5 U! M" W3 A
安裝yasm
' p& D/ d( p1 }: ~) l& `) I9 a4 fffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。' K3 s) k! v: `' W
[/usr/local/ffmpeg-2.5.3]#yum -y install yasm
/ K* \3 ?0 T8 k" L! y& n$ w或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝
9 z+ m5 P. B* w6 p3 d0 s( W; p4 Z[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg* N# T' `* U5 y2 S
其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。7 n" y7 w' S* w/ L5 }
–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。4 z# h* C* O, j- V) h
[/usr/local/ffmpeg-2.5.3]#make
9 O1 [4 S/ Z C7 i; W: {% N[/usr/local/ffmpeg-2.5.3]#make install $ f# Q4 M" J! v) @ y8 d
" K, w# n$ T3 V7 t4 c
- z) n- v3 q. O) D: _
路径處理:安裝完成后在/usr/local/ffmpeg產生三個目錄: - bin:可執行檔目錄
- lib:動態連接庫目錄
- include:編程用到的頭文件目錄
% X" V5 V, q8 Y+ d 不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:, u/ }; `" Q/ v4 o
[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf/ T0 t, X% q5 A7 k
include ld.so.conf.d/*.conf
$ i1 |( r: p9 w% f; q
9 `7 T& ?5 w2 B/ b' ]) h7 [於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:* |, d( z* f' z, \
/usr/local/ffmpeg/lib
. `! s9 N9 E9 H再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:
: k, V4 H, ?* n+ _1 l' c4 fldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>) S* o9 n0 t- h6 A
ll /usr/lib64/5 p( _3 e, s* W8 K$ z
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2# ~6 r; {. U! ~' _$ ~; Q, K/ n
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0
) r# W* Z' R$ Z3 P* \- l) QSo:
. o, I3 n" ^9 K" H fln -s /usr/lib64/libgd.so.2.0.0 /usr/lib64/libgd.so.2 就解決
4 V) d: w' ~3 A: H5 g6 S2 V' I可以 vi /etc/ld.so.cache 看看/usr/local/ffmpeg/lib 是否已加入 cache中& i0 l& R# e, u7 j9 Q" J) N' b% _
( E K- ~7 p7 J8 h為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下: ( V. i. t3 b+ @: C% U1 n
7 w2 y! I$ I2 u2 j# I8 vsudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg . % `* [- K4 n" f; ^1 {
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe .
- e: C1 X4 m) Q' Osudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver .
. I8 E9 b; B2 D. G
$ |" |# w: R4 q; S# W/ O另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。
+ Z6 l, S4 Y7 B5 N R+ e, D現在可以在shell中直接輸入ffmpeg執行,結果如下:
5 `) {; ?" B0 \1 `9 ~; ?
D, O) M, k- }1 O0 w% ~3 a8 `3 y, d6 X5 a3 {1 d7 Y
[root@CentOS6 bin]# ffmpeg
) w7 B* G" t b# D' l. Z/ mffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers$ }) m0 m8 T: h
built on Oct 9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)& ^* j; T) ` R' D5 G
configuration: --enable-shared --prefix=/usr/local/ffmpeg. A& l5 ~( f H0 @. D
libavutil 54. 7.100 / 54. 7.100( f- H: C( _+ X6 u6 o6 }/ t5 c! H
libavcodec 56. 1.100 / 56. 1.100
/ Q0 `% S' c1 |9 E/ x+ @$ M t" o3 g libavformat 56. 4.100 / 56. 4.1003 k1 {3 P+ c {$ D9 {4 U7 ~2 q
libavdevice 56. 0.100 / 56. 0.100
. Y0 t/ d$ G4 w! o6 g libavfilter 5. 1.100 / 5. 1.100
9 k0 W4 x9 V9 f/ D" Y libswscale 3. 0.100 / 3. 0.100
0 I. L3 k3 k6 m4 z; n! D) Z' r& W5 b$ N libswresample 1. 1.100 / 1. 1.100+ H4 D5 t+ ?9 `, y4 j% w
Hyper fast Audio and Video encoder
* \# i- v7 l. ]usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
d0 Y/ B e0 P! N$ J. gUse -h to get full help or, even better, run 'man ffmpeg'
7 a4 `- l4 J6 p r
3 U$ j0 {+ j D7 y4 B方法二:
; F8 F4 l7 n5 ?7 o% @# B6 T4 S" G1 p* w
以 ffmpeginstaller 安裝 ffmpeg 相關套件:
6 f/ u4 H& `4 b; G$ S/ e7 r
, X' X( u6 P7 p+ E0 @9 S到http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/
; }& j6 S% W' r* x6 q7 E解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為
3 n$ f( j. \9 @+ F/tmp/ffmpeginstaller.8.0/
& i0 ?; @ z& F& I9 v6 c' Y& E進去目錄後,下指令以執行3 T. d# t3 X" L9 U- E7 i0 ]
4 h' x! P: g, O" v! o4 Z6 p0 M[root]# ./install# y5 h3 c; z. \% f" H
; ]. t$ l. V: c, _2 i
安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。' W3 R, G2 n6 V8 W4 ^
其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時
$ `) `$ y( s2 V+ z* _% X下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:
' t8 ]* m/ U: H5 u7 W
& [ b, L4 Z* r7 o5 K) G/ k
3 `. E2 {4 P- D6 s$ s( x3 h. ~9 @9 ?7 B
參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html& D( a# Y/ d8 R( x& {
, X6 P* S A) B
' x( s4 O$ Y9 c' m3 n: W$ d. K5 b' T8 d# {5 _4 C$ U# G
|
|