tid=19906& 本帖最後由 IT_man 於 2017-3-28 13:02 編輯
! K2 ?5 a) X; T3 a
. X$ b% {1 I- y0 E7 tFFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等
/ {& r! v$ g8 M1 o) P! I: D, C
( m2 C$ C, {+ r7 V% ? m方法一:
/ K9 k" f b7 D! `- t4 x+ h' G6 K) X8 @) B$ ?% s2 T
[安裝]
; ~/ s) W! M* `) o[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz25 Q- D/ O, N8 q) z/ L
[/usr/local]#cd ffmpeg-2.5.3
# N5 W1 n6 \3 R4 _' T2 I2 c; X* l6 [: V( d" O
2 p1 L0 B \+ I/ M安裝yasm" A* N! w7 F" y0 a/ z7 g7 R
ffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。
* V/ E1 G& e3 j% o1 \3 A[/usr/local/ffmpeg-2.5.3]#yum -y install yasm( q- A: X" m' j5 A
或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝& m. ]) n ^( i* B4 W
[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg2 _* d4 I. a% {! O C1 O! u7 W! Z
其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。
" S5 a; |' I( W2 R0 c- C# d–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。
% u$ H9 J- b) U5 R& a' ~[/usr/local/ffmpeg-2.5.3]#make 2 u3 U+ ]4 m! x, g% r
[/usr/local/ffmpeg-2.5.3]#make install 2 j! x# e5 Q' ^+ ?
; R( v9 V) d w5 P) h
, Q$ K ]: D4 k- b3 Z f路径處理:安裝完成后在/usr/local/ffmpeg產生三個目錄: - bin:可執行檔目錄
- lib:動態連接庫目錄
- include:編程用到的頭文件目錄1 b7 {0 c6 M* [" |
不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:5 c2 e- \5 {" K/ E0 J
[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf
) k/ b: V$ ~1 y% r1 g$ Ainclude ld.so.conf.d/*.conf
. [- Q7 S; p* }( G! {7 O$ h+ F. Q Z1 ]
於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:
+ F8 U. x6 h7 q/ I( O4 |/usr/local/ffmpeg/lib
9 H8 y4 @0 x6 q% q( N% C5 X再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:* Z7 V. ~) H: P: p: E
ldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>! a5 v5 H& F7 M# { k8 D6 m
ll /usr/lib64/4 V0 W3 b/ _3 F) W! @ ]# c( P5 n9 V
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2
/ q8 [, A% `; [0 G% ^-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0
- d0 {" T- p5 c/ F3 ZSo:
( O, R& x3 j$ o, e5 [6 Z; k+ H( rln -s /usr/lib64/libgd.so.2.0.0 /usr/lib64/libgd.so.2 就解決
2 J# n( {. k f# A' b# W4 L可以 vi /etc/ld.so.cache 看看/usr/local/ffmpeg/lib 是否已加入 cache中
0 j8 l5 U. ]( C" j( y' \9 y
' ^( g5 Y: c7 F% ]7 h( A為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下:
- t" Y6 A" p" |4 A1 r& N! c( s; ^8 |0 ^- j3 M" F) @
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg .
/ X; n7 ?7 s* k6 B+ _" qsudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe . - y0 H8 p# ~' M' {% w
sudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver .
+ ^( A% `5 F8 z+ o$ R' S" e
+ T3 k8 ~5 o' z4 o$ o" f另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。4 g X! \9 K; i4 g* I
現在可以在shell中直接輸入ffmpeg執行,結果如下:. Q. ~. y+ _, c4 J9 d& V, C
0 `0 y. {6 [1 {/ Z
l- q! M. n1 Y$ ^[root@CentOS6 bin]# ffmpeg
& |4 @# u' |; K: _9 ]. bffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers
' ?7 g! g5 }& ^8 X& o1 ^; r built on Oct 9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)1 u" e! R8 n+ T3 ]
configuration: --enable-shared --prefix=/usr/local/ffmpeg8 V) P( k/ R, d* s6 @" p
libavutil 54. 7.100 / 54. 7.100
/ u( f2 e5 y% ]) r. t3 N libavcodec 56. 1.100 / 56. 1.100
/ H% { ] s& u. h. {5 O' R libavformat 56. 4.100 / 56. 4.100$ [' T4 L% q+ D0 L3 K. G0 m+ p
libavdevice 56. 0.100 / 56. 0.100& Q, U) c" @8 Y5 ?2 w* O k
libavfilter 5. 1.100 / 5. 1.1002 G. P# A6 Y, x! Z+ B5 M2 R1 i
libswscale 3. 0.100 / 3. 0.100. R! Z2 i6 p3 D. d! n
libswresample 1. 1.100 / 1. 1.100/ l; ]- U# n0 F, h, e: v3 }" L
Hyper fast Audio and Video encoder) `/ q- a& B% }- h: ^
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
* A/ S9 {! b" {3 f$ vUse -h to get full help or, even better, run 'man ffmpeg'
( f" x$ l* h) I' Q! x
3 ~3 H' R. r3 p+ }, X8 s方法二:
' f4 B# G, R. _& x2 _/ b3 G
2 Y) F) v, X7 j3 N以 ffmpeginstaller 安裝 ffmpeg 相關套件:/ q2 }9 X% k5 I+ E J' H
8 n6 O0 ]8 T$ j* h' s
到http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/
+ R: i6 l: |0 z- O5 q. ?0 I解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為0 T/ |& r. p- h( w4 K" ?; {5 q
/tmp/ffmpeginstaller.8.0/2 b- e- d$ c ?
進去目錄後,下指令以執行
, ~- G& H$ H5 o& ^/ `: z/ t' u" L) f* w" _/ Y. }
[root]# ./install7 q! ~$ j1 F% f1 S7 A3 a& E3 }2 \
; t, ]0 ^* P) r" b7 ~% s7 u- |安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。
; ~. r+ J( T5 q; Z! |0 c其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時: n( \- W, E7 M( `
下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:
% m7 Y5 }9 Q U& n$ ?1 F
! [5 |+ A) Y( j8 O) ^
7 u$ |* ]$ v. Z( h& j) K: N o4 f/ \8 z5 u2 B
參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html: j& q4 _9 `0 f7 _3 P
0 C6 f, q3 p( t# [( t) ]
8 e4 _8 L' h! E: F6 O
2 [; X: k3 v4 A |