Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 使用ebextensions配置在elastic beanstalk上安装ffmpeg_Amazon Web Services_Ffmpeg_Amazon Elastic Beanstalk - Fatal编程技术网

Amazon web services 使用ebextensions配置在elastic beanstalk上安装ffmpeg

Amazon web services 使用ebextensions配置在elastic beanstalk上安装ffmpeg,amazon-web-services,ffmpeg,amazon-elastic-beanstalk,Amazon Web Services,Ffmpeg,Amazon Elastic Beanstalk,我正试图在amazon服务器上的elastic beanstalk实例上安装最新版本的ffmpeg。我已经创建了配置文件并添加了以下容器命令: container_commands: 01-ffmpeg: command: wget -O/usr/local/bin/ffmpeg http://ffmpeg.gusari.org/static/64bit/ffmpeg.static.64bit.2014-03-05.tar.gz

我正试图在amazon服务器上的elastic beanstalk实例上安装最新版本的ffmpeg。我已经创建了配置文件并添加了以下容器命令:

    container_commands:
        01-ffmpeg:
            command: wget -O/usr/local/bin/ffmpeg http://ffmpeg.gusari.org/static/64bit/ffmpeg.static.64bit.2014-03-05.tar.gz
            leader_only: false
        02-ffmpeg:
            command: tar -xzf /usr/local/bin/ffmpeg
            leader_only: false
        03-ffmpeg:
            command: ln -s /usr/local/bin/ffmpeg /usr/bin/ffmpeg
            leader_only: false
命令01和03似乎工作得很好,但02似乎不工作,因此ffmpeg无法解压缩。你知道问题是什么吗

谢谢,
Helen

检查云初始化日志中的消息。在Linux实例上,这将是:

grep "03-ffmpeg" /var/log/eb-cfn-init.log
此外,您还可以登录到另一个文件,以便更容易地查找错误:

command: ln -s /usr/local/bin/ffmpeg /usr/bin/ffmpeg >> /var/log/my-init.log

未经测试,但不应该吗

tar xzf/usr/local/bin/ffmpeg


没有负号?

亚马逊的一位好心人帮我解决了问题,并给我发送了一个有效的配置文件,希望其他人会发现这很有用:

# .ebextensions/packages.config
packages:
  yum:
    ImageMagick: []
    ImageMagick-devel: []
commands:
  01-wget:
    command: "wget -O /tmp/ffmpeg.tar.xz https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz"
  02-mkdir:
    command: "if [ ! -d /opt/ffmpeg ] ; then mkdir -p /opt/ffmpeg; fi"
  03-tar:
    command: "tar xvf /tmp/ffmpeg.tar.xz -C /opt/ffmpeg"
  04-ln:
    command: "if [[ ! -f /usr/bin/ffmpeg ]] ; then ln -sf /opt/ffmpeg/ffmpeg-4.2.2-amd64-static/ffmpeg /usr/bin/ffmpeg; fi"
  05-ln:
    command: "if [[ ! -f /usr/bin/ffprobe ]] ; then ln -sf /opt/ffmpeg/ffmpeg-4.2.2-amd64-static/ffprobe /usr/bin/ffprobe; fi"
  06-pecl:
    command: "if [ `pecl list | grep imagick` ] ; then pecl install -f imagick; fi"
编辑
以上代码适用于我今天2020-01-03的Elastic Beanstalk环境
Python3.6,运行于64位Amazon Linux/2.9.17

已从官方链接。
(Gusari以前的静态构建似乎不再可用。)

警告
当您部署时,以上版本将始终下载最新版本。您还需要依赖于johnvansickle的站点处于在线状态(要部署),并且他的URL不会改变。两种备选办法是:

grep "03-ffmpeg" /var/log/eb-cfn-init.log
  • 将.tar.xz文件下载到您自己的CDN,并让您的部署从您自己的站点下载。(这样,如果John的站点在您部署时有一段时间停机,您不会受到影响。而且您也不会对ffmpeg版本在您未意识到的情况下的更改感到惊讶。)
  • 指定一个版本号,如
    https://johnvansickle.com/ffmpeg/old-releases/ffmpeg-4.2.2-amd64-static.tar.xz

您可以使用静态构建源和语法自动下载二进制文件并将其从静态构建tar提取到
/usr/local/bin
。下面是一个非常简单的例子,对我来说非常有效:

sources:
    /usr/local/bin: https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-64bit-static.tar.xz

第一个命令“01 wget…”中未指定版本,但在链接文件时指定了版本。自本版本发布以来,该版本已从“ffmpeg-3.3.1-64bit-static”更改为“ffmpeg-3.3.3-64bit-static”,有两种解决方案可解决此问题:

  • 指定wget的版本
  • 解包时剥离包含目录

    03焦油: 命令:“tarxvf/tmp/ffmpeg.tar.xz-C/opt/ffmpeg--strip 1”

  • 以下是完整的脚本:

    packages:
      yum:
        ImageMagick: []
        ImageMagick-devel: []
    commands:
      01-wget:
        command: "wget -O /tmp/ffmpeg.tar.xz https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-64bit-static.tar.xz"
      02-mkdir:
        command: "if [ ! -d /opt/ffmpeg ] ; then mkdir -p /opt/ffmpeg; fi"
      03-tar:
        command: "tar xvf /tmp/ffmpeg.tar.xz -C /opt/ffmpeg --strip 1"
      04-ln:
        command: "if [[ ! -f /usr/bin/ffmpeg ]] ; then ln -s /opt/ffmpeg/ffmpeg /usr/bin/ffmpeg; fi"
      05-ln:
        command: "if [[ ! -f /usr/bin/ffprobe ]] ; then ln -s /opt/ffmpeg/ffprobe /usr/bin/ffprobe; fi"
      06-pecl:
        command: "if [ `pecl list | grep imagick` ] ; then pecl install -f imagick; fi"
    

    将以下内容添加到
    .ebextensions/packages.config

    packages:
      yum:
        ImageMagick: []
    
    sources:
      /usr/local/bin: http://ffmpeg.org/releases/ffmpeg-4.1.tar.gz
    

    不幸的是,这似乎没有什么不同。不过,感谢您的回复。感谢您的回复,这当然有助于调试,但不幸的是,您仍然无法理解。任何人如果成功地在电子商务实例上安装了最新版本的ffmpeg和imagick,也欢迎您提供任何帮助,无论是否与上述内容完全不同。简单得多。谢谢我们在一起会非常懒惰!好主意。不过也有一些注释。不幸的是,这种联系不是官方的,而且有被淘汰的风险。这个链接现在已经死了。另一个问题是在没有官方支持的情况下的安全性。请注意,官方FFMPEG网站确实提供了,尽管是由第三方提供的。问题是压缩格式是
    xz
    。EB只接受ZIP和TAR(gz)。@SizzlingCode ffprobe应该包含在静态版本中。@vinay谢谢!这很有效。顺便说一句,我现在决定自己编译,这样我就可以获得AAC支持。嗨,我在使用这个扩展安装ffmpeg时遇到了这个问题:如果有任何帮助,我将不胜感激Yum没有可用于安装的命令-06-pecl。EBExtension中列出的程序包无法安装`我可以知道我们需要的文件名和文件夹结构吗?'编写这些命令..?非常好!只是小小的改变:
    命令:“wget-O/tmp/ffmpeg.tar.xzhttps://johnvansickle.com/ffmpeg/releases/ffmpeg-3.4.1-64bit-static.tar.xz“
    使发布版本和目录名对应。您应该指定lib版本。使用官方网站而不是johnvansickle guy不是更好吗?