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

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

作者: IT_man    時間: 2015-10-10 10:47
標題: Linux下安装FFmpeg ~1
本帖最後由 IT_man 於 2017-3-28 13:02 編輯
4 [" E( D/ D1 E. y* y+ ~  W& f+ M- ^* b" D9 D' i
FFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等
" w$ g  y+ s  M; Q, [5 N
7 O* n+ e$ S1 f方法一:; h" x9 L3 Y2 W
8 z- c* g3 R7 V( o& A! I
[安裝]
9 C& N5 H  E) ?7 k! ]% ]' J[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz2. a2 h  z- q  R$ Y
[/usr/local]#cd ffmpeg-2.5.3
! h1 g. y/ I+ D! E& A
$ {9 r2 _" P+ s

1 Y" Z5 W0 W1 k9 B8 d4 o# |安裝yasm
, [$ h2 d, Q1 e( v2 y, ]ffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。* ~& g8 B9 J3 f7 w, }
[/usr/local/ffmpeg-2.5.3]#yum -y install yasm
/ i2 D" f6 q0 p3 f) B或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝$ z' z5 A5 S' N" ]2 P0 c- w7 ?
[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg' t4 p0 C+ b+ T$ H7 F
其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。  i$ w+ _+ {; r; y$ d* r
–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。

  F$ ]* @6 o2 i[/usr/local/ffmpeg-2.5.3]#make     * F& }% e8 V, h; F- P- A+ L
[/usr/local/ffmpeg-2.5.3]#make install ) a# ~4 B: v2 \+ f4 s6 e7 ^5 C7 r1 S

0 A& h. L8 s# I# u- L/ c

1 y+ A$ a5 V6 d# l: M3 E路径處理:

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

不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:
' H- ^! e) p9 `; D[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf; w# |! X4 }' S: b& K! \* M
include ld.so.conf.d/*.conf- k% l0 A9 U$ N6 q  m
; d/ j* n" x1 p/ N
於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:% ~, X; D  t. E5 g" n: l' }6 |
/usr/local/ffmpeg/lib. m' r7 J* |! T* ^  i! Y1 l
再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:
% D7 p  R0 e8 @# G/ kldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>. O( V; |/ r+ q- [/ o" Z
ll /usr/lib64/# E& l: }# q( o8 v2 x, }5 J
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2
" U" J* l. N: l! p; `-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0
: J) N* W5 d% ]1 q% g! ISo:
" m/ u+ \- @8 y) B( bln -s /usr/lib64/libgd.so.2.0.0   /usr/lib64/libgd.so.2     就解決
+ [, ~/ ?+ q. G2 D' Q) ^! L0 Y2 U; @可以 vi /etc/ld.so.cache  看看
/usr/local/ffmpeg/lib 是否已加入 cache中$ Y# u6 u$ Z* K) ~- J
0 [9 O  n2 A8 }8 f
為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下: " a0 x# o# Q# N9 f- |# S9 l

+ K$ O- T! n& u7 Q
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg  .
1 {* i! p, n' i& E# N, F/ c
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe .
) ~$ B- b: Y8 v2 b2 Z
sudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver . " b9 D6 I2 T8 w+ f: I6 A) i
" H+ O$ ?# f2 `. s; T. p7 Q* O2 N
另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。" k" b+ o" u) H
現在可以在shell中直接輸入ffmpeg執行,結果如下:: C: k0 \4 }. ]4 R2 |) @+ B
2 u3 v1 V- D+ z+ M7 M+ C
( i" n& z5 N  s' N0 N
[root@CentOS6 bin]# ffmpeg
* J/ k- ~+ T# V5 _0 q' ?ffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers
0 B6 ]" N0 i1 a3 O* R. k1 y; K  built on Oct  9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)
  j4 l( i/ X+ R2 o9 h  configuration: --enable-shared --prefix=/usr/local/ffmpeg
' Z" E6 U5 y; s* w. Z) m, w  libavutil      54.  7.100 / 54.  7.100$ c( ]* ~. I: `4 O6 B% S' r9 z
  libavcodec     56.  1.100 / 56.  1.100
1 x* X+ j& a- J4 E6 ]  {  libavformat    56.  4.100 / 56.  4.100, N2 l2 Y5 s1 T; V5 M4 S2 P6 o
  libavdevice    56.  0.100 / 56.  0.100; ~- n. V* u$ W; R
  libavfilter     5.  1.100 /  5.  1.100. H5 G. V2 g$ {4 v* R" ]
  libswscale      3.  0.100 /  3.  0.100
8 \/ ~7 u: N& }4 h) e% e2 \1 R+ Z# f  libswresample   1.  1.100 /  1.  1.100! h+ a7 u$ w7 L/ C' }7 L7 R
Hyper fast Audio and Video encoder
- i$ R' j6 v7 E- e* @+ E& Jusage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
, ^+ q5 z1 |( Q0 f/ ]# u- bUse -h to get full help or, even better, run 'man ffmpeg'
# [) P- p- A! _
1 a. b+ X' Z' ^' k% b3 f
方法二:$ x4 v2 O1 S! M2 W+ q( u" \$ q; p
7 B( H7 ~5 J8 m5 {3 Q; i3 p- P
以 ffmpeginstaller 安裝 ffmpeg 相關套件:. K3 f$ C: t& u! \, b9 \3 _* ~- V
1 A/ F  C2 k) J2 w% ~
http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/; A! j! q# q) H. @
解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為/ b) E+ V% {; U( ?
/tmp/ffmpeginstaller.8.0/
& x7 ~7 d- v3 H  [進去目錄後,下指令以執行7 a  |8 K7 K+ a; E( E1 W7 _

" Y. p) u1 w- ^# f9 I8 m[root]# ./install
% l8 O3 J% N. h& b& a3 {& f3 Z0 V5 z6 x( R1 e7 Y
安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。# S  w. [' @; `5 j, w
其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時  h# {, a3 |" v
下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:; n( |$ C0 o7 D8 p

" h; y/ V! A* a% M
: `  ?" J4 r: a# C) b" U, `, J4 Y" U- ^
參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html
, _" b+ W8 x9 Q( ~

  D+ X) q3 Q  v- u0 v! P
, q& R" Q0 U/ Q& \" ?4 L# Z, _% r7 Q2 Q1 Y7 a# Q





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