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

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

作者: IT_man    時間: 2015-10-10 10:47
標題: Linux下安装FFmpeg ~1
本帖最後由 IT_man 於 2017-3-28 13:02 編輯 ; j$ x* F5 y, t6 @$ {0 K

! c) \; P' D8 OFFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等
2 g* C% f' i( i- x7 V+ {" Z( Q( H( ]8 ?* O) n
方法一:( `3 i) s1 A9 [0 {0 g. q! e
! a4 ~$ F$ B& n/ A1 P) Q' {# C
[安裝]' }  t  V0 j: J  H5 B
[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz2) s6 B: E5 X. g+ V6 @
[/usr/local]#cd ffmpeg-2.5.3
1 Q' O! S0 P; ~: ^: ?) S' l- f) ]8 o  K- t

5 G8 S7 `, k5 I: m" Q! z安裝yasm1 ~; ]; v5 ]* }$ w
ffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。* Q) w6 Y, I( v% L  Y" ~
[/usr/local/ffmpeg-2.5.3]#yum -y install yasm/ T7 A2 `/ t& d4 b# |- e$ c
或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝
1 L% G8 |8 f5 A; d$ [[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg
& K' I% _* N+ r) s2 _5 }  Q- l其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。
2 k! o3 s8 c9 x5 W–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。

5 J  x, Y2 M# _& S! C& G[/usr/local/ffmpeg-2.5.3]#make     
' D2 D- b0 [5 G1 a( s[/usr/local/ffmpeg-2.5.3]#make install , B) V& f3 t7 `) o8 R$ v- K2 n; m
/ R1 I( A7 g9 I! Y2 E2 v- E1 j
7 o% U- ^* T! n  `6 d( G: D  k
路径處理:

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

不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:
# x& S( @+ E% e+ p& T[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf3 F& V6 s1 q: A0 s  L) [& @5 h
include ld.so.conf.d/*.conf
  h# A9 Y! p1 k3 i0 s6 G0 i' [: ^2 D5 a+ M5 ^5 Z) t5 f
於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:  W' f  j. Z2 v& D6 w4 @' g3 n
/usr/local/ffmpeg/lib
( c. W$ E+ k8 {9 z! w; f再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:
' K/ _% P  p; {7 }# S' z* Ildconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>
  R3 f% Z- T1 A  Vll /usr/lib64/8 X" C& H2 ]# {) t0 _% [# E, r
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2
6 v8 m+ h1 J7 s( D5 {  N-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0; H( b* E& Q6 ]8 b# y
So:' `0 O( Y5 O: `! d- {
ln -s /usr/lib64/libgd.so.2.0.0   /usr/lib64/libgd.so.2     就解決: W; J& A% z5 {' h
可以 vi /etc/ld.so.cache  看看
/usr/local/ffmpeg/lib 是否已加入 cache中: m7 g5 v$ q- ~8 r

& {6 K4 U, p) M# T4 v3 i+ x1 ?8 a  J為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下:
% e+ N: X3 T  L5 _, t0 k. }

" ]' L! h' R9 q3 [0 r- q
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg  . / s6 F$ r6 {, U& O* m  |+ t
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe .
5 h7 z8 [7 ^4 V  Z2 p
sudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver .
  i! m, a6 w! X8 o# ~9 n, U; ^8 a: J# |; E( u2 j
另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。
- b* z1 `, l- t% [現在可以在shell中直接輸入ffmpeg執行,結果如下:
* D( R6 g7 @/ v! r" K5 m' R  p" w2 }* U& a5 L7 P- p' T
% }9 |+ j0 \0 m# o9 l
[root@CentOS6 bin]# ffmpeg
6 g2 z. A0 _9 x/ mffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers
' C9 |" T7 W: [, g1 E  built on Oct  9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)
9 o" r. t. `# ~. j5 e1 e: Y  configuration: --enable-shared --prefix=/usr/local/ffmpeg  W# a% \. }: x4 a0 e$ }, j
  libavutil      54.  7.100 / 54.  7.1005 T3 H5 S1 O6 Q
  libavcodec     56.  1.100 / 56.  1.100
6 O4 U  A/ K# r  libavformat    56.  4.100 / 56.  4.100
/ {- C& j* L  w( P# |7 I  libavdevice    56.  0.100 / 56.  0.100
  f. ~0 }8 `* @! i% d  libavfilter     5.  1.100 /  5.  1.100
; M  a- ?# i, L$ D  libswscale      3.  0.100 /  3.  0.1003 N' D) t; W, t, D
  libswresample   1.  1.100 /  1.  1.100$ a* w2 X: B: [$ @9 A, N
Hyper fast Audio and Video encoder5 t. M3 T9 l0 X5 v' Y: c+ ?
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...: y+ j# H' O% z, @# K$ }
Use -h to get full help or, even better, run 'man ffmpeg'
1 O# j, m& y& [) p

1 e8 |( |8 u" P0 \+ l) q0 ?方法二:( V( T7 J, u  F; |% j

0 v% s% Q7 d; x以 ffmpeginstaller 安裝 ffmpeg 相關套件:% c% t, ~  S+ c% Q4 [
4 }  e. D, Z' U4 c4 W
http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/4 \5 j, P- J' q; l1 j
解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為# f2 \: |  ]/ O3 G  m+ D
/tmp/ffmpeginstaller.8.0/0 e, R( ]8 {2 Q& @: p8 j$ u/ s7 S
進去目錄後,下指令以執行* L# r" c+ \4 z
( F/ h/ e) \, k7 J8 V
[root]# ./install* R0 }( i/ `: q; H+ J

6 w* p# l1 R/ z& i- C安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。
  {: Q5 g; L8 z2 V其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時
; t6 v& j& @3 f
下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:
- d* a% d! {; X6 J+ q
) p4 y" \8 {' U& I
8 _9 d! |2 l( F) _' r, d, e3 s$ i1 @# I
參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html
7 u, k6 d) H" R/ n; j; y! a2 T# M. u: M

1 {' b! y  Z) L3 O/ g' {; K% _/ B, u$ R3 b" p; `9 G
, z5 b; [' A2 g7 T0 X/ h





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