tid=19906& 本帖最後由 IT_man 於 2017-3-28 13:02 編輯 # h ~6 V5 x( H* E1 h; f! i
9 k1 ^ ?& Z" J9 D
FFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等) G. q/ S2 M6 \2 S' m, @& n9 v
6 [6 T/ ]' e! O$ O
方法一:
( J# |3 l. i. s0 _ H) z% {& B3 K! q" v' N) B; d+ J3 V% p
[安裝]( K" \% r3 p6 A6 m
[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz2) V2 B& m+ ?$ P6 A
[/usr/local]#cd ffmpeg-2.5.3: Y$ m$ Q$ X0 F* u, @3 Q& b
$ h( m& E0 ]' o/ H( }2 R& @2 U) `* |, s+ x g" J8 t
安裝yasm: r W* [' a; ?: W$ z9 g+ ?
ffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。5 ?1 t* G* o& L, i3 o+ y
[/usr/local/ffmpeg-2.5.3]#yum -y install yasm
9 B% y7 b* d$ q0 W$ t或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝
0 @; v4 b6 ^5 f# o, N1 i$ J: ]6 P[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg7 |6 q j6 [8 R; n% W* K3 z- U
其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。' j0 ~& Q; i: L( P' @% Y% S5 ]+ f
–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。$ Z( q9 M1 Y6 q4 t* f8 Q
[/usr/local/ffmpeg-2.5.3]#make : u6 a+ U7 r9 u6 f+ I @8 J
[/usr/local/ffmpeg-2.5.3]#make install
' J* C0 i& C2 N! N
5 N/ Z1 I2 y+ B9 @( H2 ^% G9 G4 ]4 K
路径處理:安裝完成后在/usr/local/ffmpeg產生三個目錄: - bin:可執行檔目錄
- lib:動態連接庫目錄
- include:編程用到的頭文件目錄
* M2 `! l; p) |. L 不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:' F5 L6 m! t# y: Q% x
[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf6 E* ?5 Z, F! b4 K9 ~! V" ^
include ld.so.conf.d/*.conf8 Q q, ^7 _2 ^3 @0 U6 Q, w" H
. ~* V" C" L# `5 Z" R於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:
) s# Q; S" A: c L" z- V/usr/local/ffmpeg/lib( \% G" Q K3 }* i: u' I+ p* v
再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:8 h) G! E0 l x
ldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>
2 v8 h; S8 n, ]5 A! v$ xll /usr/lib64/
2 T) _. G$ S' s* V-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.28 G( j- Q- V0 h9 v7 ^) w0 P
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0
, F: z* O0 B5 D. eSo:5 l2 `+ q- F" W9 V, k
ln -s /usr/lib64/libgd.so.2.0.0 /usr/lib64/libgd.so.2 就解決* t8 O' L; \9 i' ^- C* o
可以 vi /etc/ld.so.cache 看看/usr/local/ffmpeg/lib 是否已加入 cache中
* \( _/ A% q; H8 o. I. K$ |7 d( L9 y/ a6 f
為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下:
/ { X- ~+ v. V& K. x4 i6 J
4 F1 X: I C* @* u7 p4 Psudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg . / H9 N0 m- @) w+ R2 a
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe . ! H5 l5 M+ f! U+ D
sudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver . ! C' g& o- i3 B
: z1 y& B% P# W' z" q( H
另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。
# @* k3 k1 Q! o; ~現在可以在shell中直接輸入ffmpeg執行,結果如下:
; e0 Y8 [; x: V# D5 H: _: y' ~3 h6 E
2 h0 I' `# ^+ r5 a
[root@CentOS6 bin]# ffmpeg! R( }8 m4 Q+ \' ^
ffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers
, Q8 [. g& q' O. M& u built on Oct 9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)- I8 Z# s$ _& W1 l# N: S' A" D
configuration: --enable-shared --prefix=/usr/local/ffmpeg
, e* ?6 R9 D: ?# g libavutil 54. 7.100 / 54. 7.100 c1 n7 ~; V$ c* l
libavcodec 56. 1.100 / 56. 1.100
7 L1 R7 [6 E" ]; h, w# j libavformat 56. 4.100 / 56. 4.100* Z8 |# W# q, _4 s9 R
libavdevice 56. 0.100 / 56. 0.100
/ w/ Z# j! L8 Z, F' B4 v3 v libavfilter 5. 1.100 / 5. 1.1002 D2 Y: L& Z" o* A# K
libswscale 3. 0.100 / 3. 0.100
! v4 f5 w9 g; j3 K) f. L& c& k% J libswresample 1. 1.100 / 1. 1.1004 P) V& n3 w. e. W0 f2 `
Hyper fast Audio and Video encoder
9 C6 t- @8 ]) x' n; l. X# eusage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...0 Q( U( E d; Y$ _; [: u8 r
Use -h to get full help or, even better, run 'man ffmpeg'
: Y w+ E+ ?# X$ U3 ^9 q( i/ ~4 z* P2 g& g/ Y ?* v! s- A
方法二:
' M* K; }6 ~: d1 q& o+ P0 x2 _0 d" q, `5 M9 k' I5 B6 \4 g9 L
以 ffmpeginstaller 安裝 ffmpeg 相關套件:
( a; w8 _9 k2 k6 @: S( `& u5 w0 R
) |- Q( @1 E9 E9 t V' S到http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/
* C# }0 }% H4 H- e& Q& _9 m解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為
. g e& p5 v& o+ Q/tmp/ffmpeginstaller.8.0/$ G: _9 ]! m! u% V% K8 ]9 g8 S. V
進去目錄後,下指令以執行
4 r4 |# l! y; Y6 c
% _, l7 l/ W9 F% X! f9 r[root]# ./install
, p- u9 n0 O; O& Y/ g0 P
( J. I' s' Q- E) q安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。$ p: {4 F" ~8 M+ y: h
其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時* N% H4 k0 J9 F' ~4 J$ a1 Z& p
下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:
0 V1 I& C( f. a! i3 p
- M2 x* B9 u. k; i2 T3 Y- V4 l+ H
- T5 _9 M4 _) I+ s% \5 u1 q/ z7 M" |% T& q
參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html9 _2 W) o( E: C1 i/ k
8 o& Q( e* D% M4 C
4 ]. N0 Q5 m% [2 o; m# r
) V- Z6 E6 s$ [. T' M: x: f |