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

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

作者: IT_man    時間: 2015-10-10 10:47
標題: Linux下安装FFmpeg ~1
本帖最後由 IT_man 於 2017-3-28 13:02 編輯 " N' @& ^* R4 O$ u+ E- Z' X

9 R. L* I, t1 B! {2 j9 o: zFFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等# {0 F5 w4 z9 U

6 C2 ?: n/ R* \7 x! ?/ R方法一:4 v% M) C$ e: c  e' \/ `  v. T4 s
0 t8 j4 l4 h! B' W' @  b
[安裝]
# p' u2 u, a5 \( c[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz2
9 K% Z" w1 |) n' N4 M9 j) k) d[/usr/local]#cd ffmpeg-2.5.31 p: S' l9 \" R6 c, c
$ A+ l8 C8 u& m; R; g- J/ H$ z

4 @9 I* u; I! R安裝yasm
% k! ?) O" k" \# b8 Hffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。
( z& C; d" D6 q, Q" q% {[/usr/local/ffmpeg-2.5.3]#yum -y install yasm
$ o7 \9 D2 b  d7 r+ d! c) u或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝
& L! W! `1 Z, S4 M2 m( `  L6 U# |[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg+ G+ {  @, G- H4 A
其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。" B# n5 B! s2 _
–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。
1 ]8 I. Z' f' @7 ?: T; Z# H+ k
[/usr/local/ffmpeg-2.5.3]#make     # g6 p# C7 _+ x3 P
[/usr/local/ffmpeg-2.5.3]#make install ' R. q. f  i9 ?- l; u* @! ^
, N8 `: X& |# L# z" i0 T4 @

7 W! G. A# w5 H  w0 U* z* e路径處理:

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

不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:- M2 p. q) a. t8 h+ V% n
[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf
6 d: r; `0 K8 \  |include ld.so.conf.d/*.conf; d8 y/ {. Z3 D( K, {* G

* r- h8 ^% {- T* A( Z0 g於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:
0 x) h2 f6 E2 T( W/usr/local/ffmpeg/lib+ f# i+ U( l" ?% b$ @# g5 a
再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:, m: O3 D; y9 X; Z4 ~/ E
ldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>3 c( E7 p- R" l& l5 A3 x! j
ll /usr/lib64/) o" ]' w: p5 J9 n  Z$ G  e
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2
+ \) s5 W7 P* H+ [6 z- ?1 K-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0
) d( j$ N2 U% {- sSo:6 z, W3 [# g" b
ln -s /usr/lib64/libgd.so.2.0.0   /usr/lib64/libgd.so.2     就解決
3 x! m. a1 N! Y+ e可以 vi /etc/ld.so.cache  看看
/usr/local/ffmpeg/lib 是否已加入 cache中7 g8 j/ y  n/ D; S. `9 L0 D. I

! b- o1 S4 A2 \1 S為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下:
: W8 M5 J) w. h. S) K: @! k
* J9 A$ e, S' Y$ s; j
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg  .
' R8 J, r* w" |  K$ C
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe .   A: ~( a- }  L* l  C- \
sudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver .
/ t& X; L+ @$ \8 D8 r# H+ u! m" m" y- ]; S
另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。& S- v8 D4 S+ V& P5 b: t5 R: z
現在可以在shell中直接輸入ffmpeg執行,結果如下:
/ Z( K* M) d8 j7 s* Z9 w) }
7 ^: L% _" W8 }2 [+ V0 |

: Z% I/ A4 y. Q5 {3 V2 W! C[root@CentOS6 bin]# ffmpeg5 C6 q" c8 r+ \6 j0 ~
ffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers
; L* }: m. t# R: r: K% n  built on Oct  9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)
+ l. \& C% D0 b3 i' o  d  configuration: --enable-shared --prefix=/usr/local/ffmpeg$ N' D9 b; I2 S( M  A2 F3 ]
  libavutil      54.  7.100 / 54.  7.100+ [. P$ Z0 {; }$ X) R1 K0 q
  libavcodec     56.  1.100 / 56.  1.100+ ~9 L9 I7 W$ @, D/ B
  libavformat    56.  4.100 / 56.  4.100) {% a+ y- D9 E4 U5 S
  libavdevice    56.  0.100 / 56.  0.100. f, x  m2 r8 `' @' @4 H, W
  libavfilter     5.  1.100 /  5.  1.100
: K. O( z$ L/ s! d5 E  s! t  libswscale      3.  0.100 /  3.  0.100
) j' x; V  y. C8 s$ _  libswresample   1.  1.100 /  1.  1.100
' b+ a/ ]# O  h5 y6 AHyper fast Audio and Video encoder. w) w" v' }4 u1 v; |: a9 w6 G( s# I0 D
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...0 B0 z7 x- K  {2 P3 E: A
Use -h to get full help or, even better, run 'man ffmpeg'

6 s. E. t1 M8 I7 _. R+ l) T! q
1 S- K6 e7 y8 ]& g% w: H+ Q9 z方法二:- x9 d( I, U: y- u. S% @

. k5 f& \. ]6 S8 N以 ffmpeginstaller 安裝 ffmpeg 相關套件:
0 s0 T, i* m7 _: N! \, {3 Y# o
* ]# l% e; `" m$ q& {' H
http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/
& h6 e) D: O8 C8 h
解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為
/ f3 _) `2 s- n; w7 \
/tmp/ffmpeginstaller.8.0/5 w) R. v  L; ?' N' e
進去目錄後,下指令以執行
3 c) C! v, Q( p( W) C+ f9 W
0 n3 s: V* \$ ^8 U% C% \. v+ A3 h[root]# ./install
! _. f& Q% x( x
0 L7 r, r: C+ S# H安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。% r7 a! `- ?; S. u( d; N  o
其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時, I' Z; C; x- x4 {4 E
下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:+ E! ~. F! j, U  G' g+ f

; x5 s1 Y2 ^" V7 E/ O* V6 W
! m" G+ V6 z8 w, b7 u% A  k" I) \. Z0 e8 g
參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html
- g4 }: [6 U- i1 a3 T
. F5 R, k3 @8 K( {6 Z/ \
- f  a0 }# O' w3 A4 K
5 w& Z* |$ l3 m: a





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