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

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

作者: IT_man    時間: 2015-10-10 10:47
標題: Linux下安装FFmpeg ~1
本帖最後由 IT_man 於 2017-3-28 13:02 編輯 ' ?/ {9 `4 |; W# a. A# W

2 \6 v9 `. _5 U* X" f+ K7 MFFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等4 o2 l; O) z& _, c

: ^& J" J. f: Y* P2 _  c- K  d方法一:8 h7 g. Y1 I: h' H" L+ q! X
4 Q8 |  R+ i/ p0 Y* p3 ]
[安裝]
2 Z9 [- f6 W+ O9 B1 m1 ^9 h[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz2
4 p& p( p2 J+ r0 _) P7 V[/usr/local]#cd ffmpeg-2.5.36 s3 F/ V+ W7 E2 u+ Q1 O3 B

. M( O: J4 Z+ a9 m1 P1 R

+ O' j8 f% ^) v& b+ [$ V安裝yasm7 W3 u( Q' R% n" B0 H0 i
ffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。
: F  z2 c! v# ?& B; W[/usr/local/ffmpeg-2.5.3]#yum -y install yasm
8 B) W3 C/ p+ V( g8 Z) F或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝
; ]+ _2 G3 V$ [4 H8 @[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg
4 Y: N! I( [3 e其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。. s" x$ y- {1 |5 D( j1 @
–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。

2 B+ n1 u6 ?# a1 J[/usr/local/ffmpeg-2.5.3]#make     ( u/ V- P9 s- k3 _( J! s
[/usr/local/ffmpeg-2.5.3]#make install " [) ^, q1 M, K* b* T
' p* d/ q) H! l* f' U

2 {; V3 I% v, N% y2 }4 W5 ^/ N路径處理:

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

不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:
$ ^5 v3 l* L- w) n[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf
) }2 H- M' c* ]8 i/ qinclude ld.so.conf.d/*.conf
& C7 d: k9 ]4 i4 Q( Y% v1 k8 l; u6 T
於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:/ G  |1 ^0 d4 i
/usr/local/ffmpeg/lib
: T6 t8 I& W6 ?4 r9 }$ Z, _再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:
1 {* N' N# }- _: i! Rldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>2 x- [" T# a+ z+ I' ?; B# Y
ll /usr/lib64/9 P0 ?  l8 C, c2 V7 E
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2! L! M3 m' L6 h2 ]
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0) K6 g5 e! }, ?& ^7 ~8 v
So:
+ U- Y" x( l: z6 c& y6 J& yln -s /usr/lib64/libgd.so.2.0.0   /usr/lib64/libgd.so.2     就解決( @4 r" E; S- Y& U2 g" w
可以 vi /etc/ld.so.cache  看看
/usr/local/ffmpeg/lib 是否已加入 cache中3 O. s& V8 R' ]! _; a
# a% \  C$ E; H: _1 m, N
為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下: 7 z- Q$ k1 o( n9 P+ A  B4 Y0 w$ A
$ d* P  S5 b- A) J2 v( v
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg  .
/ T; B8 ^/ i! a
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe . & E# L2 h  C0 X$ W3 J
sudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver .
; Z  a9 [3 i7 V3 ~7 w- Y
" F* [* z" t; u另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。
; g+ _9 D( m' N. i7 x現在可以在shell中直接輸入ffmpeg執行,結果如下:9 A! ?8 M2 e; }' ^  c
6 }. |- K' _5 ?0 f9 n
: L" J: P( O2 n9 Y5 j8 U- h# W
[root@CentOS6 bin]# ffmpeg
" F8 N  }: f  s  I& p5 A" L5 U3 Fffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers
' w* _& J) k, I- u  built on Oct  9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)" S8 |! {' z7 @" F  Y
  configuration: --enable-shared --prefix=/usr/local/ffmpeg6 x( o* I- C0 D# I) T' [" D1 l6 P
  libavutil      54.  7.100 / 54.  7.100/ g, Q7 g, z6 n* C# O* ~
  libavcodec     56.  1.100 / 56.  1.100
' d% s  P+ n2 j  libavformat    56.  4.100 / 56.  4.1007 n% U8 N9 I  w1 E0 T7 W& e
  libavdevice    56.  0.100 / 56.  0.1008 P+ M; t5 }. ?# p
  libavfilter     5.  1.100 /  5.  1.100
& N& w$ h: c+ ?: C- E9 U+ q  libswscale      3.  0.100 /  3.  0.100
3 `) l: J8 l& v# z" F0 r, ?2 I  libswresample   1.  1.100 /  1.  1.100% }2 L: W# f/ m4 e
Hyper fast Audio and Video encoder8 Q6 w( Q, n% G3 B) q" j: J
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...7 v8 J7 F* C5 X
Use -h to get full help or, even better, run 'man ffmpeg'

% W( _3 Z* J+ P% t$ q' t2 g1 Y4 _* l& I3 ^+ ]' a% {
方法二:& |3 Q8 H! n( n6 q3 \

7 W4 {# [1 L. e! P9 R* ]' i以 ffmpeginstaller 安裝 ffmpeg 相關套件:
( b' ?9 f$ V+ a: H% _
+ n( n1 i+ Y0 X' j0 }8 |7 j
http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/2 Q9 \# S" t+ j# l; l9 J
解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為
7 y' [& s/ C( B; y
/tmp/ffmpeginstaller.8.0/
* Q. ~: B* g8 t, Y3 {3 g  f進去目錄後,下指令以執行
  p4 N( k" j% K3 Q/ G
+ Z( b9 X* ^' S  L# n: w. e[root]# ./install/ s3 f* W' n3 E, z7 Z, G

0 m( Z. }' l4 R4 O# d1 X安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。
+ H0 I5 `; z( W9 r其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時
9 |7 ?( l4 O0 G, R
下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:) B; [6 F5 I6 W# {0 e: H. a5 W4 m
- S* C! G3 u' j. C) }- ?

1 E1 r+ X) E) v1 _
7 J$ k# P8 m8 I, [* u參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html- R6 E6 Y# v  l( Q% h
6 G0 I/ i( X% V5 B: B0 U/ s, i

; k; `; K, o: ~. z
* `$ e) Z) S( ?+ L# s  j0 _6 _5 g: I




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