tid=19906& 本帖最後由 IT_man 於 2017-3-28 13:02 編輯 1 w; {- W8 {& P3 y& i* R) Q5 F
0 o4 v( g7 O: E/ K* N) L: `4 {FFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等
' L, n. j8 z9 B. k; ^9 A9 T( Z' b4 ]4 C4 M4 _
方法一:
( d( K2 @/ ~5 Q4 ^1 p
% i+ b) f, D: ]$ C[安裝]: b" W; L( j1 {% R+ C
[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz2
% `8 z3 n9 I8 I7 `5 Y# ]/ {) m[/usr/local]#cd ffmpeg-2.5.3
# M" _$ V( P, y u- H l2 \
8 [6 W2 a+ |) R; a, c- r8 G) ^1 K
% B5 `4 r* X. J7 S安裝yasm( r6 l8 M( x& j$ M' l
ffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。
+ z- }0 o9 L( U5 ]3 s[/usr/local/ffmpeg-2.5.3]#yum -y install yasm* c2 K9 Q7 X* A: {! w/ m
或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝
) n3 B: }6 c+ p& v- x[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg
" E, Y( K) W' y4 T7 |$ W/ {其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。4 f" {0 r, D8 S6 V8 q
–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。& s. l5 i* W; q
[/usr/local/ffmpeg-2.5.3]#make - y" o* c8 ?/ m; R( ]6 Y
[/usr/local/ffmpeg-2.5.3]#make install
5 T, J$ F% P0 j$ B# E) W6 C
# ~( t8 G1 a- }4 S+ p) p; s+ r$ }( p' p1 u- H- t
路径處理:安裝完成后在/usr/local/ffmpeg產生三個目錄: - bin:可執行檔目錄
- lib:動態連接庫目錄
- include:編程用到的頭文件目錄2 V& V8 K& B" [& W `8 r
不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:
( `( K. b- I, k R1 a8 x% f+ I9 B[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf8 [# v: ~$ J2 k- q5 Q
include ld.so.conf.d/*.conf
0 U$ F2 ?0 D6 ]) H# a/ {0 }' d8 x7 I5 F3 P& y& Y, H& x
於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:- ~! M$ I) q( b
/usr/local/ffmpeg/lib% p# j8 ~8 b) s9 X
再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:
' J! I5 s7 z L6 Mldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>
6 q% W4 {3 F' R9 I8 [) Jll /usr/lib64/
( J# _/ Q; I2 A5 a: w-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2* U9 M% A/ x% X1 v* w1 e
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0+ L5 M3 o+ ~0 |7 f3 d# {: x' G
So:
& x9 R! J" _% z# p& H, Z1 Jln -s /usr/lib64/libgd.so.2.0.0 /usr/lib64/libgd.so.2 就解決4 f1 g& T* J2 {6 C; h. v+ p' f% _. z
可以 vi /etc/ld.so.cache 看看/usr/local/ffmpeg/lib 是否已加入 cache中% s4 B& O3 M% k1 r
; c- Z: i: B1 u為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下: ) a/ B/ X; L, P% v6 B
) ^! T" h# f0 e0 f5 J2 Y1 @sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg .
: D8 ~9 X4 y3 H3 f+ Vsudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe . ( v5 D/ m8 P* W/ C# K
sudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver . o# i$ }5 h) f/ j( W0 `, B* V
, E0 e% _! V& D另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。
3 T: n- d/ P2 F現在可以在shell中直接輸入ffmpeg執行,結果如下:0 A3 G( j' [- B2 p0 B' } y
, m( r ~' b {- Q& Q6 I5 w* O* |
8 e/ |$ [7 s, @- o: y/ O4 z4 I[root@CentOS6 bin]# ffmpeg8 _' H+ c/ I% @" f
ffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers0 V+ r% S, L5 c9 l
built on Oct 9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)
/ A4 ~0 v" ]! j3 x; c configuration: --enable-shared --prefix=/usr/local/ffmpeg
* w% D9 y$ Z# E# N3 N' j2 ^ libavutil 54. 7.100 / 54. 7.100
1 V1 p7 e3 A# F! u1 L# |/ G- ^ libavcodec 56. 1.100 / 56. 1.100
2 @4 m2 x) o. ~4 R7 M: F7 G libavformat 56. 4.100 / 56. 4.100
5 L+ c" Y) b; z* l4 Z5 c libavdevice 56. 0.100 / 56. 0.100# b+ N; R8 \4 S/ @1 x/ F: |+ `5 q" N
libavfilter 5. 1.100 / 5. 1.100: _- {( \, G' e
libswscale 3. 0.100 / 3. 0.100
6 i n s: b1 t) z6 j! t libswresample 1. 1.100 / 1. 1.100
( ^5 M& T, v- B! Y! MHyper fast Audio and Video encoder; r5 _8 h4 P d4 B% P% C
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...; ^( M( B/ K" t% }5 d) J
Use -h to get full help or, even better, run 'man ffmpeg'& k+ u \! z; |7 N: F; a
& Z8 G5 }1 @8 _( q6 i方法二: |. C6 d- K& L! b' y* Z( `
( Z. C7 s' C& k3 x* D Z以 ffmpeginstaller 安裝 ffmpeg 相關套件:
3 J5 \5 U* \ p {3 O! E: `3 X- _- @$ K3 `
到http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/
) Z7 V! M5 \$ A8 p7 |9 n解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為
6 k: B% H, p; q& X4 F/tmp/ffmpeginstaller.8.0/7 F% w: U/ r. ^3 l3 Q2 v
進去目錄後,下指令以執行- X) s. _* y7 T7 {9 Z8 v( e
) R% k/ r- H' ]7 C& R
[root]# ./install4 [ r H7 G, Z C9 h3 U3 q
/ u/ a! W' J; I h
安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。
; p r! Y) ?" H' R/ S3 f4 g其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時
0 E3 E9 t8 n$ A, a4 w8 `下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:9 f6 E# N; P) z* r( R3 H
9 X' q: j& ^( r6 y7 z
+ Q% D' n; J! L- a" P2 I
6 N; H' a9 T( x( P/ M; R
參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html
- N- f3 X/ ?' J+ {; x+ N# N
- R* U2 _9 o4 i( W& L
9 [% s9 p6 o9 ?% g( o1 Z1 a6 x* E( n k; h3 m9 V) d: T) F
|