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

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

作者: IT_man    時間: 2015-10-10 10:47
標題: Linux下安装FFmpeg ~1
本帖最後由 IT_man 於 2017-3-28 13:02 編輯 9 |% }$ \8 d8 H

: ]; Z; ?9 C* Q$ E. R! a# E; XFFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等! q; _$ g+ J% j, `0 m2 O
2 T9 l( I7 a7 _. Z: i4 b
方法一:  n* D1 ~/ x( z8 S1 I2 z  ~
' q( A! D. {& v  z
[安裝]2 ^$ l, t9 j8 f( V, j
[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz2
: f+ m" o( ]% d  o! K8 c3 w[/usr/local]#cd ffmpeg-2.5.32 v  j1 J9 v  _2 ]: [
- U0 e, ?$ p  x1 Q& o

4 g4 X; p9 v$ z( q5 ~4 n  V, r安裝yasm
" [0 o6 ?' C! K5 h" qffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。: i) d/ ?4 E- d! w' w
[/usr/local/ffmpeg-2.5.3]#yum -y install yasm
. T0 l0 Z: {2 g6 _2 i  n4 w$ L或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝: P% g( `$ k6 o0 O8 H& M' X' \4 Y
[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg
/ q4 Q, U% K% _+ [. R其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。% e1 f' O: U* T% E* _! `2 R: X5 M
–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。

# S8 w  |& Q: f8 d[/usr/local/ffmpeg-2.5.3]#make     
# G; W; F; h2 D2 u+ t9 V[/usr/local/ffmpeg-2.5.3]#make install
3 \* H1 h4 w2 M% l; W9 r
/ s. k7 P" I+ Y7 T% [9 B& V) h
) L3 D) _1 [: ~3 d9 [; d
路径處理:

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

不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:
+ X8 N) I3 D; y5 j5 H[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf
: I0 k* h# l* o" Linclude ld.so.conf.d/*.conf6 d) |, h, ~! @+ Q/ B

% s- f; h; b1 D+ \4 U於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:/ H0 a6 n3 h6 |( w
/usr/local/ffmpeg/lib1 X2 S( y2 F. `1 N+ q! f
再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:
; p* s+ _" d6 o% J/ B3 @0 E9 ildconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>
4 f' a. C# F2 I* k( Gll /usr/lib64/( q, V% s. ~# X9 D) {7 H# ]
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.22 r3 g4 N  r6 @9 b9 |
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0
" _; \& \" @8 p9 Y) t( u0 ~+ X: YSo:
% p2 z. Y" C, V, y! Zln -s /usr/lib64/libgd.so.2.0.0   /usr/lib64/libgd.so.2     就解決, h9 n& i4 P! @# Z8 Y) u( m- G
可以 vi /etc/ld.so.cache  看看
/usr/local/ffmpeg/lib 是否已加入 cache中
4 f* W# d& d: e9 H$ ]8 ^, _( ?8 z8 B5 ?) O, Q5 U
為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下:
4 C- P' u) T6 r. q

9 {0 L* {; ]& P/ `9 e8 Y5 g5 G1 }
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg  . 9 P3 f& B5 q1 _! d+ N' s2 _
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe .
0 V" N% m) o9 f6 p* _
sudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver .
, B0 r% U) @# l) z( {# J+ l8 i& x; }+ {9 F
另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。% U8 t0 H- q: V. `, S+ ?/ F4 X
現在可以在shell中直接輸入ffmpeg執行,結果如下:
; C! C' I6 M7 g7 o: k: d( F# E
- M" l/ k8 n) x! E6 }) R
$ i: ]) V2 V9 Z( O# r: u8 ]" _
[root@CentOS6 bin]# ffmpeg  o: S% V+ Z- C7 q
ffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers  p) ~$ U' f; v7 g6 ]0 q
  built on Oct  9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)
6 Y# K% n, R! N, q' l  configuration: --enable-shared --prefix=/usr/local/ffmpeg
& \+ s: _* p8 |$ K+ b" J; |; s, ^  libavutil      54.  7.100 / 54.  7.1006 x& Q7 `3 v, N* I  q5 @: r7 @0 ~
  libavcodec     56.  1.100 / 56.  1.1007 W( |7 L3 |( k' j: g! K
  libavformat    56.  4.100 / 56.  4.1000 d( {, N& ~. [' l6 ?& t
  libavdevice    56.  0.100 / 56.  0.100; ^, T; |9 F( a! u$ L
  libavfilter     5.  1.100 /  5.  1.100
  q* W: _. N  W  libswscale      3.  0.100 /  3.  0.1008 l/ q/ Z- z1 z; Q; H$ x0 V1 y
  libswresample   1.  1.100 /  1.  1.100
- |4 w' u$ A& ?# r6 yHyper fast Audio and Video encoder( d) F+ I' I% p3 M$ J+ E' C
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
0 u; K# y6 @$ XUse -h to get full help or, even better, run 'man ffmpeg'

9 S6 v7 C" G0 r% ^" Y
+ S) [. _/ [9 P$ h3 A) ~, q方法二:, A5 o1 h2 L7 C$ p0 B0 o

3 w) D" d! a5 ~5 N7 h以 ffmpeginstaller 安裝 ffmpeg 相關套件:4 O8 _. b+ w$ Z* `+ X/ ^

( C2 t' G- K2 L. U. h9 |
http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/
  R0 O/ ?2 n8 v. K. q$ A( p% S( e
解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為5 j, |* j7 `! p) N4 ]: e/ s
/tmp/ffmpeginstaller.8.0/
% M2 C; j9 q1 H進去目錄後,下指令以執行5 h( m# [5 U5 d3 @1 w; x% e* h/ h

8 y. r% j$ K& o: N+ |" A[root]# ./install3 h" G" V8 `6 }

2 b* G7 f: g) J+ [7 V; j! _  @安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。
; o+ W! Z9 k# l9 G# o- C其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時
! z; S- q  T7 w; ?% x+ [( _
下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:% ]& F/ H1 }# d/ p! |7 E' {! p7 \
/ T  j5 ]2 d  G$ A5 d% X
; M8 ~) n% u" ~8 y; A6 z) d( Q

6 G! i2 R9 W& L參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html
+ G1 X0 ~' ]  ^3 [* s) I; g
* Q+ H# y& i" x1 W# o( b

2 K! p# [+ X( p/ k# Z0 n( U
- y+ O: t6 h% R4 w+ J# \6 R0 f




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