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

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

作者: IT_man    時間: 2015-10-10 10:47
標題: Linux下安装FFmpeg ~1
本帖最後由 IT_man 於 2017-3-28 13:02 編輯 2 A/ _1 S: ?" `1 M' q2 E
, O$ W; j) r# B9 n1 S1 h! c% L0 l+ L
FFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等
, p8 d! E1 p6 D2 s' u4 E) \3 [3 Q# v6 l+ L6 q$ e3 F4 ]' h* M$ w) E
方法一:
# V& z6 a, L  J6 x# H
, S: U' \8 i- p
[安裝]
6 v, C+ n3 c" U1 V[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz24 f8 X3 [% A7 A: n& z* D. N; B0 c
[/usr/local]#cd ffmpeg-2.5.3, g" R0 k/ L0 |6 y
" ?/ R+ f1 ]* a, {' c* v4 N; g7 B- r
. K6 V- P$ |! ^. O9 W0 U1 S
安裝yasm
' K8 g5 N" J6 Y1 O7 H. Iffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。/ y4 v& I2 F. |
[/usr/local/ffmpeg-2.5.3]#yum -y install yasm1 x7 H. m0 m$ J* \4 ~
或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝
9 B6 g/ O; c4 [% o[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg
) m8 R9 U9 N+ L8 |  _其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。
* n# j, _: P# R* |' G–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。
4 v8 Q  v8 R2 W7 ]$ l0 s' B
[/usr/local/ffmpeg-2.5.3]#make     
  Z) ~$ h3 O) b! G3 V! P[/usr/local/ffmpeg-2.5.3]#make install
' [: a0 R+ T, m  [( g' i* V! a% U1 z2 F
8 n/ P% y- k$ i- P! v
路径處理:

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

不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:
% N1 b) T6 w; n[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf
$ v- p" z" l& S7 Z& o2 Y' x: ^, s/ F( Rinclude ld.so.conf.d/*.conf
( ?! ?2 T7 n% N/ H3 |! O& K3 C3 b( ~8 C5 |" P) }4 z3 P8 |
於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:3 N; V" m9 R9 t0 J
/usr/local/ffmpeg/lib, M) c) d6 x' {
再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:( H. ]2 S- B, I$ d* q8 V
ldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>, x: h5 B* H9 H$ v% d
ll /usr/lib64/$ U8 e- O! K7 x$ C8 x
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2
) }% D2 q$ z4 e% I) V: a1 C4 {-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0
& j- ]8 f* A7 ?+ d* \So:
: v; j& Z2 I: D" }% iln -s /usr/lib64/libgd.so.2.0.0   /usr/lib64/libgd.so.2     就解決
8 i; Y+ j7 f8 ?- P/ v3 u+ l可以 vi /etc/ld.so.cache  看看
/usr/local/ffmpeg/lib 是否已加入 cache中! V& _: P0 A) y$ m1 z

+ o, t2 I$ c  }* _  Z$ ~為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下: ) g" J, }$ r* Q
" Y; i, H2 X# E: y1 |  _
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg  .
) k8 X/ C- g) u6 l1 A5 M
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe .
" k4 S2 ^) r& n( W
sudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver .
+ ^. |% o' @# u1 r' E
; ]% v! h: D; B4 Q' K3 L  t另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。6 F# D# B0 w; \" H
現在可以在shell中直接輸入ffmpeg執行,結果如下:
3 W: ]! w( j; W  B
0 X' m9 w4 C2 k, {0 t+ O

' W3 Q; T( S3 Y6 j) Z! s[root@CentOS6 bin]# ffmpeg
- h6 H" }7 }  [! ~% [ffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers4 h2 [' ]7 ?0 e& M  K
  built on Oct  9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)- S+ U2 J* w& r8 D, d1 z; z
  configuration: --enable-shared --prefix=/usr/local/ffmpeg
5 {# }- ]% E8 a% E; I8 }  libavutil      54.  7.100 / 54.  7.1000 U) `  ~# y5 o6 C5 h+ p) ~
  libavcodec     56.  1.100 / 56.  1.100
9 g% l! J9 A9 S  libavformat    56.  4.100 / 56.  4.100
( q: R- i2 |+ V  libavdevice    56.  0.100 / 56.  0.100+ i0 e1 M& ?2 f) K
  libavfilter     5.  1.100 /  5.  1.100
& k  ^9 t' l" r0 a! R# u  libswscale      3.  0.100 /  3.  0.100
! K  g0 K9 l) h$ C  libswresample   1.  1.100 /  1.  1.100$ U" J. @' q5 c# w* k! m
Hyper fast Audio and Video encoder* S6 j/ j$ m6 @: ~! A( d/ f
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
" `7 s+ L0 X. GUse -h to get full help or, even better, run 'man ffmpeg'
1 c$ ~0 q+ P. V

" v6 e2 y7 O' A3 s9 h) `6 f6 ~方法二:! O, A1 T; G- G  o

& [0 |: r# W  p5 o. v5 y% u以 ffmpeginstaller 安裝 ffmpeg 相關套件:( l7 F8 G! U9 F
6 Q( E- J2 G5 ~- Z2 W# E% C
http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/
2 M. I' g1 E$ y' N) b9 F1 \
解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為
- A1 W- e$ l. |! a& ^- q6 q, \0 t- ]
/tmp/ffmpeginstaller.8.0/
# v; X+ N8 X) k* y! @1 a$ K進去目錄後,下指令以執行
, f8 K' h1 h8 ^1 i1 B+ s  o
# ^6 ~, N) U: H$ d5 \  h7 C[root]# ./install6 N' D, q2 s7 l; j
" a2 Q# Q, K- V( H. ]5 \" b6 u
安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。8 D# p0 `7 N, }
其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時
* v" C3 Y$ y; f  f/ u. k
下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:6 [( a) K, ~, V2 V8 Q8 t
$ B$ Z2 l9 s9 B
0 @8 L" G4 n+ m9 O$ k+ `

- P& l" `4 X# y: O8 q- K' O; g參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html
- o' h# E* O" B$ R2 k# [

3 a8 @/ k7 _: z% c( K3 ~( V& h# x9 @7 `% X: Q; S& E3 K
8 ]  y8 c9 U$ B' v: D





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