本帖最後由 IT_man 於 2017-3-28 13:02 編輯
! s- ~% ?9 l X+ K$ V, L+ h$ t, R: ] x5 F# e( o4 f: ?4 I p
FFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等
: B0 n4 J7 w) W& C* G& L* f% z/ b& U9 J3 @
方法一:1 E3 [. ]/ s: r
+ ]! m3 s) ~0 ?[安裝]3 [( Z+ c( X- f3 B2 @
[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz26 }& w) V# @- e- K' E
[/usr/local]#cd ffmpeg-2.5.3( }( k) m8 f1 P* N8 T) g
/ e+ a8 r: O4 H2 V7 ^- P1 b" U" n
/ C/ b# z! N2 J+ ^' h- u安裝yasm
/ _& }) }/ |6 |5 lffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。
- c: e9 a q: _0 m0 ]' [% M[/usr/local/ffmpeg-2.5.3]#yum -y install yasm0 w1 @* }3 g9 `, K7 J9 u/ r5 r
或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝7 _8 r5 a6 ?: e
[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg
8 ]1 q: d1 I. `- f其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。
5 C; a0 @+ ~; c1 c! K–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。' G& i% e; Q( ^" z& f5 W* @
[/usr/local/ffmpeg-2.5.3]#make 4 q; ?3 [/ @2 |4 l- B( g" s$ H7 h
[/usr/local/ffmpeg-2.5.3]#make install
; `. i6 J8 [ i; N1 R8 e6 a$ S7 \( ^" A) C4 U3 y
+ P& \7 X% @. E
路径處理:安裝完成后在/usr/local/ffmpeg產生三個目錄: - bin:可執行檔目錄
- lib:動態連接庫目錄
- include:編程用到的頭文件目錄6 _' {5 Q* ~8 a" b( T/ K
不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:, A: V& g( H# k [3 Z
[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf! N$ h# R& {3 V& G8 c5 l
include ld.so.conf.d/*.conf
) _( X' k8 t, q2 Q+ A
, @/ W; u& k. Z0 U於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄: H- D; y4 ?4 L u6 n' b
/usr/local/ffmpeg/lib
) @( V, ?* |( D% u/ o再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:; O }9 n, J; i) {6 R1 V
ldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>7 N b+ ?4 w9 w4 t/ L4 J4 D
ll /usr/lib64/6 p( n: p: |6 D* N5 U" }5 n
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.28 q' \- e! q8 k) T6 f: j
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0
$ B/ V$ u2 W' _) Q* u- ^So:. h9 a3 ^1 z+ k3 x: S* Y' H
ln -s /usr/lib64/libgd.so.2.0.0 /usr/lib64/libgd.so.2 就解決( x% n9 g/ `; Z/ y" P6 S2 \# V
可以 vi /etc/ld.so.cache 看看/usr/local/ffmpeg/lib 是否已加入 cache中& h$ d$ B6 @, g+ v6 F
- \5 D5 m4 e" n$ n p' Y5 e為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下:
3 H- |5 }9 x* ]) T
+ h, d% v; C8 |$ H6 Y9 zsudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg . ! O5 l {5 H S' i
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe . # s4 O, n8 l C) e
sudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver .
% ~# E5 X! e( m5 C1 v
$ D7 h! X0 A; x. a% T另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。+ o% g; f. N; z2 U. H* L
現在可以在shell中直接輸入ffmpeg執行,結果如下:
$ u$ V% o" _3 M4 v' {& u( e0 P- T0 {3 U6 C v& m, R+ U
" G7 ~7 ~. R6 H7 I6 ~4 y9 s5 {[root@CentOS6 bin]# ffmpeg) Y9 o# B* m/ H7 j- l# C
ffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers9 | K, I. J+ \5 U; p
built on Oct 9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)$ C4 l3 G2 @8 c( |+ U. V9 E; O
configuration: --enable-shared --prefix=/usr/local/ffmpeg( E5 H6 [& C. L" A7 E: ]/ L8 ]9 Q
libavutil 54. 7.100 / 54. 7.100+ x$ A) U# e+ [/ v+ I" w8 d
libavcodec 56. 1.100 / 56. 1.100) L# {9 }9 Q; w9 d. E2 R W
libavformat 56. 4.100 / 56. 4.100
$ W0 d$ z. o( ~1 {2 c libavdevice 56. 0.100 / 56. 0.100 o3 Q" H+ H0 I i
libavfilter 5. 1.100 / 5. 1.100
1 Q5 Z- `" J5 V1 S: P libswscale 3. 0.100 / 3. 0.100/ {2 ]7 ~, |; e' H' Y3 E
libswresample 1. 1.100 / 1. 1.100/ N8 o+ ?% z2 [7 f Y4 Q) `0 W' g
Hyper fast Audio and Video encoder; Q& U! o- K) s4 y
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}..., v- f" @9 k. c
Use -h to get full help or, even better, run 'man ffmpeg'6 \7 Q! I, O* ?- k: k+ L) `# P N
0 z/ i, P f( b3 \
方法二:
_* x) y0 P+ ~+ e# T4 V' H
! E5 R$ ]* |! b- B6 V以 ffmpeginstaller 安裝 ffmpeg 相關套件:
, Z z. O& o. L$ _# m- n$ Z2 K4 H9 I, [
到http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/
& e- S9 s6 S: U9 {解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為, f* z2 f' C, _( M
/tmp/ffmpeginstaller.8.0/
; T( ^8 A) P$ i# ~+ E3 D進去目錄後,下指令以執行
8 H5 K2 R- {! e, o g6 W4 d: J4 p. F' A/ D
[root]# ./install9 C4 H. M$ e& c W D9 C
' M+ e, H+ U3 M4 b p9 ]8 c% k安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。7 ]2 E8 T. n! A2 Q
其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時
0 }: w0 e0 m+ A4 M/ D, o下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:9 i+ W) z1 ^# @1 G6 h, m
: ^9 T' ]) _$ K
3 D4 p, t' O3 Z8 k* X! T
6 G+ }7 f0 U6 J8 Z" z3 a
參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html- O: U3 X7 J1 ~+ D" @1 m
$ r! J" K$ j. h j6 g; o
) s" U8 Y P& ^0 V6 Y/ E' ?
' w- w q5 J! |% E |
|