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

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

作者: IT_man    時間: 2015-10-10 10:47
標題: Linux下安装FFmpeg ~1
本帖最後由 IT_man 於 2017-3-28 13:02 編輯 5 b2 k  i  P5 S/ R% h; ?2 g- e! p6 m6 |

- E3 ?  S5 ~0 y% ~0 pFFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等
  [+ ^$ g6 p# `/ y8 f& \4 }" u
2 l0 T2 q* C; Y) d7 L- Z( G) t方法一:
$ H1 q- W5 h/ g9 R. A  `

8 J( }+ G7 [9 [- m9 o" x9 p[安裝]
5 U+ o* y/ q/ n[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz2
& h, l  P7 i. }' T: H1 `[/usr/local]#cd ffmpeg-2.5.3, A2 z% _' `$ z
+ R5 f* s' b3 i* a

2 |' T& B* H& y* Q4 n6 r6 G安裝yasm6 n7 Z) t7 X9 C* J7 z9 L% _
ffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。) O" D: ]2 L0 o8 r' ]1 l
[/usr/local/ffmpeg-2.5.3]#yum -y install yasm
1 h, \0 {7 K, g7 {. e: A: U或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝% J: E# s: B" i9 W
[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg: S( M4 R1 e' O1 @9 x3 H
其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。
8 T' K6 K/ x; r# Y2 {–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。
. Y, Z3 a# i* [8 k; v. ^
[/usr/local/ffmpeg-2.5.3]#make       v8 t, Y7 L) }' S" G7 j
[/usr/local/ffmpeg-2.5.3]#make install
- g' p, }- W$ v/ A+ \4 w. Y* p# L5 X3 K) h. @# o3 j+ j
& Z+ w9 ^* [! p# V
路径處理:

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

不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:+ A+ _0 t. B( r. X/ ~. r
[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf
$ Q5 ]$ [7 D; \8 G6 W2 zinclude ld.so.conf.d/*.conf
; a3 J4 ^8 ], _2 r
" H4 h3 ~0 M; R4 s) k於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:
% ~$ B* C- n  ^' y/usr/local/ffmpeg/lib4 X  R7 X7 t7 b. ?$ ?) }
再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:
: D/ b" O9 T2 cldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>
# i6 F& ~7 j8 k3 Nll /usr/lib64/9 m* `& S+ x" x6 L, k
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2) [$ t& k' H- }0 v" O
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0  y# A2 x: @+ t1 f, Y
So:
/ o; u2 Y3 k! x  m+ A$ Z5 Uln -s /usr/lib64/libgd.so.2.0.0   /usr/lib64/libgd.so.2     就解決& _- T6 `: f& l* S
可以 vi /etc/ld.so.cache  看看
/usr/local/ffmpeg/lib 是否已加入 cache中& V9 k- p8 Y$ v" H) v5 O5 U

" f0 k8 w$ _0 {; u# m7 _為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下:
7 O( p( ?% X' d0 [$ s6 o

3 F" |* i4 N5 T1 y
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg  . 0 |* X2 b" e8 ]9 Q: u
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe . 9 m8 ?+ s8 _3 b1 S# ^6 ^
sudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver . . y% `* S( c  C: J$ }9 f' h

5 ~% }8 `6 T- C. W( g7 h另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。) D* W4 C# Q/ G6 ?6 r- Q8 o
現在可以在shell中直接輸入ffmpeg執行,結果如下:# u% e4 z' c& b4 ^0 r
. p4 `' w  D$ `) `' e

+ ]0 n$ U, Z% r& b6 Y[root@CentOS6 bin]# ffmpeg
7 n0 |( m/ B0 g& M( ~ffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers
1 w& v- |1 M( q8 D  built on Oct  9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)
) F( ]1 Z. E% ?) w" l  configuration: --enable-shared --prefix=/usr/local/ffmpeg
8 F% k  Z* h, t5 _: e  libavutil      54.  7.100 / 54.  7.100
& u$ x* _" H. I5 ~/ z6 D3 l) L9 X, w  libavcodec     56.  1.100 / 56.  1.1000 `, U# r( y) p% s$ q% ?5 G4 u
  libavformat    56.  4.100 / 56.  4.100) G5 O7 P0 F, D# K0 }
  libavdevice    56.  0.100 / 56.  0.100/ E2 p" ?" J6 {$ `$ t
  libavfilter     5.  1.100 /  5.  1.100
* L2 i: ~5 h1 O0 P& R6 k  libswscale      3.  0.100 /  3.  0.100
- w% i, r; _2 t1 O9 A  libswresample   1.  1.100 /  1.  1.100
* U9 V8 R* S& ]. X; F8 |Hyper fast Audio and Video encoder
! w6 d' G' V! u. m! ^usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...! W$ Y# I7 [3 |1 {) P- V  B
Use -h to get full help or, even better, run 'man ffmpeg'

$ r" M9 x0 J, `2 s* b1 v6 n2 \8 _* x, r: o
方法二:
1 _" d# N+ x5 b2 k# M
3 m9 R9 j; E3 Z; m$ G8 T以 ffmpeginstaller 安裝 ffmpeg 相關套件:
& J. F$ b" \, c2 S3 \" ~& m- u# x' l8 I& k
http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/6 ^$ @+ K9 r2 J" B, [
解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為
# S8 G+ X! I, F* X/ P6 a
/tmp/ffmpeginstaller.8.0/
' y  ]3 [1 B. B7 |6 W6 b. I進去目錄後,下指令以執行
$ \5 U- ^# H' H# `; t0 O% H' C) l. B% L& v2 N6 h. _
[root]# ./install
" k% Y1 a! `# V6 g8 t" e& e+ n5 e$ {
安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。/ p& B" F. X7 w9 S, r0 t
其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時
8 k  [% j; q% X1 L3 ]  J- e" L  `
下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:
+ Y! a) s, v: y5 T  D# h4 z
5 N, G( E0 |, g$ N ) ]; l" L7 }/ Q
% T2 t$ x. C* a7 A0 z
參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html% P, P+ C% x: d7 b) T
& f8 ^- p* f# b. X7 Q
1 ^  v7 x  ~2 i7 F. g* E7 [4 x

% }7 T- c0 w: C5 B




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