FFmpeg 是一个很强大的音视频处理工具,很多软件都是基于它进行开发的,比如 Windows 上大名鼎鼎的音视频转码工具格式工厂就是套壳 FFmpeg。
然而,FFmpeg 并不只支持 Windows,而是对于全平台的支持——它在 Mac 和 Linux 上同样十分强大。根据其官网(http://ffmpeg.org/)介绍,这是一个完整的、跨平台的解决方案,它既可以用来播放视频,也提供命令行工具来处理(记录、转换和传输)音视频,另外还有强大的视频处理库用于开发。总之一句话,强大就完事了。
那么,要想用上这个强大的程序,第一步自然是要学会如何安装。
关于安装,网上的教程很多。有利用系统自带包管理程序 apt-get
(Debian / Ubuntu) 或 yum
(CentOS / Fedora) 的,有下载源码自行编译的,甚至可能还有其它的一些方法。然而,系统包管理程序附带的 FFmpeg 通常都是几年前的上古版本,自行进行编译又比较复杂、繁琐,最简单的方法还要当属通过静态二进制文件。
打开官方提供的静态二进制文件下载站点(https://johnvansickle.com/ffmpeg/),左边是 git master
版本,可以理解成是开发版;右边是 release
,相当于正式版。
自行选择所需的程序版本,没有特殊要求的话,一般选择 release
版本。然后根据自己系统的架构,进行选择,一般来说 Linux 都是选择 ffmpeg-release-amd64-static.tar.xz
这个版本(即 X64 架构)。
将文件下载到 VPS 中:
wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz
出于安全考虑,可以同时下载对应的 md5 文件:
wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz.md5
并进行效验:
md5sum -c ffmpeg-release-amd64-static.tar.xz.md5
#返回 OK 说明效验成功,文件一致
ffmpeg-release-amd64-static.tar.xz: OK
使用系统自带的解压命令进行解压:
tar xvf ffmpeg-release-amd64-static.tar.xz
进入解压后的文件夹(文件夹名称中的版本号可能有所不同,具体以实际为准):
cd ffmpeg-4.3.1-amd64-static
并尝试运行:
./ffmpeg
#返回以下内容说明程序正常
ffmpeg version 4.3.1-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 8 (Debian 8.3.0-6)
configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
libpostproc 55. 7.100 / 55. 7.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,如果需要提供给其他程序调用,就需要将其配置为全局变量。
首先查询本机已有的全局变量:
echo $PATH
#比如我得到的就是这样,其中冒号分隔开来就是各个全局变量的目录
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
加入全局变量可以是把自己的 FFmpeg 目录添加进 $PATH
当中,也可以把 FFmpeg 的可执行文件复制到已有的目录里。
在这里,我更推荐直接把二进制文件复制到已有的目录当中:
sudo mv ffmpeg-4.3.1-amd64-static/ffmpeg ffmpeg-4.3.1-amd64-static/ffprobe /usr/local/bin/
然后检查 ffmpeg 的路径:
whereis ffmpeg
ffmpeg: /usr/local/bin/ffmpeg
whereis ffprobe
ffprobe: /usr/local/bin/ffprobe
返回路径一致说明操作无误。
$PATH
中添加新的目录,那么执行:#这里的 your_directory 就是所需添加的目录路径
export PATH=your_directory:$PATH
添加完成后再执行一次 echo $PATH
确认路径无误即可。
现在再执行 ffmpeg
可以发现它已经变成了全局命令,无论在哪里都是可以执行调用的。
如果需要卸载,也很简单:
sudo rm /usr/local/bin/ffmpeg /usr/local/bin/ffprobe
我在想:最简单的不是通过conda安装?conda大有接管linux系统的趋势
为了装一个程序又多装了另一个程序,不是很符合我的作风。
不过对于已经安装的人应该还是蛮方便的
以前我也是这么想的,但conda确实非常强大。一般现在装好一个系统之后马上就装conda,接管一切
https://github.com/nilaoda/N_m3u8DL-CLI
这个项目中也用到了 ffmpeg将m3u8格式文件转换成mp4的,挺好用