本帖最後由 IT_man 於 2017-3-28 13:02 編輯
$ U: g5 I0 T1 J7 q
0 W+ y8 C/ _7 Q6 T0 s5 _FFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等
$ s" y2 L) ^ V, O
. b( V. ]) S& K: z1 g方法一:
; G. ?1 p" N$ U. O9 `! R$ b O* C# T( o9 n+ H6 Z
[安裝]) G# q/ U& u( M
[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz20 Y+ p' u) o4 O% X
[/usr/local]#cd ffmpeg-2.5.3
3 O, M. a" d8 `- Y' |, q! }, _
1 G% y, `! N2 d% c! ~, M, \( V$ n安裝yasm
) L! i3 h& y% s3 fffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。' ]" s1 \9 R, J
[/usr/local/ffmpeg-2.5.3]#yum -y install yasm0 ?! R3 d. }7 ]
或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝 s( r3 F' l) W- ^2 c9 o! J
[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg
- _0 {2 y F8 S其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。! l8 K3 F" n( O% |) @5 x/ r
–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。- V4 Q1 B. z5 Y" {
[/usr/local/ffmpeg-2.5.3]#make 8 Z5 X/ }: j5 x5 f
[/usr/local/ffmpeg-2.5.3]#make install
* Z" o3 T& I. |3 C
: D Q5 z5 V" m9 ^) d
, F4 o/ {% B$ P# ~ j" D路径處理:安裝完成后在/usr/local/ffmpeg產生三個目錄: - bin:可執行檔目錄
- lib:動態連接庫目錄
- include:編程用到的頭文件目錄
4 F0 u/ y: i; v. A% x1 x 不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:! ]; y$ _) Q/ b4 N- Q8 N. ^
[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf
& ]+ m: r7 |+ U% }include ld.so.conf.d/*.conf
3 e# e, i4 Y- ]' F
* f3 R- a4 v+ o- ?3 U: P% e於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:; t( W8 b% {+ D$ _+ g
/usr/local/ffmpeg/lib
" P/ v) G$ R6 S4 Y再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:
* X" F0 z- ?/ O1 g& b/ Dldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>
6 T; [% H6 e5 S3 B' Y0 T! ~ll /usr/lib64/
, i$ \3 |& b) b C# Y$ Y-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2, j4 v$ C f6 @0 J% f: u: s
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0) [# I+ V6 X1 X2 E& Y! D" f$ F. F
So:
3 ]7 m3 |1 b7 K* w" qln -s /usr/lib64/libgd.so.2.0.0 /usr/lib64/libgd.so.2 就解決
7 \- s4 J, x4 |' U( C! D# V2 V可以 vi /etc/ld.so.cache 看看/usr/local/ffmpeg/lib 是否已加入 cache中0 S7 L) u w' r$ w
7 ?& g# S3 I; S1 c& Y
為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下: 3 ^9 S/ N$ T. L9 S+ J# P
: }- B% l! n4 U3 psudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg . 7 O$ M+ W% D! C
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe . ! h1 s+ }9 W h) s
sudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver . - ]- a1 F" Q2 k I
4 }+ A4 u% J4 b h+ Y
另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。
4 w2 @4 R! g' W) x; f; c現在可以在shell中直接輸入ffmpeg執行,結果如下:
0 ]0 X9 X; F. b* |' h. b, S& O# ]& x" M; w0 C) T. F6 F
! i- Z, v- t. y8 Y[root@CentOS6 bin]# ffmpeg8 x& l9 T, d* T' X
ffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers
7 b+ G5 x# z3 Q2 h' f built on Oct 9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)
+ t, w |0 S6 d$ d configuration: --enable-shared --prefix=/usr/local/ffmpeg$ [' `1 m6 y0 z7 h
libavutil 54. 7.100 / 54. 7.100* V* w: I" R% N
libavcodec 56. 1.100 / 56. 1.100- b: G. P, k$ {
libavformat 56. 4.100 / 56. 4.100- {* u4 s1 i( n
libavdevice 56. 0.100 / 56. 0.100
]/ f P( l8 w libavfilter 5. 1.100 / 5. 1.100
7 h" S2 ]7 u3 I2 r! X libswscale 3. 0.100 / 3. 0.1003 w9 I8 s" i5 E, A8 ^
libswresample 1. 1.100 / 1. 1.100
3 g! U9 G3 z+ E/ p1 G, {5 `8 Z& H% V5 _3 NHyper fast Audio and Video encoder
6 w0 ^* T3 i: y b& }3 x4 w8 S. Pusage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...! A: E& Q! s6 P+ d+ g
Use -h to get full help or, even better, run 'man ffmpeg'% F! j/ L2 g, p
1 W) @9 f" O* J7 Z" Q方法二:+ C- t/ b8 |) K0 b- _* b
' I& [& _, S2 x2 {; j5 u7 l9 {3 l
以 ffmpeginstaller 安裝 ffmpeg 相關套件:
( r2 N8 q( B6 i9 ~( n% ] Z
6 ^. y& i! v2 ?到http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/
. K' y Q% g! M' P解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為
% l) k( D% ?. u: U! @2 ~/tmp/ffmpeginstaller.8.0/
, y0 W0 W/ ~" u d; D) ]進去目錄後,下指令以執行
( Y6 h7 s+ r9 F# W+ _
4 Y. @' i( [ {9 ~" `[root]# ./install
3 ^7 O/ z3 |+ f- n% ?; S8 y* ~, K0 U) R9 @% _
安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。1 |" C/ H; X u" a. q% b& M
其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時
5 b% A7 w$ y: G6 O& S3 l! |下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:
2 a s- R4 y, {/ p( S9 D( \3 X+ A( s! C# Z3 A0 ^" i
& Q3 J6 \9 u" \4 \6 X/ B* Y" Z3 Q! D( z9 L/ C3 J8 F
參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html+ v- N) a' B6 |, n2 ^ c0 d5 q8 z
1 s% c" H! [3 M# H5 T t% b
2 w3 Q0 f! ^) n2 X* [3 ]$ P K
( m7 X3 o% g$ e* J5 c |
|