在Amazon Linux和Elastic Beanstalk中安装ffmpeg的方法
因为项目需要,需要在EC2和EB中安装FFMPEG来处理视频。
但Amazon Linux默认的yum源中没有FFMPEG,因此需要手动进行安装。
网上有各种的安装方法,有使用Nux Dextop YUM的安装,也有直接使用Static Builds的方式。经过比较试验,最终决定使用Static Builds的方式进行安装,安装方法记录如下。
在Amazon Linux中安装FFMPEG
FFMPEG官网 https://www.ffmpeg.org/download.html 中,推荐的Linux Static Builds的下载地址为: https://johnvansickle.com/ffmpeg/。
64位的Release版的下载地址为: https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-64bit-static.tar.xz, 注意网上很多教程和gist中所提的这个下载地址 http://ffmpeg.gusari.org/static/64bit/ffmpeg.static.64bit.latest.tar.gz 已经不再维护了。
登陆Amazon Linux,下载压缩包,解压后直接拷贝到指定的bin目录即可使用。
|
|
实际操作中有需要的话,可以再将ffmpeg
和ffprobe
链到/usr/bin中。
在Elastic BeanStalk中安装FFMPEG
在没有科学上网的情况下,国内访问https://johnvansickle.com这个网站很不稳定,在Beijing Region的EC2中,下载速度有时只有几KB。
为了能够在Elastic BeanStalk中稳定安装FFMPEG,采取的方案是自己将二进制文件重新打包,先上传到国内的S3中,再从S3下载二进制文件安装到EB的Instance中。
除了稳定外,这样还有一个好处,就是使用的Release的版本自己可控。即使johnvansickle.com后续不再维护FFMPEG了或者有最新的Release了,也不会对我们的使用产生影响。
具体步骤如下:
在本地机器或某个EC2中打包二进制文件上传S3, 此处以最新版的4.1为例。
|
|
配置EB从S3下载压缩包并解压到指定bin目录,此处可以直接使用EB的sources语法, 比自己用shell写一堆的命令来的更简洁。sources语法目前支持 tar, tar+gzip, tar+bz2, 和zip这四种格式。
在.ebextensions目录下添加配置文件20-install-ffmpeg.config, 内容如下。/usr/local/bin
可以修改为实际需要安装的路径。
|
|
使用eb deploy
发布,发布后登陆EC2查看是否生效。
yum源方式安装失败
网上也有文章提及了可以添加Nux Dextop YUM源的方式来进行安装, 这种方式可能适用于CentOS,但测试下来,并不适用于Amazon Linux,安装时会报错。
应该还需要安装其他的lib源才可以顺利安装。
|
|