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

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

作者: IT_man    時間: 2015-10-10 10:47
標題: Linux下安装FFmpeg ~1
本帖最後由 IT_man 於 2017-3-28 13:02 編輯 * t  F- e. v0 p) J7 c# x3 p

- S* D4 @$ c1 Y$ ?0 O* d2 ?FFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等
* C7 {$ ~1 d) ]3 R$ g! e
8 T) g! A. D' |0 v, J$ B. \方法一:
0 K1 C0 n9 P" |- ^
, t4 g$ F$ e0 U% ?- T
[安裝]2 e( h5 d1 n  I: ^  A  I' a5 G
[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz2
. D: X3 N- \8 j* m: a+ n( A) i. j[/usr/local]#cd ffmpeg-2.5.3
8 Z* b, \% o3 x/ \  N9 v. e- D6 [$ [) ?) A4 t/ i

* S) [9 w& |* S" K% U安裝yasm
+ F% }+ K- I  P: g) `ffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。. E+ ], N+ p0 w- ]
[/usr/local/ffmpeg-2.5.3]#yum -y install yasm4 ~) M  I3 D& N; A" W
或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝
+ A3 w, W- {& Q) v0 m' g! G[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg
+ K) C0 G! _6 n8 I- |其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。
- m! O  N, H3 R- [–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。
4 E$ u( L# a, Q& `8 b) [1 R* K
[/usr/local/ffmpeg-2.5.3]#make     3 X4 y2 Y+ v: Q, `5 ^0 w# p
[/usr/local/ffmpeg-2.5.3]#make install   Q1 q3 g2 R1 i6 Q: m

0 `+ N8 G( X8 |% z& X: Q" X

; Q/ ~2 L) h5 x, s4 p* w路径處理:

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

不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:) e# F9 v9 H  }" e8 S2 m
[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf
# ?% j+ ^/ P- j9 }& einclude ld.so.conf.d/*.conf
6 Q- h0 f# B  w& j
" {8 S5 {; C+ x" q; J6 {於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:4 e0 C- o4 u0 N
/usr/local/ffmpeg/lib; s# }. ?7 R$ e7 \
再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:! ^5 p( \- I9 L7 a4 v1 ^( y
ldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>7 g9 Q9 c4 _4 j0 D: H$ b- P5 i* `* ~
ll /usr/lib64/
. a7 c1 S9 i" P( }6 d! o$ L-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.22 I/ f$ O) _. I% D  |0 k0 _
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0( R, i! H5 N: U
So:9 G& G- ]% h) ?* _+ Q+ F
ln -s /usr/lib64/libgd.so.2.0.0   /usr/lib64/libgd.so.2     就解決
# @5 h7 K& L6 O% @  H0 s5 ]可以 vi /etc/ld.so.cache  看看
/usr/local/ffmpeg/lib 是否已加入 cache中
5 F' q# h! l! n) P! D; I8 C# A# ?- s0 p' y6 I4 \4 i
為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下:
" Q3 n" T! d/ }# w8 x/ Y! C) z& R
3 m$ W$ a0 r9 b/ W9 i: x
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg  .
7 v4 z0 ]4 t" U# G5 E  {2 e. R* b4 N
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe .
4 [/ M7 `+ x- V" j8 ], `
sudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver .
0 l' ~% Q1 |9 c
2 g/ D0 {. D- {0 f7 {. [/ R另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。2 R5 u# j7 D% O6 }- f/ a2 [- n1 _5 ?
現在可以在shell中直接輸入ffmpeg執行,結果如下:; g4 y9 L" S* y+ m, K
9 R& X3 k& s# Q  F. l; O2 q9 ~8 _

" o: e: W/ c2 \- I% V[root@CentOS6 bin]# ffmpeg
. N+ D+ W6 B$ Nffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers
# Z0 I" c) p4 }8 u8 N1 Z2 G  built on Oct  9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)* G! m: g; G: \: @
  configuration: --enable-shared --prefix=/usr/local/ffmpeg: A) {* J2 V" b2 Z  e% y
  libavutil      54.  7.100 / 54.  7.100
! ^$ a6 I( n3 O* q% v% t7 k8 r) h8 G9 K  libavcodec     56.  1.100 / 56.  1.100% v9 C- w( n! ]5 V
  libavformat    56.  4.100 / 56.  4.100
: A* e# |- c' H$ r" {. g$ M0 M  libavdevice    56.  0.100 / 56.  0.100( G' W+ U6 \: m& y) J: Q
  libavfilter     5.  1.100 /  5.  1.1007 {4 Y. |) x! ^& C2 t! R+ Z
  libswscale      3.  0.100 /  3.  0.1001 x) }5 X& v' T
  libswresample   1.  1.100 /  1.  1.100
/ h$ u4 J2 ?" |# }Hyper fast Audio and Video encoder
5 s+ i, d# P( C8 G: }4 c, f: @! ^usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
' v/ {% U- b+ R8 qUse -h to get full help or, even better, run 'man ffmpeg'
) |! Q! K/ z, Z1 O) R/ O

- S- {# c- Q4 c. t( h# ~方法二:2 }6 a0 {$ r5 ]' ~, I% k
' D' G! ~. G0 N" q7 n3 d) `7 F
以 ffmpeginstaller 安裝 ffmpeg 相關套件:* R4 W' O' {( c6 m5 _: `  v

9 i6 A( ?* o& z; C& Q
http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/- k2 M7 X$ ^/ z) Q8 g. k4 U
解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為
! H$ ?' G6 j* Z. I( ?/ \
/tmp/ffmpeginstaller.8.0/9 m( h' B2 ~" g
進去目錄後,下指令以執行, Y; t$ u  u# X7 s/ `, C. J
) |- X5 n; x9 H4 g2 X! \
[root]# ./install
4 Z5 K; F4 L- i8 O. f. h2 y" G* t7 ^/ k4 j, A. j- ?
安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。
0 ?6 u5 D5 o; C3 i: u/ e其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時( m4 a+ q# @2 ^. d# W) o/ P
下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:
6 R& X9 e; c* S8 u* D6 h$ Z2 b: `; h
2 m0 z1 s& m# x* s. I

  l7 P, `: Y" h( F4 _+ ?4 t4 ?1 T參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html/ o( @0 C0 u! g- K

* Q: O9 E2 W9 B6 k3 j& A# t* K2 k/ t# |2 V9 ?" P* o

, m! K2 [$ p( Z- N




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