使用ebextensions配置在弹性beanstalk上安装ffmpeg

时间:2014-04-28 12:09:14

标签: amazon-web-services ffmpeg elastic-beanstalk

我正在尝试在亚马逊服务器上的弹性beanstalk实例上安装最新版本的ffmpeg。我已经创建了我的配置文件并添加了这些container_commands:

    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似乎不起作用,因此ffm​​peg不会解压缩。任何想法可能是什么问题?

谢谢, 海伦

6 个答案:

答案 0 :(得分:24)

亚马逊的一个善良的人帮助我,并发送了这个有效的配置文件,希望其他人会发现这个有用:

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"
  04-ln:
    command: "if [[ ! -f /usr/bin/ffmpeg ]] ; then ln -sf /opt/ffmpeg/ffmpeg-3.4-64bit-static/ffmpeg /usr/bin/ffmpeg; fi"
  05-ln:
    command: "if [[ ! -f /usr/bin/ffprobe ]] ; then ln -sf /opt/ffmpeg/ffmpeg-3.4-64bit-static/ffprobe /usr/bin/ffprobe; fi"
  06-pecl:
    command: "if [ `pecl list | grep imagick` ] ; then pecl install -f imagick; fi"

编辑:更改了命令以安装从FFMPEG网站链接的“更官方”静态版本。此外,Gusari的前静态版本似乎不再可用。

答案 1 :(得分:6)

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

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

答案 2 :(得分:2)

第一个命令" 01-wget ..."中未指定版本。但是,在链接文件时指定它。自发布以来,该版本已从" ffmpeg-3.3.1-64bit-static" to" ffmpeg-3.3.3-64bit-static"有两种解决方案可以解决这个问题:

  1. 指定wget的版本
  2. 在解包时剥离包含目录。

    03-焦油: 命令:" tar xvf /tmp/ffmpeg.tar.xz -C / opt / ffmpeg --strip 1"

  3. 以下是完整的脚本:

    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"
    

答案 3 :(得分:1)

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

packages:
  yum:
    ImageMagick: []

sources:
  /usr/local/bin: http://ffmpeg.org/releases/ffmpeg-4.1.tar.gz

答案 4 :(得分:0)

检查cloud-init日志中的消息。在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

答案 5 :(得分:0)

未经测试,但不应该是

tar xzf /usr/local/bin/ffmpeg

没有减号?