52AV手機A片王|52AV.ONE

標題: Linux下安装FFmpeg ~1 [打印本頁]

作者: IT_man    時間: 2015-10-10 10:47
標題: Linux下安装FFmpeg ~1
本帖最後由 IT_man 於 2017-3-28 13:02 編輯
8 r; g4 ^: y: V8 ]( ~9 ^% e& z/ R- G* R! F
FFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等
! ]/ m  A9 }" a3 }+ `7 u+ g5 f: ^5 S! D# c
方法一:+ e3 v2 u4 w- T0 K

7 x3 r/ q6 y8 a- \5 B6 ]1 c[安裝]$ v" |( [) {0 `5 ?9 y
[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz24 a$ A4 j7 O: t/ j) e6 f
[/usr/local]#cd ffmpeg-2.5.3
% R" g1 J4 ?' {  K" T! D, h) n7 S9 P% ]/ b

% f2 q4 r3 @, V$ m7 f7 ]! P安裝yasm
" B4 a( G: ~- K) w& K2 nffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。
+ T: b) }7 K6 N) ~+ m! h4 ?[/usr/local/ffmpeg-2.5.3]#yum -y install yasm
3 w4 K9 v0 X2 l或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝  H' e, R# H8 S3 z
[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg
! ~- h( Z# l" ], N# @7 p其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。; U0 u* H" U( a; p1 S; O
–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。

* k8 m0 I9 ~9 `' _2 c$ c[/usr/local/ffmpeg-2.5.3]#make     / p4 D4 l+ Y( T. r+ _% ?; e+ Z
[/usr/local/ffmpeg-2.5.3]#make install ; {/ P& H4 Z) v. p, ?* I

2 s" F" L6 g0 m: A& s% _' `* p

. Z" a! M& e' l' ~, K路径處理:

安裝完成后在/usr/local/ffmpeg產生三個目錄:

不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:- R. M# g! t8 Q8 Y* w
[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf
, K" t0 D/ A% ?7 t( Oinclude ld.so.conf.d/*.conf" o( W- i6 H& Q  t3 t+ J9 B

4 t9 b; f0 p* A0 h/ A" B1 s) i於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:
# H1 q5 l1 j; T+ `" c/usr/local/ffmpeg/lib
5 ]  x/ v" R& [* k" v5 C; P3 q8 F( L再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:! V4 k/ M. a) c
ldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>7 z; A/ l9 W1 V4 S9 g6 O
ll /usr/lib64/$ X5 N) i2 d# V1 O# b2 q- h( T- S
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2
3 {5 C$ j4 \) g. Y5 b-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0
& J/ Y) x1 f5 c" ^, c( G, @8 [So:2 f$ T% }  T$ g7 L9 T8 h% s' E
ln -s /usr/lib64/libgd.so.2.0.0   /usr/lib64/libgd.so.2     就解決
$ l7 {* O  Z5 `3 q' `2 b5 H6 e- c可以 vi /etc/ld.so.cache  看看
/usr/local/ffmpeg/lib 是否已加入 cache中: a" t8 s4 S. d6 l
% B& M8 l$ S0 j* C
為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下:
' a& u/ @% i# k4 e! j
: L8 z- j) q- c& Y$ s, w% L7 `" o$ Z
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg  .
! X$ e, o7 \3 |
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe .
% [( V8 W, c+ v$ i
sudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver . & V- r' f" i( M; I0 f- n
' S! `3 c; _4 F4 D
另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。
) h6 {! e0 w+ z: P0 i' H% u現在可以在shell中直接輸入ffmpeg執行,結果如下:1 F# S4 U* s* y: S+ c5 @3 U3 O. q
* P8 w. m$ ~3 o3 L: _
5 E8 ]# u% P- `: b, }
[root@CentOS6 bin]# ffmpeg& C% V7 s% ?: S/ l1 j0 F% l7 u
ffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers0 V- t) h+ e3 f3 t6 a( S: I5 F4 V
  built on Oct  9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)2 O8 K. j* ?0 |# V# v
  configuration: --enable-shared --prefix=/usr/local/ffmpeg
# x. A& O4 t3 f  libavutil      54.  7.100 / 54.  7.1008 C) E* l  q' [4 {& ]
  libavcodec     56.  1.100 / 56.  1.100
* C- ?. S6 b  b* p6 Z, w' D0 g0 y  libavformat    56.  4.100 / 56.  4.100
( y6 k- O8 k/ f1 i5 I: L  libavdevice    56.  0.100 / 56.  0.1004 {  ]1 N# F) X/ U2 {5 {( r* |
  libavfilter     5.  1.100 /  5.  1.100# Y: s6 d+ n/ R! i
  libswscale      3.  0.100 /  3.  0.100/ \1 y- {6 n. g' h2 C+ b; d
  libswresample   1.  1.100 /  1.  1.100% d  r' y9 P! W3 t0 X8 {7 D
Hyper fast Audio and Video encoder
# e0 @# Q! ^) I0 X5 _  Yusage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...- Q6 r9 U$ ^7 x" {9 u' G6 W
Use -h to get full help or, even better, run 'man ffmpeg'
( J9 o$ f' R9 Z$ G

$ r+ E1 q% ~5 Q& d% b. {方法二:) \2 A% _* ]+ r. Q; ^- M! H+ A

( T5 Y% a1 n4 U2 j) t8 g, t* ~4 u1 u以 ffmpeginstaller 安裝 ffmpeg 相關套件:2 r/ t' D: p# h& P

% t( f5 z! L- x2 _, A9 \# w
http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/
# p% k  M1 L6 g) R$ i- U# C" v7 I
解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為
) e' ?* x, q: Q  j: R3 L
/tmp/ffmpeginstaller.8.0/- y. I8 o' H' i& Q2 e, N1 j
進去目錄後,下指令以執行* i0 \2 {+ w/ j% E8 r" ^; A

9 T9 W3 |6 G2 ~* o[root]# ./install( z# Z. x! }3 F  O$ t. ?# Q
! J; B2 }5 @0 r9 ~
安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。+ M, \, i1 F; x# V
其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時
( M7 \" U1 T! b- ?% N% {" \9 N' _
下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:" S4 g$ c  t$ i# Y
& U7 Y* t- a5 N+ O0 P' F+ G
5 m; J3 }0 n  x" D9 S0 b: I+ k2 q& z. V

- A1 z& g, @4 t6 d& R參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html/ \( X. H8 U/ s$ Y; B
4 V7 Z3 |  i$ z* t8 P7 ^

5 A- i" \8 I% |0 N$ _5 N3 u) b, N, J8 Q1 u% `





歡迎光臨 52AV手機A片王|52AV.ONE (https://www.itech.casa/) Powered by Discuz! X3.2