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

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

作者: IT_man    時間: 2015-10-10 10:47
標題: Linux下安装FFmpeg ~1
本帖最後由 IT_man 於 2017-3-28 13:02 編輯
  L+ O* [- f- X- j8 x" ~1 Q: ], ?- e, h- q
FFmpeg是一款强大的視訊編解碼工具,可以處理大量的編碼格式。ffmpeg是開放原碼,在Linux平台下開發,同時也可以在其它作業系统下編譯執行,包括Windows、Mac OS X等
- r  U8 K4 |% {/ Z: K0 t
9 D$ |1 x  W( U方法一:
" ~* B+ d$ d9 C
4 [* u' I9 K( V8 C% n" }7 t
[安裝]8 g% y; ]' T) \
[/usr/local]#tar -jxvf ffmpeg-2.5.3.tar.bz2
7 V2 F" Y2 H) v[/usr/local]#cd ffmpeg-2.5.36 Y9 U& H" G: z% F6 A8 j
2 O: U& ^. X4 ~$ |

6 n7 `" ?: e  k+ N, n3 d% R安裝yasm
% l: o7 c* ]" j* @, dffmpeg編譯中為了提高compile速度,使用了匯編指令,于是需要使用這個工具。7 B! ?$ D7 O5 L/ O3 E
[/usr/local/ffmpeg-2.5.3]#yum -y install yasm
5 ]4 w1 u( {) C$ g# b3 s! I7 k; T! ~5 @或者同樣使用源碼方式安裝,下載yasm源代碼,然后使用./configure、make以及make istall進行安裝+ X. |% ]- q6 v0 K! }; S
[/usr/local/ffmpeg-2.5.3]#./configure --enable-shared --prefix=/usr/local/ffmpeg/ U' u# m" h+ j1 P* }+ P9 C
其中–enable-shared表示產生動態連接庫,可以供以后編程使用,同時生成的可執行程序也依賴這些動態庫。如果不加上–enable-shared選項則使用靜態連接的方式編譯,此時不會產生動態庫,同時產生的ffmpeg等的可執行檔也比較大,但他們不需要動態庫就可以直接執行。
4 t0 H; j9 M  @- \- n# l–prefix表示工具安裝的目錄,這裡設為/usr/local/ffmpeg。
. O5 J0 J  I7 J/ p
[/usr/local/ffmpeg-2.5.3]#make     2 U1 U: w% J# y% m1 {* {9 F$ ^
[/usr/local/ffmpeg-2.5.3]#make install # t. {7 u  ?  \+ T" A
' B( ^+ _1 f5 i

# N+ Z' [/ T) V' U: Q4 a4 t! A7 F7 |8 x路径處理:

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

不管是藉由compile還是可執行程序的執行都需要依賴lib下面的動態庫,可以把里面的so文件拷貝到/usr/lib下,也可以直接修改配置文件。查看/etc/ld.so.conf文件:
9 l& F' G0 C3 D& T. S[/usr/local/ffmpeg-2.5.3]#vi /etc/ld.so.conf2 |* T: w5 q! Y
include ld.so.conf.d/*.conf
( a9 g- v$ G7 k) U! ~2 S
& {2 i! e4 L4 O; m於是可以在/etc/ld.so.conf.d/建一個新的文件ffmpeg.conf,新增一行,即為ffmpeg的lib目錄:, w3 P' b, [. T5 r0 b3 L
/usr/local/ffmpeg/lib, Q1 ~% F+ Q" P7 |3 }+ `
再執行ldconfig,更新ld.so.cache,使修改生效。When run ldconfig show error:% C, X; T+ R" N' ]
ldconfig: /usr/lib64/libgd.so.2 不是一個符號連接檔 ==>
/ r5 v: o" f/ G- ?' ell /usr/lib64/
& M  P, }0 n) l+ F-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2# ?5 F1 A+ q, ^1 y7 n& _" \0 r
-rwxr-xr-x 1 root root 275328 2015-01-11 08:03 /usr/lib64/libgd.so.2.0.0" t2 d8 L( D2 b* J# U, v% x
So:
" T/ I& ]+ w8 `0 ~' `$ Gln -s /usr/lib64/libgd.so.2.0.0   /usr/lib64/libgd.so.2     就解決& h& u. W- w1 E  l/ }
可以 vi /etc/ld.so.cache  看看
/usr/local/ffmpeg/lib 是否已加入 cache中
4 Y& g$ k, b* L2 z, w6 ^! j
" X9 }% ]/ ~0 x2 J9 l9 Q. V為了在任何地方能够直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行此工具,可以把可執行檔案複製到bin目錄下,或者在bin目錄下建立軟連結。類似于Windows下的捷徑,如果原可執行檔案被删除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建連結命令如下: - v* a" _3 _; R0 E0 J2 v6 n9 M0 Q" a

2 E' Q2 L, z$ G! k5 K9 B
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffmpeg  . % G8 J: H+ @* c- q. b
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffprobe .
( y) [3 X! C# b8 N3 y# p0 R* g
sudo ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/   or      [/usr/local/bin]# sudo ln -s /usr/local/ffmpeg/bin/ffserver .
4 i1 m0 y! P  @3 f# h0 S* z. m, u. O8 v; |' u, S% j9 S
另外,如果需要包含ffmpeg的頭文件,最好將include目錄下的ffmpeg複製到/usr/include中。
* L& ?3 D5 \# r/ @! ~% c/ L! o+ m現在可以在shell中直接輸入ffmpeg執行,結果如下:* D) G! x5 d. ^/ x/ L
  ]) c! B( n- [8 M8 z. P

) I2 z7 C' N0 Z9 I  m" s' M) s[root@CentOS6 bin]# ffmpeg
! T) ~/ {( z* L* T; j8 E) _ffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers
" U' i6 R, n/ {# o2 F3 D" t" J$ Z  built on Oct  9 2015 16:11:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)
. \9 n4 F7 E5 q- r  configuration: --enable-shared --prefix=/usr/local/ffmpeg
8 e5 r9 E# b; ?3 Y# q5 m. s8 V  libavutil      54.  7.100 / 54.  7.100+ u8 E8 m6 ]5 y1 K
  libavcodec     56.  1.100 / 56.  1.100
* F& M5 {. c9 G3 g) X  libavformat    56.  4.100 / 56.  4.100
& z4 I1 f% [6 Q, o* _8 o  libavdevice    56.  0.100 / 56.  0.100) r  a  ~" s: L) c5 x' ?
  libavfilter     5.  1.100 /  5.  1.100
6 t1 N* k/ v( F  libswscale      3.  0.100 /  3.  0.1002 `) u2 w2 T8 v! V3 G+ P8 o
  libswresample   1.  1.100 /  1.  1.100  k9 x4 o& U& L2 ~/ S
Hyper fast Audio and Video encoder* u# a5 B8 n) d% f1 y6 N) V9 H
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...6 i( ]8 y, z  b: R- Q
Use -h to get full help or, even better, run 'man ffmpeg'

; }: P3 X6 e( I3 u7 I
9 }2 ?0 q' G4 o) D方法二:/ n7 x& W6 @/ P+ X" O
4 j4 w. R( J4 R
以 ffmpeginstaller 安裝 ffmpeg 相關套件:9 O1 C- D6 _- d1 i8 E
! P4 _7 ~3 L* n0 k
http://ffmpeginstaller.com下載到指定的目錄,例如:/tmp/8 h3 i! y- R/ P( A
解開壓縮檔後,會產生一個 ffmpeginstaller+版本號 的目錄,例如:我下載解開後的目錄為
3 }  d/ F9 U9 ?, Z& |  ^1 q4 N6 }
/tmp/ffmpeginstaller.8.0/) ]3 l6 B* Z8 M. \
進去目錄後,下指令以執行
5 d9 {7 C0 k- g" r
/ [) u% T% A) w* `[root]# ./install+ a5 n- ?2 l6 C2 q& M

  L8 I) P7 _& {+ D: X1 M! U安裝程式就會開始進行安裝,還會視情況自己上網去下載需要的檔案。+ p' `# l! w) I# n
其實這個安裝程式就是 yum install 的腳本,安裝過程大約 1 小時
5 U& \$ \+ i# D! p
下圖是 ffmpeginstaller 會安裝跟ffmpeg相關的套件:
$ @( U4 B+ [7 C% S% b$ T, x. G
* r' Q$ a, |2 G 8 t: i' i) a2 {3 R

8 C; y6 W2 P& t參考原發: http://oldgrayduck.blogspot.tw/2 ... staller-ffmpeg.html2 m/ p9 F8 R; _" R, U

/ A3 [+ T& L# Z& G( M+ ?0 u$ X5 r2 ?" ~

+ s$ i) Y$ e0 t/ l( ^$ u4 J




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