本帖最後由 IT_man 於 2017-3-28 13:02 編輯
8 ^! V7 B4 t7 c2 M' _1 _
* l* T& ` H* f& K& m0 ]% lFFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等8 M5 |& Y7 q/ x% C& h
) k5 U- z; O+ G, A2 ?
方法一:
: w6 \' h% h+ Q* f0 m H( L1 B/ w2 z$ H, J. P5 l8 w- I) {7 n
[安裝]
$ q9 S6 h5 A( \% r. F7 d[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz2
) h0 T+ s( F- W* H) [[/usr/local]#cd ffmpeg-2.5.3
8 u9 y( T8 o- V. f I& H' ~1 w# Z/ C1 h, q# b5 ~
) U0 n" x9 b6 T5 k7 E5 |安裝yasm
9 U: p3 V5 \' |( W: }# u7 wffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。
c) U& g# }. d) d; Y- ?[/usr/local/ffmpeg-2.5.3]#yum -y install yasm
) _/ P0 B. ?8 t" C6 T$ w# e或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝7 m$ P) s! X% O7 W
[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg" G9 W8 x/ p' x
其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。
5 v4 G" E" T8 g+ l–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。
2 V/ z/ ^: o# i[/usr/local/ffmpeg-2.5.3]#make
. y' J5 o! \: f. p[/usr/local/ffmpeg-2.5.3]#make install 2 x* p9 ~$ F' f! l; X
* e' M1 V( L; W+ K3 B& G, l
1 J5 U# `" c) h# m4 V6 R路径處理:安裝完成后在/usr/local/ffmpeg產生三個目錄: - bin:可執行檔目錄
- lib:動態連接庫目錄
- include:編程用到的頭文件目錄+ l3 N# v* w2 n: V3 b* e5 M
不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:0 F+ h3 }0 t6 w- @8 w
[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf
. M. K; x: v5 o! N7 Ninclude ld.so.conf.d/*.conf
9 J' v; t H* C4 E! T, e) K, `: t+ V0 M9 {! u
於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:% U& C! H# I. n2 S& Y; l
/usr/local/ffmpeg/lib
/ L6 N0 U/ {- p; V8 G' f再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:
2 |" Q* f, i* ~3 J4 }& Aldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>. U4 O5 D8 O; ]; j) W: k
ll /usr/lib64/# u1 k' [* G7 ?( f! e! R. W
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2/ d" O5 u/ ^$ M* V
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0# ~: ~+ A9 d& Z" w+ }# D
So:
5 b2 O5 h2 f' y0 A7 C. F dln -s /usr/lib64/libgd.so.2.0.0 /usr/lib64/libgd.so.2 就解決, F% Q% M9 C! j2 L8 Y
可以 vi /etc/ld.so.cache 看看/usr/local/ffmpeg/lib 是否已加入 cache中
0 t' X c! s0 I: [9 ]) D
5 s' @7 {+ p8 I+ b為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下: 5 v- Q3 X0 l4 R9 d5 w3 {
5 o% Y7 |& m/ E) {
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg .
+ O: i# p. F' S2 h/ }; |4 usudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe . & F* k n: z1 a7 k& A
sudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/ or [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver .
5 e9 Y; v0 h* q5 t @; a P( C( [" b2 r5 h9 [) B4 Y# D; t( ~# J- N z: i
另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。* J2 F6 h: U& D$ M+ m t$ I
現在可以在shell中直接輸入ffmpeg執行,結果如下:: f9 u" M7 n! Y' T( o% f4 K' P% e
6 ]1 u& Z/ f& J9 W/ }2 l
. ?% S- h6 z( M* ]) M* \[root@CentOS6 bin]# ffmpeg
- H" g- c; e& h* Offmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers$ ~ T: w! U5 C1 D
built on Oct 9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)$ Q, K. P6 j7 h* a( Z
configuration: --enable-shared --prefix=/usr/local/ffmpeg6 z* [1 S7 x/ I
libavutil 54. 7.100 / 54. 7.100
1 ]8 `/ P* W+ ]/ p6 R& o libavcodec 56. 1.100 / 56. 1.100
- x ?" @8 L* u& `! j7 r$ N libavformat 56. 4.100 / 56. 4.100' i' `1 y/ i- p
libavdevice 56. 0.100 / 56. 0.100
! S v/ f/ x5 t7 G3 Q. B0 |) j libavfilter 5. 1.100 / 5. 1.1005 u$ H/ r4 R* b
libswscale 3. 0.100 / 3. 0.100
. J; Z) v0 C/ K+ D4 v( B2 ?' \ libswresample 1. 1.100 / 1. 1.100
2 g, p3 |0 v) ^0 {Hyper fast Audio and Video encoder3 {, L- A( U1 V
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...4 `* H/ t# w5 T9 y* {2 I
Use -h to get full help or, even better, run 'man ffmpeg'0 u4 s2 `# e0 X E
" h. \0 Y3 q$ }; Y( I
方法二:
, V5 @# P5 r' l+ T6 O8 i: \* P8 E; \$ g' e
以 ffmpeginstaller 安裝 ffmpeg 相關套件:
! s0 u% z0 q2 D% E, K# m! F+ `6 @1 q0 B
到http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/: y, z6 n5 B/ T; R' R- G
解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為" X) F4 P, H; P: f" i8 ]
/tmp/ffmpeginstaller.8.0/
! b( w4 Z. K) C" R* N- h進去目錄後,下指令以執行
& J6 u; r9 k) @7 y
4 v ]3 H8 H- g" I[root]# ./install5 e9 F, Y$ g$ ^5 X3 X5 u& e
/ c! F2 q% F5 B3 k; D6 p% s7 v
安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。
3 B$ U B9 W' d$ a3 Y其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時
4 m5 [. b1 U6 m, H" l$ q下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:
# y; f7 f: j3 K# q( J" O+ N0 ?
, I4 _9 S$ ~0 B: `/ E
' j* L& H7 O. R. p, X {+ `
& w+ a* g, U- m參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html
4 Y% R7 X8 `% U: I" J: x h' K1 I# F, M. {0 j. w
5 `) c4 N! {5 F1 u z
7 ~6 r0 T/ i$ t! f4 j1 W6 j
|