如何在CentOS 7上安装FFMPEG

时间:2020-03-05 15:27:55  来源:igfitidea点击:

FFMPEG是一个主要的多媒体框架,能够解码,编码,跨代码,mux,调制,流,过滤器和以不同格式播放各种音频和视频文件。
FFMPEG是一个非常快速的视频和音频转换器,也可以从实时音频/视频源获取。
它还可以通过高质量的多相滤波器在任意样的示例速率和重新尺寸视频之间进行转换。
它是LibaVCodec,Libavutil,LibavFormat,Libavfilter,LibavDevice,Libswswale和LibSwreesample等的各种库文件支持。

libavcodec一个音频/视频编解码器库libavutil实用程序库,可以帮助便携式多媒体编程libavformat库,它为多路复用和多路复用视频/音频和字幕流框架提供了libavfilter库的框架,它增强了一个通用音频/视频过滤libavdevice库,它提供了从和渲染的框架抓取框架对于许多常见的多媒体输入/输出设备框架libswrege库,增强高度优化的镜像缩放和颜色空间和像素格式转换操作libswresample库,推广音频重采样,rematrixing和示例格式转换操作

简而言之,它是一个免费的软件,包括库和程序来处理多媒体数据。
它也可以用作PHP和其他编程语言中的CommandLine工具,用于代码转换多媒体文件。

ffmpeg的安装步骤

我们需要安装一个合适的用于该安装的FFMPEG包,这是该安装中最重要的步骤。

我尝试了像Centos 7中的rpmforge,epel和webtatic repos等各种repos,但这些repos缺少ffmpeg软件包。
因此,我尝试了一个被称为nux dextop的新repo。
让我们走过安装步骤。

1.在CentOS 7上启用NUX Dextop Repo

它是一个第三方RPM存储库,其中包含许多用于CentOS发布的流行多媒体相关包。
仅当在服务器中启用了EPEEL REPO时,此Repo仅工作。
因此,我们需要首先确保已启用Epel Repo。

这就是我们在CentOS 7服务器上安装涡涡涡涡涡流仓库。

#Install EPEL repo
yum -y install epel-release

启用epel repo后,请继续并安装NUX Dextop存储库。

root@server1 [~]# rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
root@server1 [~]# rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
Retrieving http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
Preparing... ################################# [100%]
Updating/installing...
1:nux-dextop-release-0-1.el7.nux ################################# [100%]
root@server1 [~]#
***IMPORTANT ***
Nux Dextop repository is an architecture independent RPM, so you can install the same RPM on both 32-bit and 64-bit.

我们现在可以验证NUX Dextop存储库是否已成功安装。

2.安装ffmpeg和ffmpeg开发包

通过安装这些包,所有库将并行安装。

root@server1 [~]# yum -y install ffmpeg ffmpeg-devel
===============================================================================================================================================
Package Arch Version Repository Size
===============================================================================================================================================
Installing:
ffmpeg x86_64 2.6.5-1.el7.nux nux-dextop 1.5 M
ffmpeg-devel x86_64 2.6.5-1.el7.nux nux-dextop 286 k
Installing for dependencies:
SDL x86_64 1.2.15-14.el7 base 204 k
alsa-lib x86_64 1.0.28-2.el7 base 391 k
ffmpeg-libs x86_64 2.6.5-1.el7.nux nux-dextop 5.0 M
flac-libs x86_64 1.3.0-5.el7_1 base 169 k
fribidi x86_64 0.19.4-6.el7 base 63 k
gsm x86_64 1.0.13-11.el7 base 30 k
lame-libs x86_64 3.99.5-2.el7 nux-dextop 339 k
libXi x86_64 1.7.4-2.el7 base 40 k
libXtst x86_64 1.2.2-2.1.el7 base 20 k
libXv x86_64 1.0.10-2.el7 base 18 k
libass x86_64 0.13.1-1.el7 epel 90 k
libasyncns x86_64 0.8-7.el7 base 26 k
libavdevice x86_64 2.6.5-1.el7.nux nux-dextop 71 k
libcdio x86_64 0.92-1.el7 base 235 k
libcdio-paranoia x86_64 10.2+0.90-11.el7 base 70 k
libdc1394 x86_64 2.2.2-3.el7 epel 121 k
libogg x86_64 2:1.3.0-7.el7 base 24 k
libraw1394 x86_64 2.1.0-2.el7 base 63 k
libsndfile x86_64 1.0.25-10.el7 base 149 k
libtheora x86_64 1:1.1.1-8.el7 base 136 k
libusbx x86_64 1.0.15-4.el7 base 50 k
libv4l x86_64 0.9.5-4.el7 base 194 k
libva x86_64 1.2.1-3.el7 epel 68 k
libvdpau x86_64 1.1-2.el7 base 32 k
libvorbis x86_64 1:1.3.3-8.el7 base 204 k
mesa-filesystem x86_64 10.6.5-3.20140824.el7 base 23 k
openal-soft x86_64 1.16.0-2.el7 epel 282 k
openjpeg-libs x86_64 1.5.1-10.el7 base 85 k
opus x86_64 1.0.2-6.el7 base 630 k
orc x86_64 0.4.22-5.el7 base 165 k
pulseaudio-libs x86_64 6.0-7.el7 base 576 k
schroedinger x86_64 1.0.11-4.el7 epel 291 k
soxr x86_64 0.1.2-1.el7 epel 77 k
speex x86_64 1.2-0.19.rc1.el7 base 98 k
x264-libs x86_64 0.142-11.20141221git6a301b6.el7.nux nux-dextop 570 k
x265-libs x86_64 1.6-1.el7.nux nux-dextop 476 k
xvidcore x86_64 1.3.2-5.el7.nux nux-dextop 258 k
Transaction Summary
===============================================================================================================================================
Install 2 Packages (+37 Dependent packages)

3.检查并确认FFMPEG版本

我们可以使用此命令检查安装的ffmpeg版本并确认配置设置。

root@server1 [~]# ffmpeg
ffmpeg version 2.6.5 Copyright (c) 2000-2014 the FFmpeg developers
built with gcc 4.8.3 (GCC) 20140911 (Red Hat 4.8.3-9)
configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --optflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic' --enable-bzlib --disable-crystalhd --enable-gnutls --enable-ladspa --enable-libass --enable-libcdio --enable-libdc1394 --disable-indev=Hyman --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-openal --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-x11grab --enable-avfilter --enable-avresample --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-runtime-cpudetect
libavutil 54. 20.100/54. 20.100
libavcodec 56. 26.100/56. 26.100
libavformat 56. 25.101/56. 25.101
libavdevice 56. 4.100/56. 4.100
libavfilter 5. 11.102/5. 11.102
libavresample 2. 1. 0/2. 1. 0
libswscale 3. 1.101/3. 1.101
libswresample 1. 1.100/1. 1.100
libpostproc 53. 3.100/53. 3.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
Use -h to get full help or, even better, run 'man ffmpeg'

现在我们已经完成了FFMPEG的安装。
当我们在正确的轨道上移动时,我们会看到安装它有多简单。

我将在CLI上使用此模块将MP3文件转换为Oog格式的示例。

下载MP3文件并执行ffmpeg命令以将MP3文件转换为OGG格式。

root@server1 [/usr/local/src]# wget https://ia802508.us.archive.org/5/items/testmp3testfile/mpthreetest.mp3
--2015-02-09 09:01:43-- https://ia802508.us.archive.org/5/items/testmp3testfile/mpthreetest.mp3
Resolving ia802508.us.archive.org (ia802508.us.archive.org)... 207.241.228.198
Connecting to ia802508.us.archive.org (ia802508.us.archive.org)|207.241.228.198|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 198658 (194K)
Saving to: ‘mpthreetest.mp3’
100%[=====================================================================================================>] 1,98,658 999KB/s in 0.2s
2015-02-09 09:01:44 (999 KB/s) - ‘mpthreetest.mp3’ saved [198658/198658]
root@server1 [/usr/local/src]# ffmpeg -i mpthreetest.mp3 -c:a libvorbis -q:a 4 mpthreetest.ogg
ffmpeg version 2.6.5 Copyright (c) 2000-2014 the FFmpeg developers
built with gcc 4.8.3 (GCC) 20140911 (Red Hat 4.8.3-9)
configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --optflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic' --enable-bzlib --disable-crystalhd --enable-gnutls --enable-ladspa --enable-libass --enable-libcdio --enable-libdc1394 --disable-indev=Hyman --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-openal --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-x11grab --enable-avfilter --enable-avresample --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-runtime-cpudetect
libavutil 54. 20.100/54. 20.100
libavcodec 56. 26.100/56. 26.100
libavformat 56. 25.101/56. 25.101
libavdevice 56. 4.100/56. 4.100
libavfilter 5. 11.102/5. 11.102
libavresample 2. 1. 0/2. 1. 0
libswscale 3. 1.101/3. 1.101
libswresample 1. 1.100/1. 1.100
libpostproc 53. 3.100/53. 3.100
[mp3 @ 0x16e2e40] Estimating duration from bitrate, this Jan be inaccurate
Input #0, mp3, from 'mpthreetest.mp3':
Metadata:
title : Test of MP3 File
artist : Me
album : Me
date : 2006
comment : test
track : 1
genre : Other
Duration: 00:00:12.42, start: 0.000000, bitrate: 128 kb/s
Stream #0:0: Audio: mp3, 44100 Hz, mono, s16p, 128 kb/s
Output #0, ogg, to 'mpthreetest.ogg':
Metadata:
title : Test of MP3 File
artist : Me
album : Me
date : 2006
comment : test
track : 1
genre : Other
encoder : Lavf56.25.101
Stream #0:0: Audio: vorbis (libvorbis), 44100 Hz, mono, fltp
Metadata:
encoder : Lavc56.26.100 libvorbis
title : Test of MP3 File
artist : Me
album : Me
date : 2006
DESCRIPTION : test
TRACKNUMBER : 1
genre : Other
Stream mapping:
Stream #0:0 -> #0:0 (mp3 (native) -> vorbis (libvorbis))
Press [q] to stop, [?] for help
size= 105kB time=00:00:12.40 bitrate= 69.1kbits/s
video:0kB audio:100kB subtitle:0kB other streams:0kB global headers:3kB muxing overhead: 4.706274%

现在,我们的MP3测试文件转换为Vorbis(OGG)音频压缩格式,与MP3相比大得多。

同样,我们可以使用此命令行工具对任何视频,镜像或者音频文件格式进行编码,解码和转换任何视频,镜像或者音频文件格式。
我们甚至可以通过正确的编码在PHP中使用此模块。
我们可以通过参考运行命令"man ffmpeg"来获取更多有关使用此工具的更多信息。

root@server1 [~]# man ffmpeg