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

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

作者: IT_man    時間: 2015-10-10 10:47
標題: Linux下安装FFmpeg ~1
本帖最後由 IT_man 於 2017-3-28 13:02 編輯
- Z& y5 b+ v# `; U. p# _* O+ b  p6 q" f' ]& A5 d
FFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等4 }  X& I7 J# q" S6 b, ]

) K) d. l' [( R* l. f3 T1 a方法一:" v% J3 y7 }' f$ M% |  x1 J) O: G

* G( i7 g; {! Z$ l5 {[安裝]0 T! F' y) X) @( t4 @" ~* A+ [
[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz22 h) b. @; U  t+ j( d' N
[/usr/local]#cd ffmpeg-2.5.3, C& y2 O3 f( l9 L5 o2 @! o5 v

' i9 r2 J2 H+ @

, h; u0 e& n( g- W6 a' L. T安裝yasm
: s. m8 A% @; y/ c% g' G: Cffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。& t% |% ]9 d/ b: Z! Y
[/usr/local/ffmpeg-2.5.3]#yum -y install yasm1 ^9 q. Q- |3 B  u8 c+ b
或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝5 I4 I' S# t% u
[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg
; J1 s! ^& k+ ~( O0 Q5 P- P1 z其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。
2 v8 ~' ^0 Y( i# ?" `# D" P; c* A–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。

, F% ]5 z; g& h5 r8 F' D[/usr/local/ffmpeg-2.5.3]#make     
: {2 i# @$ ~3 r$ o  m* J1 k6 S# M0 V[/usr/local/ffmpeg-2.5.3]#make install
1 q3 ]% I2 ?! S5 d5 U1 [  W8 v3 h" y. l, ]8 U6 x. v3 r0 k; d8 \

. s% W. ]( a4 B/ v. F路径處理:

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

不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:
2 Z! O7 y7 _$ T  M; F4 Z7 s[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf
" L$ x4 h( O5 g( l0 Y/ Hinclude ld.so.conf.d/*.conf
; D) D- p2 e+ s' L" [1 F  a# R$ c4 e# V8 a& ?+ Y# {
於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:/ U* t7 t' M3 d; R* v
/usr/local/ffmpeg/lib
, s! h, L/ f+ p再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:
: f! z  x5 m) x2 ildconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>
7 [/ f% s$ ?, a  Wll /usr/lib64/
7 C7 p/ x: V" X) L  Z8 I-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2
5 ]8 n8 Z$ l" x+ @-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0: w1 i. u2 ~! Z  i7 G' t
So:
4 N6 @; k! }! {$ _ln -s /usr/lib64/libgd.so.2.0.0   /usr/lib64/libgd.so.2     就解決2 ~1 v- U5 p- e& I' ]
可以 vi /etc/ld.so.cache  看看
/usr/local/ffmpeg/lib 是否已加入 cache中4 |' k; m, ~& C8 ?4 v* Y, O/ G

& R- Y/ m. Y. B為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下:
* z; E; g* k6 _6 o

# o" h9 U% u6 Y
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg  . . e5 g* ~2 D3 P5 W8 G: U
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe . ! B. g7 y. U! v
sudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver .
4 c8 Z- Z) I3 v7 C; m8 D) ~0 y
1 `2 r! @& Z; _2 c$ _另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。
% g! h7 ?. C, ~! C4 u& D. S現在可以在shell中直接輸入ffmpeg執行,結果如下:
" O; \2 v' Z) L/ Q* [* `' d& e
7 M+ E- W* _3 p% z1 N$ P0 ?7 ~9 K
3 \% d" g+ B3 r% E% d5 }
[root@CentOS6 bin]# ffmpeg
( \! }; z+ D7 Z4 e+ t+ A, Z( t! Y: Iffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers
$ k' d3 t) }$ ^/ a" K, ?  built on Oct  9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)
; E6 T% N" r) w0 C: h% |) V  configuration: --enable-shared --prefix=/usr/local/ffmpeg; R& s2 ~6 z4 X9 M# a, W5 {
  libavutil      54.  7.100 / 54.  7.100! z% _5 B7 w0 w
  libavcodec     56.  1.100 / 56.  1.100
9 ^! Y& x: Z1 d  libavformat    56.  4.100 / 56.  4.100
. N1 F4 J( _2 b6 [2 o9 S6 [% S  libavdevice    56.  0.100 / 56.  0.100
) M) n  E( }% ~* z2 W  libavfilter     5.  1.100 /  5.  1.1007 }" q, N' o# h0 _/ e5 j- I
  libswscale      3.  0.100 /  3.  0.100
) _4 s4 G: T7 ?9 h1 T' j! r0 I- v  M  libswresample   1.  1.100 /  1.  1.100
6 @4 D, M2 b. n& T$ ~Hyper fast Audio and Video encoder& o, Q; }0 `: N
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
# @0 I( ?/ H6 a: y$ y" U) ~1 JUse -h to get full help or, even better, run 'man ffmpeg'

* I4 Q* }5 k( k7 ]  R! ]: ~9 S' `2 V4 i
方法二:' Q; y8 |3 B2 o2 c$ d
* B( i6 C8 ?4 D- |/ }
以 ffmpeginstaller 安裝 ffmpeg 相關套件:: K* E2 `7 J9 `) T6 h" |
; T0 D, v& a+ S$ i
http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp// ^5 F; F( K" Z7 E
解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為6 \4 }) y  u5 Q( O8 U, ?) W
/tmp/ffmpeginstaller.8.0/
: }' n6 ]* C1 `, S6 g進去目錄後,下指令以執行
0 _; a5 `2 l% X7 i9 L) v  `' H8 E0 z! ?$ Y
[root]# ./install
4 T& d8 o; P, g
' C* v( M2 Y+ ]) Q$ W% X安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。" N! E  k' E6 l) Z, J' s% }2 g
其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時5 g8 [% \; _0 w" L! L6 N
下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:
2 {. ?# Q7 q5 T5 {* P( `* ], ^' B, L

6 N" _% @1 r8 Z( \& @6 }
0 X( z) c3 c$ \3 g4 S4 A, T- e; r參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html
9 E& f" b1 O( r" i' W" E: @  z
+ m- J" [" M) E" r5 @' [9 |

( M) j5 N2 K8 S! Z, Z; ^
1 n, y" d8 r, u




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