tid=19906& 本帖最後由 IT_man 於 2017-3-28 13:02 編輯 + S* u9 C- z T! c1 w2 M5 h4 v
$ N! Y4 { v. a+ {FFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等
T5 C/ p7 C* g: S* j8 p$ Q: P3 j4 o' b
方法一:
4 q$ _( S5 y$ {
: m9 M' b+ ]6 o; U8 T; G! Q[安裝]8 ]2 L5 K1 X' _* I5 G i2 ?
[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz23 c( c9 R2 l* b& W' z
[/usr/local]#cd ffmpeg-2.5.3
3 ~: B' A: {. t! R) P7 d& Z/ V
+ w& @6 z5 A' t$ \9 W0 d6 a" v" E- G% g
安裝yasm
/ C+ G: E9 ?' f/ sffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。
; P6 ^9 y7 F ~[/usr/local/ffmpeg-2.5.3]#yum -y install yasm
& O$ @% P) F& ]或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝0 J! q+ @: q+ q9 V# r, G X
[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg, _: U4 X9 v9 m. U
其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。
+ v) d2 c1 L5 W–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。7 Q3 M/ _' m; W
[/usr/local/ffmpeg-2.5.3]#make 5 O# y' g+ N: y$ J E
[/usr/local/ffmpeg-2.5.3]#make install , j2 n2 o! p2 G- |) d6 o7 V% D
: K, \) a* f8 ~( @+ U0 {: k9 A" K
3 d: u! m4 y3 t" `
路径處理:安裝完成后在/usr/local/ffmpeg產生三個目錄: - bin:可執行檔目錄
- lib:動態連接庫目錄
- include:編程用到的頭文件目錄9 N+ @8 {3 C: h8 h% d. {# U: `
不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:, y2 u# r$ ]7 r5 m
[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf+ Z8 W4 P" l+ R; h5 U9 U' y
include ld.so.conf.d/*.conf
. @- u$ j9 K0 _) J/ X7 L7 P/ Y0 u$ M- J2 k% L% {
於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:& v t' j( @5 F2 @) \- r
/usr/local/ffmpeg/lib0 @5 O5 B, e1 L7 g7 T
再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error: ~4 [/ _1 c. I7 v/ _; \( X
ldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>
1 M# l1 R& [( T) D( g4 t, A- fll /usr/lib64/ H( B! M, u! |
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2' i: x" ~/ x# W+ `
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0
7 x6 H6 d+ `" n! j, JSo:
! \/ h& A2 Z3 a7 S& w! N( cln -s /usr/lib64/libgd.so.2.0.0 /usr/lib64/libgd.so.2 就解決! i. N0 h3 B E
可以 vi /etc/ld.so.cache 看看/usr/local/ffmpeg/lib 是否已加入 cache中+ _8 Y0 R# f. ~) s
- [. ? y7 z+ p為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下:
! g1 Y5 }* j: w4 g9 c( Z* U u( g
& l' V" U4 x$ }* |sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg . ]$ F* O7 Z% T+ Y: F. Q' h: Q2 B# t
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe .
4 d) `- @: U( t" t- ~sudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver . : N/ A6 f: N- z ^5 m
7 } A+ Y4 R) c另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。
5 r' l3 T1 }2 _/ ?0 q現在可以在shell中直接輸入ffmpeg執行,結果如下:
8 S! i3 E9 o7 z
7 @# m1 V! `) n) }3 ` [& h# V
. o x0 a3 Y* `% j/ n[root@CentOS6 bin]# ffmpeg% o- b& X y( D
ffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers/ ]8 }0 [" a% q L7 f+ ?# D
built on Oct 9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)0 M& H/ r5 l* O$ B2 i# I7 E% d
configuration: --enable-shared --prefix=/usr/local/ffmpeg
% u& u0 J9 |+ b, ?# P9 S' k libavutil 54. 7.100 / 54. 7.100; Y. F+ x8 o- H1 J% a2 x4 E
libavcodec 56. 1.100 / 56. 1.100( C g! e/ a# ]# ^+ P3 p/ Z: O- n
libavformat 56. 4.100 / 56. 4.1005 {' \9 G/ c5 b" X! \
libavdevice 56. 0.100 / 56. 0.100; t8 K/ N: |$ ~6 q- a
libavfilter 5. 1.100 / 5. 1.100; N& [$ k6 y# c4 a1 U c
libswscale 3. 0.100 / 3. 0.100# R/ d& K% r8 E: {$ P3 ~4 A
libswresample 1. 1.100 / 1. 1.100
1 D: e7 C% l! M; AHyper fast Audio and Video encoder
* ^& t# u( A# M* r. r" Cusage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...3 b, d1 ?9 {9 g) K. M2 V2 G8 x
Use -h to get full help or, even better, run 'man ffmpeg'/ a: O* A/ n0 ]! ]# u
- V; v; @3 V: W! i( ~0 c方法二:8 t* [ ~6 }# w
" V$ z1 T, m' ]- X* i6 ]; Y% G# q以 ffmpeginstaller 安裝 ffmpeg 相關套件:7 a/ O/ Q6 m4 x7 P, r
" E7 C2 L0 c$ E到http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/
2 V3 ~+ H' r$ ?. o解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為
$ h3 k4 o3 I9 Y$ D- Z/tmp/ffmpeginstaller.8.0/+ Z* A/ d) O+ M: ~- l+ ` A9 \
進去目錄後,下指令以執行
) y( f: {9 X) q9 }! r' B4 g& c+ @( n* l; p: b) o ?
[root]# ./install
3 R. ]3 {; j0 D4 u, d0 z- [3 T7 b3 r
安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。
2 q3 W- M# g. M8 D) U1 o其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時! C* F' x4 C- t+ s
下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:
# x( H- r$ h3 t9 ]8 Z8 |
! x. L/ m8 r- |
0 D6 _9 F) s1 b/ W* m; S3 L& Q
' ~8 S6 |# U" ]
參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html. Z; ]- g" Q" z+ z/ g" U
, `4 G Z# H$ o
4 }: R2 r* r' M
4 A( k- }1 t |4 q" w, i, b |