tid=19906& 本帖最後由 IT_man 於 2017-3-28 13:02 編輯 # g) H, q1 p4 |. N" `2 c6 U" k4 e
" G9 E4 T4 X! J5 v* P$ I
FFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等3 ^, A X- e4 M' F' V
8 u, D& r( a% x4 r+ E, x
方法一:0 T3 t( K7 ?2 X, a8 ]
0 f2 l+ ?4 e/ ]
[安裝]: w: n& d- e8 s" G. M/ Z
[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz2
6 I1 z) G% Z" j. d1 [[/usr/local]#cd ffmpeg-2.5.3+ u( [1 w" J$ s3 R6 I% G
6 Q$ P& U( [5 `% g% k5 [: ?8 ~8 l
安裝yasm% W3 B% m: j6 Q, o, ~. s5 z* u0 G
ffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。9 ~" j( F5 A- b- w6 U
[/usr/local/ffmpeg-2.5.3]#yum -y install yasm
0 A' J* P/ L' s% i/ C+ y或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝
2 a) x/ o/ J: ]" W8 h[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg
/ Y0 R8 G3 V9 s( E# B6 p0 i其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。/ H! |8 t" P/ e' n" ~! z0 U; I
–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。
. y- O: y8 h" F2 p+ O$ S! k/ ^[/usr/local/ffmpeg-2.5.3]#make
3 ~7 |$ c) r' |* K5 F _[/usr/local/ffmpeg-2.5.3]#make install 7 m# H u+ g- i# A
& r' g# d$ [7 M7 e
2 z0 d$ B% {- m2 {$ A% M3 @路径處理:安裝完成后在/usr/local/ffmpeg產生三個目錄: - bin:可執行檔目錄
- lib:動態連接庫目錄
- include:編程用到的頭文件目錄
, h+ }& Z' r2 ~( Z# L1 l 不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:
6 B' y! C6 z& o8 c[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf
6 W# B, T( Y" O; {* Q) ]include ld.so.conf.d/*.conf) n$ x7 E+ k" F, Y! w3 m4 @. ^
! e* `5 o. U# I V% r$ g& u
於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:
1 g! Q3 h0 Q7 Y# V6 a3 u2 p/usr/local/ffmpeg/lib
5 _" ^4 N! V0 ]& O% {再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:. G; U! |2 F$ r) [( K7 g9 x: O1 I( P
ldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>* \+ h7 I) I* N, p
ll /usr/lib64/
+ C+ f) T* \, e5 T- P-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2( V m' k I0 j# }/ o# p. g7 p% Y
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0
$ V+ N4 O2 d P& `So:$ v% D+ u1 { {/ D
ln -s /usr/lib64/libgd.so.2.0.0 /usr/lib64/libgd.so.2 就解決
; Z) O8 j5 ?+ H" [2 ?( [可以 vi /etc/ld.so.cache 看看/usr/local/ffmpeg/lib 是否已加入 cache中
5 A r3 _. J! D
4 F" D: q L, {, y為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下: : } a& ?( d/ Y" a& s1 J
0 d" t2 ]( x gsudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg .
9 S# Y% a2 p/ y6 ~2 M* N- S- Msudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe .
1 m& s0 d( o1 W- ]9 g7 X0 \& Msudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver .
6 b9 e l: x+ n
# z( {. t1 C% I6 c, v另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。; t' ]3 R, C/ g
現在可以在shell中直接輸入ffmpeg執行,結果如下:
7 n! w& J6 ]- x! |- [ |7 Y
( S. R4 d& [$ C# |
# t2 J! _1 ]4 _8 P[root@CentOS6 bin]# ffmpeg
/ p: g3 g2 Y8 Z4 y$ Qffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers0 `0 o3 V! t$ n
built on Oct 9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4), D3 O9 L. h1 g; Z
configuration: --enable-shared --prefix=/usr/local/ffmpeg
# A, T" R' u: }- b' L libavutil 54. 7.100 / 54. 7.100; V! j( b0 U# M: G8 {* E
libavcodec 56. 1.100 / 56. 1.100$ l6 |: v, j- Y L
libavformat 56. 4.100 / 56. 4.1008 t3 L o# ]. U, T0 |
libavdevice 56. 0.100 / 56. 0.100( G+ j" q7 y* T1 [. [! H
libavfilter 5. 1.100 / 5. 1.1002 z# y2 m5 b$ K* w* T! \* a( e
libswscale 3. 0.100 / 3. 0.100
' ^% t5 d! f% W1 ~ [0 }$ v libswresample 1. 1.100 / 1. 1.100
* x+ q8 _4 g6 g+ qHyper fast Audio and Video encoder
$ v. U# [1 E; T rusage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
/ q( G2 O S8 Z% RUse -h to get full help or, even better, run 'man ffmpeg'
- e$ k8 e W, s' a3 F1 {; G% S3 _0 D" e
方法二:& x! W- x7 e( }; X, n) @
8 T0 c% D. t- e9 P7 B6 ?6 o以 ffmpeginstaller 安裝 ffmpeg 相關套件:
% @0 N' Q) `7 U5 f0 d/ `) ?( }- U, a) ^# r$ _
到http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/6 O( z: k: A X( [
解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為
+ Y, J' F6 t X6 P8 T6 Y3 Y/tmp/ffmpeginstaller.8.0/. _9 y2 ^8 t6 Y0 f" b% C- V
進去目錄後,下指令以執行2 a+ m- a1 T5 [/ R
K" ?8 [- N @ ^
[root]# ./install9 N. G. W6 V+ f! B- n) S
$ k; ~; c" T9 e& W" f安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。 k0 T1 n1 r( Y1 |1 T) b
其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時
* h0 Y9 J! Y* w. q/ Z" I下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:/ r9 ]. [' p8 P! m7 ]/ {
! f% S$ y1 d. d5 a
! z" a9 v9 o; ^( Y$ X- ^8 g$ j; f
) Y5 t( |' ?, ], [9 D. V6 V
參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html
2 q" C3 _1 S8 |: o& m
7 V/ k& M% ~0 Z, |3 E! w4 |& ^/ [: u+ y/ L# j
% u" M& L& A0 Q$ l |