史林峰的个人 2019-03-12
FFmpeg是最好的多媒体框架之一,包含用于不同任务的各种工具。例如,ffplay是一种可用于播放音频/视频文件的便携式媒体播放器,ffmpeg可以在不同的文件格式之间进行转换,ffserver可用于流式传输直播,而ffprobe则能够分析多媒体流。
由于其中可用工具的多样性,该框架非常强大,可为用户提供最佳技术解决方案。根据官方网站上对FFmpeg的描述,拥有如此出色的多媒体框架的原因是可用的最佳免费软件选项的组合。
FFmpeg框架提供了高安全性,其原因在于开发人员在查看代码时的严格要求,始终考虑到安全性。
我非常确定当您想要进行一些数字音频和视频流或录制时,您会发现这个框架非常有用。在FFmpeg框架的帮助下,您可以做很多其他实用的事情,例如将您的wav文件转换为mp3文件,对视频进行编码和解码,甚至缩放它们。
根据官方网站FFmpeg能够做到以下几点。
让我举一个例子,一个非常简单的例子。以下命令会将您的mp4文件转换为avi文件,就像那样简单。
#ffmpeg -i Lone_Ranger.mp4 Lone_Ranger.avi上述命令仅用于解释,建议不要在实践中使用,因为未声明codex,bitrate和其他细节。
在下一部分中,我们将练习一些FFmpeg多媒体框架工具,但在此之前我们必须将它安装在我们的Linux机器中。
如何在Linux中安装FFmpeg Multimedia Framework
由于FFmpeg软件包是为最常用的Linux发行版提供的,因此安装相对容易。让我们从基于Ubuntu的发行版中安装FFmpeg框架开始。
在Ubuntu和Linux Mint上安装FFmpeg
我将通过官方博客中推荐的PPA安装FFmpeg。打开一个新终端(CTRL + ALT + T),然后运行以下命令。
$ sudo add-apt-repository ppa:mc3man/trusty-media $ sudo apt-get update $ sudo apt-get install ffmpeg $ ffmpeg -version
要安装FFmpeg,首先需要将以下行添加到/etc/apt/sources.list文件中。 根据您的发行版,使用'stretch','jessie'或'wheezy'更改'<mydist>'。
deb http://www.deb-multimedia.org <mydist> main non-free deb-src http://www.deb-multimedia.org <mydist> main non-free
然后使用以下命令更新系统软件包源并安装FFmpeg。
$ sudo apt-get update $ sudo apt-get install deb-multimedia-keyring $ sudo apt-get update $ sudo apt-get install ffmpeg $ ffmpeg -version
在CentOS和RHEL上安装FFmpeg
要在CentOS和RHEL发行版上安装FFmpeg,您需要使用以下命令在系统上启用EPEL和RPM Fusion存储库。
要安装和启用EPEL,请使用以下命令。
# yum install epel-release
要安装和启用RPM Fusion,请在您的分发版本上使用以下命令。
-------------- 在 CentOS & RHEL 7.x 上-------------- # yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-7.noarch.rpm -------------- 在 CentOS & RHEL 6.x 上 -------------- # yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-6.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-6.noarch.rpm
启用存储库后,运行以下命令安装FFmpeg:
# yum install ffmpeg ffmpeg-devel # ffmpeg -version
$ sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm $ sudo dnf install ffmpeg ffmpeg-devel $ ffmpeg -version
FFmpeg从源代码编译
从源代码编译软件并不是世界上最容易的事情,但只要有正确的指示,我们就可以做到。 首先确保您的系统满足所有依赖项。 可以使用以下命令安装这些依赖项。
首先,告诉系统下拉最新的软件包。
$ sudo apt-get update
使用以下命令安装依赖项。
-------------- 在 Debian & Ubuntu 上 -------------- $ sudo apt-get -y install autoconf automake build-essential libass-dev libfreetype6-dev libgpac-dev \ libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libx11-dev \ libxext-dev libxfixes-dev pkg-config texi2html zlib1g-dev
-------------- 在 CentOS and RHEL 上-------------- # yum install glibc gcc gcc-c++ autoconf automake libtool git make nasm pkgconfig SDL-devel \ a52dec a52dec-devel alsa-lib-devel faac faac-devel faad2 faad2-devel freetype-devel giflib gsm gsm-devel \ imlib2 imlib2-devel lame lame-devel libICE-devel libSM-devel libX11-devel libXau-devel libXdmcp-devel \ libXext-devel libXrandr-devel libXrender-devel libXt-devel libogg libvorbis vorbis-tools mesa-libGL-devel \ mesa-libGLU-devel xorg-x11-proto-devel zlib-devel libtheora theora-tools ncurses-devel libdc1394 libdc1394-devel \ amrnb-devel amrwb-devel opencore-amr-devel
然后使用以下命令为FFmpeg源创建新目录。 这是将下载源文件的目录。
$ mkdir ~/ffmpeg_sources
现在通过运行以下命令编译并安装FFmpeg使用的yasm汇编程序。
$ cd ~/ffmpeg_sources $ wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz $ tar xzvf yasm-1.3.0.tar.gz $ cd yasm-1.3.0 $ ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" $ make $ make install $ make distclean $ export "PATH=$PATH:$HOME/bin"
成功安装yasm汇编程序后,就可以安装一些将与特定FFmpeg工具一起使用的各种编码器。 使用以下命令安装H.264视频编码器。
$ cd ~/ffmpeg_sources $ wget http://download.videolan.org/pub/x264/snapshots/last_x264.tar.bz2 $ tar xjvf last_x264.tar.bz2 $ cd x264-snapshot* $ ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static $ make $ make install $ make distclean
另一个不错的有用编码器是libfdk-aac AAC音频编码器。
$ cd ~/ffmpeg_sources $ wget -O fdk-aac.zip https://github.com/mstorsjo/fdk-aac/zipball/master $ unzip fdk-aac.zip $ cd mstorsjo-fdk-aac* $ autoreconf -fiv $./configure --prefix="$HOME/ffmpeg_build" --disable-shared $ make $ make install $ make distclean
安装libopus音频解码器和编码器。
$ cd ~/ffmpeg_sources $ wget http://downloads.xiph.org/releases/opus/opus-1.1.tar.gz $ tar xzvf opus-1.1.tar.gz $ cd opus-1.1 $ ./configure --prefix="$HOME/ffmpeg_build" --disable-shared $ make $ make install $ make distclean
现在,是时候从源代码安装ffmpeg了。
$ cd ~/ffmpeg_sources $ wget http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 $ tar xjvf ffmpeg-snapshot.tar.bz2 $ cd ffmpeg $ PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" $ export PKG_CONFIG_PATH $ ./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" \ --extra-ldflags="-L$HOME/ffmpeg_build/lib" --bindir="$HOME/bin" --extra-libs="-ldl" --enable-gpl \ --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus \ --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-x11grab $ make $ make install $ make distclean $ hash -r
注意:如果您尚未安装某些编码器,请确保从上面的“./configure”命令中删除“-enable-encoder_name”,以便安装完成没有任何问题。
总结
在第一部分中,我们根据FFmpeg多媒体框架向读者更新了最新消息,并向他们展示了如何在Linux机器中安装它。 接下来的部分将完全是学习如何在这个领先的多媒体框架中使用神奇的工具。