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

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

作者: IT_man    時間: 2015-10-10 10:47
標題: Linux下安装FFmpeg ~1
本帖最後由 IT_man 於 2017-3-28 13:02 編輯 ' R! F0 L2 @3 a! z0 C

6 V7 K. o' a$ X9 V& [FFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等
4 C% D% d$ M2 `  H. f: @& h8 |2 ?- J9 j5 |% d& S7 j* a
方法一:$ C: }9 c; P' X, y$ W) s" K7 N' J! l
7 E( ~9 `; E5 @8 m
[安裝]2 b! [5 d% w" K- A- [- Z
[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz2
! ^8 I) t3 B4 X1 l7 w$ K' g[/usr/local]#cd ffmpeg-2.5.3( l: e$ k" p) _( [% D

- Y2 G( T  b0 \9 \  J

8 I* q( Q+ i  c安裝yasm+ x% l1 \2 b/ g0 U& d. e
ffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。- N! g* k- v, E5 g1 O, r9 j' n/ }
[/usr/local/ffmpeg-2.5.3]#yum -y install yasm
0 Z% L$ s* G4 o8 B1 V或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝& v% v" f7 }% S1 {0 ]
[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg7 L8 V3 o+ }8 \  _* W' r  u  w
其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。  R" S; K. c8 d( m0 n- A: N: ^. f
–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。

! ^9 X  o: n3 n5 [8 ~% ]* G9 n[/usr/local/ffmpeg-2.5.3]#make     ; ?$ M' H. o) A7 B: a. F
[/usr/local/ffmpeg-2.5.3]#make install 8 e# b3 c0 V+ `, ]6 j9 w
/ h- R& T! y. D( X1 I2 L) S* O
5 o8 r+ A! j4 X5 M1 M
路径處理:

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

不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:
$ B7 W" m$ }( J' T1 p. B% \[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf
5 L/ G7 e* z* }include ld.so.conf.d/*.conf
3 W4 k1 [# X! h2 `. I% G' j$ F. h" N: a! f! X1 w+ `; A2 B9 G
於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:6 S! s- k3 R& u+ T) S) L1 A
/usr/local/ffmpeg/lib
$ D) S; z- ?5 i# `. D( j/ Y再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:5 P2 D; X1 P( c' C" W9 f2 W! E
ldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>
2 b" C% Q' W+ d  wll /usr/lib64/
0 @6 T6 _: U9 b% q* B2 l  r-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2* T. o2 ?3 u. w' U7 _9 j0 k
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0
2 j6 L; x) c" x' M: i$ Q& m% q" ]So:
* `% N. T' t0 L$ [/ Z0 t! \2 Xln -s /usr/lib64/libgd.so.2.0.0   /usr/lib64/libgd.so.2     就解決
- l- J  R# _% V* [, A+ ]9 @可以 vi /etc/ld.so.cache  看看
/usr/local/ffmpeg/lib 是否已加入 cache中
2 {0 \: f+ D0 o- _5 Z4 H
3 r& D& \  o+ j  g為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下:
5 u  l- ^  E: N7 j, x' e

* d$ g' I1 m2 r
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg  . $ h0 d5 _7 b; i' M. [
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe . # C$ d; Z. }. k" q8 k: ~
sudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver . / [' L* ?6 }( j3 q5 A, i

# ]* c1 x! J2 V1 G9 ^3 @/ |  g另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。
. @6 E! N7 \3 C' A4 t, ^現在可以在shell中直接輸入ffmpeg執行,結果如下:% I& u- N& d1 T  Z5 o

* g% K6 @/ |( E) V5 l0 y
" [* B1 l' l% o& n
[root@CentOS6 bin]# ffmpeg
# M. s+ [+ \/ j2 Rffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers
2 V* R2 c7 y( }9 N& S  built on Oct  9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)6 L- C  E+ ?6 p, n0 a$ S
  configuration: --enable-shared --prefix=/usr/local/ffmpeg7 x0 f7 T9 k$ v/ a3 B
  libavutil      54.  7.100 / 54.  7.1004 V6 A2 [6 ^' X
  libavcodec     56.  1.100 / 56.  1.1004 k9 W& Q3 x" E& ]6 X9 L, F1 N' y
  libavformat    56.  4.100 / 56.  4.1003 L3 Z$ S  O0 B& ]# \  V
  libavdevice    56.  0.100 / 56.  0.1005 |8 Y" ^8 A+ g* `/ u8 ~
  libavfilter     5.  1.100 /  5.  1.1007 {  P& z! @$ f+ e' ?6 E
  libswscale      3.  0.100 /  3.  0.100
# W( f& L5 q* ?6 m6 l; B7 ]) T; p  libswresample   1.  1.100 /  1.  1.100
0 E8 ]4 t0 H: J* @" R$ j; xHyper fast Audio and Video encoder
- o4 L, e9 Y, k8 M2 \) @usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}.../ J. t9 f3 E# ^; {1 H/ R! O) L
Use -h to get full help or, even better, run 'man ffmpeg'
4 x+ K5 B; q5 e! F4 K" ^! v

+ k5 h$ L, O7 H+ u7 ^; M$ \方法二:* d, j3 d6 I; s5 e5 l
, R5 R1 b5 J1 ?/ t, f
以 ffmpeginstaller 安裝 ffmpeg 相關套件:
1 j! e) V. q( v1 [$ L2 J' h6 J" i, x, L: Y4 E/ A/ d- w/ G
http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/
  z4 {7 W, N* k, b( _
解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為
1 Y% k/ d$ z% n0 C
/tmp/ffmpeginstaller.8.0/
2 c) r" f. ~7 l" q7 @7 P進去目錄後,下指令以執行
4 f! Q2 r1 R  k+ b6 ^- d) V
8 m: }2 |  i; F2 h* H: `- d" J9 s[root]# ./install2 D0 I7 j# Y6 J

- S9 G4 c* b$ {+ ~安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。; c% D0 h" Z9 K5 U" f
其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時: E: j7 S& b# }9 u4 z
下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:
$ S3 y0 b: m4 [3 \! I
% L+ J2 n0 ^  G& R8 j7 [& t ' n& l  q7 u) p5 e% E1 o+ \  L; t
! m+ D4 l4 C. Q4 D6 V
參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html
& I: y" Y& v( P, C8 v
4 T# Z* I8 e' C  ^

) v* _5 h5 t. U% Y
) [5 J3 B- d5 C: }0 V




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