tid=19906& 本帖最後由 IT_man 於 2017-3-28 13:02 編輯 , K. {/ ^) b8 ]! L* M; U0 R
3 Y z8 Y- W1 R1 dFFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等
- z8 [' y U; ]# Q! s1 Y5 k! [5 z) c
方法一:4 Q+ L7 K: q- G0 R
! x! P* v$ V+ E* Q# C) G
[安裝]! o- o3 X( v6 |, n6 D
[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz2
4 J+ R- a, H5 Y3 e8 K8 ][/usr/local]#cd ffmpeg-2.5.3% n9 ^$ w* M& b7 d( E6 B
( |( y7 H: b% q+ D0 l
6 o2 l# l- ^- G! I4 W安裝yasm+ E4 ?& x5 Z" I( ^
ffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。
! H. c5 ?+ D0 P' B1 ~& P[/usr/local/ffmpeg-2.5.3]#yum -y install yasm n2 U+ T: S- B3 l$ H- [ D% r
或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝/ l) \# x7 X0 y7 h% D
[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg/ ~ U( w3 O' m* o& ^
其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。* |" t. p v+ t: Z- w) ]: }9 F: c
–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。% S% ?4 p* \+ T! h$ v4 ]7 \
[/usr/local/ffmpeg-2.5.3]#make 0 T% q- `) z+ o8 H" M, s. F
[/usr/local/ffmpeg-2.5.3]#make install % h: W- c- z& s
4 _. ^0 g- \$ C. }$ d
9 T; H' ~% q' E" I T2 u6 J, w4 Z路径處理:安裝完成后在/usr/local/ffmpeg產生三個目錄: - bin:可執行檔目錄
- lib:動態連接庫目錄
- include:編程用到的頭文件目錄
8 w- Z/ Q5 S2 Q$ t2 H 不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:
. |# D6 A/ N; ]; }- [: B[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf9 t, \% G' w% ^9 N
include ld.so.conf.d/*.conf1 e" J/ l' v$ I- ~/ G5 i
# X7 {* K" b% b7 ~+ P+ H# g
於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:; J6 K* z, V- o, F7 j% c
/usr/local/ffmpeg/lib' R" v% X" t6 o5 I/ e& t
再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:' H5 `& B/ F" d, Z; Q
ldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>3 ~! P$ D- H% S* J. ~* p9 t4 f
ll /usr/lib64/
+ `( m+ x& F; U! a% z$ _ E-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2
. \& ^- @1 Q' [7 y2 c7 O. F-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0( l$ H) V4 ^+ H/ i9 c
So:
6 q6 e9 o, |8 v+ Jln -s /usr/lib64/libgd.so.2.0.0 /usr/lib64/libgd.so.2 就解決; G6 k4 N: F" w! F& O% @+ z
可以 vi /etc/ld.so.cache 看看/usr/local/ffmpeg/lib 是否已加入 cache中
# B. ^5 G* s5 n. r# S; o' g, Y. w/ z4 d: Y. R( R `
為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下: 9 j9 J: l4 @6 o5 b2 ]% ?& P* u$ p
; }9 j* H$ L( H9 G2 t# W6 _
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg .
: e, Z2 s+ E6 ^! I6 K# @( C$ [sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe . 8 l$ F. [* ^( i; y/ r; h
sudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver . ; @5 l( r7 _$ {! ~+ k( g. q4 G. z
( P0 v+ m; g/ D
另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。+ y3 W# I: A( E; k$ b& w8 r
現在可以在shell中直接輸入ffmpeg執行,結果如下:1 s: d+ L) e: J1 E, C7 S# Y
% Y/ o- k$ R1 C3 j0 e" i' z* V+ v ` P" @6 Y; u! r" c5 F- q
[root@CentOS6 bin]# ffmpeg0 g% H& Y/ G# i4 g
ffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers
8 K: q4 Z/ d* e/ H5 N6 W# f4 {+ S built on Oct 9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)
) F' E' E8 B% V configuration: --enable-shared --prefix=/usr/local/ffmpeg
: N: L! Y. t" N0 k; e libavutil 54. 7.100 / 54. 7.100) s; h* T: Y5 L4 e: Y T% w
libavcodec 56. 1.100 / 56. 1.100
1 N) _; }1 x& { libavformat 56. 4.100 / 56. 4.100
! X. h6 M, R2 t `* E libavdevice 56. 0.100 / 56. 0.100 R4 }% U2 l; d! @
libavfilter 5. 1.100 / 5. 1.100
" [- i0 C1 d* }, G* T! h6 R libswscale 3. 0.100 / 3. 0.100! r( i% F% A' J( M+ J! V
libswresample 1. 1.100 / 1. 1.1000 L; k# H, z. N9 w
Hyper fast Audio and Video encoder
, O, r+ ?8 n( [7 ^+ X( z! Ousage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
2 A1 a: @; Q; D9 PUse -h to get full help or, even better, run 'man ffmpeg'
3 T! `" l5 ?! `: C9 Z1 S
. b& V$ a+ r0 A7 e方法二:
. V/ I8 q) O1 W$ X( o) Q F
; I4 {1 u0 L' o; P1 S; n以 ffmpeginstaller 安裝 ffmpeg 相關套件: |- g+ W, H- a' T
, r, Z+ t9 t' ]到http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/& b4 |( E6 f1 X" ?2 A, J7 K; @
解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為
9 b* [/ Q8 ]/ i7 w! I2 j/tmp/ffmpeginstaller.8.0/
, A& V. `0 W2 j進去目錄後,下指令以執行% V' [: s& _; Y7 u( \+ K% D
3 [3 G% ~$ W9 O. K5 E5 v[root]# ./install
$ l* ^. i" O$ M. R/ X) L% X0 \& x4 f' D9 h; C _" N
安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。* Q1 K4 L5 ~: r9 j2 m3 c! \
其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時
& L! D3 S b! [; S下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:) b5 |0 t8 E+ h# ?4 `
' k3 X* F2 Y# G1 y% o
* G+ A( T8 _. ~7 T
$ W: Z: w% ^! U! J# R! ?7 U) Z9 |6 Q
參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html
: h1 |& [+ u6 ?/ I- T B( n' S
. v O1 ^$ a6 w# j
5 \" t# W2 B5 c, @' z2 o6 E3 _6 y' k- i, b- v
|