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

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

作者: IT_man    時間: 2015-10-10 10:47
標題: Linux下安装FFmpeg ~1
本帖最後由 IT_man 於 2017-3-28 13:02 編輯 $ L8 c. K4 J& }! {

8 G2 h3 B3 j7 a3 a% W) Z9 \  TFFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等! T1 A! x4 z0 t, r( j7 P: A" A+ d$ E

7 V; R' ~( H; Q2 M方法一:
) @7 k3 u5 u) H$ q

: p. _3 ~- C3 F7 _/ t# ^[安裝]. S1 Y5 }. v1 i) A! {3 k( J. }5 L
[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz2+ m7 f* v" b8 m# z2 N0 y$ P
[/usr/local]#cd ffmpeg-2.5.3
0 G7 `( d- F  {: @8 S( z3 T6 y# q9 e' D& _6 S. p( E7 t+ {; u; ]
7 o, V8 B+ n: h4 m
安裝yasm
$ ]4 b/ m" _4 H/ e% a# iffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。
: x9 d9 S9 g9 y9 a. }- c( t& Q, m[/usr/local/ffmpeg-2.5.3]#yum -y install yasm
; u# \- Q  P! n2 U) }或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝
. o: ^/ @! b0 z0 Y7 U0 e9 T: s3 h" L% A7 g[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg$ q5 R3 B. i- G. P+ R9 M* T
其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。3 ^. J; v  M* U- n9 F
–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。
" a0 U; f; K8 K" C7 X$ ]  a
[/usr/local/ffmpeg-2.5.3]#make     ; w% h5 z7 {* u; h+ ^
[/usr/local/ffmpeg-2.5.3]#make install
$ C: u( Z( W# r8 C1 f9 F- d
7 q0 J9 F$ W. V6 [0 t
8 H, g% U0 P5 h( j0 ^
路径處理:

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

不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:
; S" }' o! X* h[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf% g6 H" z3 l6 i  \
include ld.so.conf.d/*.conf
; E, b4 a5 |, S' c
3 G7 G0 j% k8 |6 C於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:
: T; ]. r6 D) U/usr/local/ffmpeg/lib
- D: R# n8 W* f再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:5 R+ g5 {4 B9 b/ X; V
ldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>4 w% R: n, `# |$ V3 x: z
ll /usr/lib64/1 ]: y' f8 h+ E9 |" |9 g
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.26 ~( B$ ~4 G6 {3 Y" l+ |  y4 j& Q
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0
- X8 E$ ^( Q4 V# v, K( y) _So:' A: c  E# T, h" c% f
ln -s /usr/lib64/libgd.so.2.0.0   /usr/lib64/libgd.so.2     就解決8 V& F7 D$ a( L/ C1 p9 Y2 h
可以 vi /etc/ld.so.cache  看看
/usr/local/ffmpeg/lib 是否已加入 cache中2 K1 ~& _0 x  J$ Q# T# H( h9 J- Y
; ~6 n( x. t& W, z
為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下:
: K) H* D) c$ w  h& z
  B" m- H* l# e6 b& p- a* ^
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg  .
" _* S+ [$ D" Z( g# S' d4 O5 B
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe . 6 ^. T% k* T' r8 A: Y
sudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver . / F% @4 X0 a; o& X
5 Q0 w% ?& H2 G) l
另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。
! t5 A- D! h6 \6 B2 X現在可以在shell中直接輸入ffmpeg執行,結果如下:
& e& v- ~2 a$ R5 E- T, j( D( W+ M* v
. z0 I) L6 p9 h0 e& m0 m
[root@CentOS6 bin]# ffmpeg
& g! {) U# `7 n1 ?" U, q2 y4 Bffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers
) P# K* s' l8 p  built on Oct  9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)
& f: s  m. d8 T2 M9 U& c  configuration: --enable-shared --prefix=/usr/local/ffmpeg
; J" ~+ t3 _$ n. ?3 G* U  libavutil      54.  7.100 / 54.  7.1000 ?1 H( {; k/ L- |- i6 |" F
  libavcodec     56.  1.100 / 56.  1.100* F  F& }6 z, G, j, Z
  libavformat    56.  4.100 / 56.  4.100- j# l3 ~2 N( A' ^7 F
  libavdevice    56.  0.100 / 56.  0.100
  ]# t( B% P% m7 z+ r. S; A5 v  libavfilter     5.  1.100 /  5.  1.100
. q) u8 w* o- a) v" O- ]. ?/ z  libswscale      3.  0.100 /  3.  0.1001 @- I" P% s$ E8 o% a6 Q
  libswresample   1.  1.100 /  1.  1.100" l& K8 j. H8 p; d7 C# p
Hyper fast Audio and Video encoder$ r; r2 v3 D- z% e/ ^
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
: z/ q1 u3 I; |$ LUse -h to get full help or, even better, run 'man ffmpeg'

; b! c1 @( x& p+ f# [) {' E) J* b* K8 K* S9 |8 S4 s
方法二:7 L' B' J& _0 k7 i8 ]' U8 a
0 z. k0 B2 }0 y$ [' a' r
以 ffmpeginstaller 安裝 ffmpeg 相關套件:
6 w1 E+ N0 w% W& m; Z8 ?; x" r0 y* r4 l; Z% h4 Q
http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/
6 D6 g+ b, G! n" t6 }* G- ~
解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為& d/ ~7 f) ]8 C& \+ ^. C8 E" X
/tmp/ffmpeginstaller.8.0/
9 V3 a' a5 w" ~; e3 q( t進去目錄後,下指令以執行: r* M8 Y* r) K6 K6 K
2 n' m/ j7 @* W
[root]# ./install
. O3 f8 l  n7 I4 f4 s
' W3 ~  e3 T3 X7 p% P" J9 h  b. A安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。
9 n* M6 ~5 j0 a* ^; q; x9 r其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時7 [$ B# q3 n5 Q6 W( ^( Z
下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:4 f) G% j' \* N' B) n

( F0 M8 f5 p% R. u8 l
' g' u- Z- T( W+ ?0 M1 x1 |4 A! q; ~% C' @0 E4 [3 t
參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html
( u, ?1 q$ C+ Q* @9 q! r" P- U

$ o8 O2 x3 u. x7 }) T4 [" t% I) Q3 Q% o$ \' \

1 X3 q& B1 U/ s, c4 T, f4 T  N




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