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

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

作者: IT_man    時間: 2015-10-10 10:47
標題: Linux下安装FFmpeg ~1
本帖最後由 IT_man 於 2017-3-28 13:02 編輯
  `, x8 Q3 Q: i( d8 U+ b2 n6 s; ?  {) H! u+ Z
FFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等; j8 ~- m) L  M- @

7 d- E% _8 X0 m' h  @) T( ]3 u方法一:) @; l& u: L& `$ N  D" e
) J- y! z' H( n" ]6 P5 }* L1 Y$ N
[安裝]" P3 g/ ^1 T8 z2 n! w: P
[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz2! @% X. w% I: r" U6 y% o
[/usr/local]#cd ffmpeg-2.5.3
3 r7 x% |( g! @# \2 |- c# }  v- D! x$ L- @3 D( e6 r

) G  p8 L: g7 ~& u5 I安裝yasm! A% k: W1 w3 ]8 _0 j/ O* N3 I
ffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。
) n8 m0 Q9 _1 E. T) E0 T1 Z/ _6 i- A[/usr/local/ffmpeg-2.5.3]#yum -y install yasm
3 q: H) v  I( g8 C或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝1 J( n5 z2 y$ E" z' b
[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg
4 z5 Y+ b- S. Y, M( l( }7 W; V其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。) ~5 i% T! N- l% s" z2 V) X  n
–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。

5 K% G% r6 [! A) ][/usr/local/ffmpeg-2.5.3]#make     $ w' O% ^7 W& u9 B5 ]/ c5 b3 H& q
[/usr/local/ffmpeg-2.5.3]#make install
" l" C7 Y/ _2 l, g+ T8 Q9 l/ c  T. w. @9 a; {
; v! ~$ z# O( x- ~8 R1 m# F
路径處理:

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

不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:. r; r$ A: U8 w; E
[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf
7 D4 p) }- f6 q' [/ O" Vinclude ld.so.conf.d/*.conf
. a% X  j2 \5 Z5 x( s. ?$ g( W, ^0 u* `. `' t% l) ~2 z* F# G
於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:. K+ r' z( V0 Y8 I, G" m, v
/usr/local/ffmpeg/lib$ P: l3 R, c+ s# |2 R9 r
再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:
8 ~: E4 T+ L# x7 S& V, w, S$ Tldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>+ ?7 a4 P3 q9 m  b" U
ll /usr/lib64/
3 P2 Q7 _  `+ K5 r4 T* \-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2
  Q# e' ^% S1 R& y1 C-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0) {. R, I: g; w
So:
3 W9 u4 p0 x8 D/ vln -s /usr/lib64/libgd.so.2.0.0   /usr/lib64/libgd.so.2     就解決) g: n4 T$ k( h* `
可以 vi /etc/ld.so.cache  看看
/usr/local/ffmpeg/lib 是否已加入 cache中
+ b( d% ^' K0 E# \' {
3 g- W; {) x5 D- z2 q0 `4 d/ o. f0 f為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下:
0 C% ^6 C: q; C; Y* B' b

" R: k/ ?, h8 A+ L! I
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg  .
$ z* M4 f& m4 h: o
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe .
5 J( V& b  B4 R: i7 C8 Y
sudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver . ) U8 K8 z# U- s4 |

! Q9 {/ d  l; \0 T+ i7 c另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。
. m. v+ e+ t2 [9 o2 R- C$ e5 `5 M現在可以在shell中直接輸入ffmpeg執行,結果如下:
+ c' t2 H" x+ N2 ?" b+ t
) f; `& I9 W5 L- x0 A  V: ~6 d

( r8 v/ y6 o- |[root@CentOS6 bin]# ffmpeg* R* ~+ z7 D6 s7 T" O: h
ffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers6 a2 v  ^  ]* W! |6 q1 [- H9 a
  built on Oct  9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)3 \$ V+ v7 g  d& L" B) J- g
  configuration: --enable-shared --prefix=/usr/local/ffmpeg
* O+ z3 r2 C! f# `) G  libavutil      54.  7.100 / 54.  7.100
! l% V( S! g/ [  X% I1 F  libavcodec     56.  1.100 / 56.  1.1000 c/ W5 r/ D# y1 E4 n9 @: ?
  libavformat    56.  4.100 / 56.  4.1006 u! t6 z$ E9 i
  libavdevice    56.  0.100 / 56.  0.100
. Y/ M" k" u/ p( N9 J* e) u  libavfilter     5.  1.100 /  5.  1.100
2 V! K, {% I  _6 m; Q7 {  libswscale      3.  0.100 /  3.  0.100
, z8 E$ E! W' ~4 G9 H  libswresample   1.  1.100 /  1.  1.100! B( }6 J8 U" o( B9 M8 M
Hyper fast Audio and Video encoder
$ V& }2 b+ [  V# R# z8 susage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
$ V) P5 ?3 o0 f6 N0 q5 W( {8 K6 [, nUse -h to get full help or, even better, run 'man ffmpeg'

  ?) `8 V' s; s$ }' u' _( ^$ }' N7 i4 q6 R* S" H
方法二:
1 `6 `) E$ J& I0 ]
+ U# K7 O: p) Y! N- H8 X以 ffmpeginstaller 安裝 ffmpeg 相關套件:
) X! X3 r* A% s1 ]& E3 s2 [: ?
# H% [& n' g0 J" X! I- T
http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/
) [3 j( R2 d9 v3 \$ o" c+ Q
解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為; W* W$ J4 e7 M$ I! H
/tmp/ffmpeginstaller.8.0/) H1 B( x. H2 T" ~7 y* S! G8 b
進去目錄後,下指令以執行& M$ u0 U+ F, {1 d2 {9 Z1 L/ G6 \

- c, P7 x8 i* Y# ?+ e" z3 @6 m[root]# ./install: d: ?6 W* H/ m+ _4 d
1 f& I& V$ `0 N) Q
安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。- I; k8 @2 \2 @5 x
其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時
$ Z8 }5 {+ f( B
下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:
' Z+ D' v. Y! r. R! @6 o5 r  O% w9 {$ V' K
2 r2 Y9 D7 Y3 t6 f

" h* M# M0 {" B) h" M7 q5 |( k參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html
/ Q9 p( b) ^$ \/ e2 [7 s5 `8 L
  h; q% R) o; X  Z
7 Y) ^. N# L7 {

! \$ ~7 n6 @" A% ^+ i4 w( ^) `




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