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

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

作者: IT_man    時間: 2015-10-10 10:47
標題: Linux下安装FFmpeg ~1
本帖最後由 IT_man 於 2017-3-28 13:02 編輯   \" S7 R  C6 F5 u' y, M( r- T3 |3 t
2 h3 T: k6 m6 S1 R$ Q% ?; Z( q
FFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等
* L2 |: c7 k% S& u  B- Y2 C% B% ~, V. E
方法一:
* i, _3 C1 q7 \+ H4 c% T
4 p4 y& ]6 A3 }% Q7 B
[安裝]. N% Y* z+ K. f. ?& x6 k4 |
[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz2
! t9 ^- e; M5 o6 B% f- w/ |/ B[/usr/local]#cd ffmpeg-2.5.3+ K2 n- Y1 s& z0 ?2 W8 T# \' N

! o: [9 z0 S2 ]0 f
/ N. M4 G7 V8 @8 q* k) U
安裝yasm# {: |! l7 h: d
ffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。
. p% o' _1 x7 c" h3 G1 c[/usr/local/ffmpeg-2.5.3]#yum -y install yasm& {+ [- k4 ^$ f6 ?3 F. N
或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝
. X; n) _( v2 M7 S. B9 Q[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg
. P* L) K9 N) t2 _其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。2 f' p; f+ Y8 d! A) d
–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。

; \8 C0 I5 k! i* {7 O[/usr/local/ffmpeg-2.5.3]#make     
5 F" a. V) D! @. h( A: s- y2 f[/usr/local/ffmpeg-2.5.3]#make install 2 i( `4 e5 p* l2 J
7 ?) k( }, B, B. X$ C2 K

5 b& d! g* s9 d* f% z# P; r路径處理:

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

不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:
; x: f6 [' O& Z$ A  R[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf
3 v7 R& b! e) X' R5 W) Q) G& uinclude ld.so.conf.d/*.conf
/ u1 m+ ?9 U9 ^5 y
5 l/ \  V1 W. V) K$ d9 T' ~' a4 f於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:3 f7 Q% t3 ]' w) O' L
/usr/local/ffmpeg/lib
8 A7 d* j' Z, F7 E+ n9 ?4 r$ k再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:
& ^2 k2 ]8 o- q6 {* X0 d- E1 J* e; _ldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>
/ Z" ^5 H+ J! Q" I7 tll /usr/lib64/
2 w( @+ f& R; u  f-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2
$ n. c0 |* a3 C  v7 s( T-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.04 r! i8 e( V1 _5 u- \% S1 ?
So:
' r. K2 g  Y& ?# J+ ~( c3 _' Z  Uln -s /usr/lib64/libgd.so.2.0.0   /usr/lib64/libgd.so.2     就解決1 e+ ]2 D+ v: o  I  t
可以 vi /etc/ld.so.cache  看看
/usr/local/ffmpeg/lib 是否已加入 cache中# q. d/ l" ]1 L- A1 [

" Z! o+ u+ S4 |5 F為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下:
/ K% ~/ n+ M2 H0 R1 z

1 s6 p) j$ e' K( p4 i- X! W( N* _! G. s
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg  . " O6 f+ j- e( ~) U
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe . 8 S. u- l2 r7 H+ o& U
sudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver .
# C' A2 t4 c! D  {; g. X5 o1 f/ W7 |$ u: }
另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。
' [2 {, _9 D# s9 F% G. m現在可以在shell中直接輸入ffmpeg執行,結果如下:% B+ I5 M7 G8 @6 J* n
" l( D6 N6 s% L% Q' [4 S) q8 W
" z3 T" N# C9 r2 K: x9 {
[root@CentOS6 bin]# ffmpeg! P2 F: B/ ]- J+ N& R8 O5 G  _
ffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers! J9 W. x& m8 ~6 z9 ]% |5 ^9 \
  built on Oct  9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)
1 v+ [- I  l" H! \. e  configuration: --enable-shared --prefix=/usr/local/ffmpeg/ q: N' T) \  E& |1 {/ _
  libavutil      54.  7.100 / 54.  7.100
# u3 l4 L: U6 q) I6 q  libavcodec     56.  1.100 / 56.  1.100
8 Q+ a' t- l% `- j; c$ {  libavformat    56.  4.100 / 56.  4.100% V1 k1 ~# D: R6 P+ Z
  libavdevice    56.  0.100 / 56.  0.1000 f4 V) @: {; ]! {0 T+ r4 y  u
  libavfilter     5.  1.100 /  5.  1.1004 S0 |" N9 n/ M7 o7 {  \
  libswscale      3.  0.100 /  3.  0.100- ]' ^& x' D4 e& {( u% a8 {
  libswresample   1.  1.100 /  1.  1.100
& q$ b, N/ c& uHyper fast Audio and Video encoder
+ ^$ f0 m, y1 l- f- @+ Z8 pusage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...( k% q- [8 [, c$ X( M- k+ t
Use -h to get full help or, even better, run 'man ffmpeg'

2 A! m! ^, |3 Y( p
, V, h; {7 J) L! }2 s1 Y% n' J+ \% y方法二:. C- k6 Z& P6 D: ]
* _! l/ m/ w2 X- d$ l# h
以 ffmpeginstaller 安裝 ffmpeg 相關套件:
  q  |3 a& h: a. N* D% t; w2 f- _' \$ [! y- T
http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/
  g+ E9 q, a  ~3 u1 s: q
解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為
* i! j, ~0 I  P) N
/tmp/ffmpeginstaller.8.0/
5 d. j0 x7 O' E2 `# n8 ~進去目錄後,下指令以執行
$ G$ C6 H3 h) \4 P& c; M- m5 P) P- ~( I- X! x+ Y& j! e8 S
[root]# ./install
# u/ z. _1 r" S$ X
2 W) S- c; W+ D! t2 H  ?安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。4 Z. y6 g- t( C0 ~( H" ~) c
其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時/ j! N  \" d7 t! S( U# J8 B3 k2 _
下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:8 k9 f2 k$ O- ~

+ N: h- G3 z! j
2 d3 }* O. t5 H) }4 W/ ?0 z  L3 o9 }; G/ R: L: F
參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html
( s) L0 l0 ~8 F3 t
  _7 U2 t" P0 V- Q5 R
! t; u* C3 c- i+ X; F

% L" u0 o2 F% G& e) s" t/ I




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