Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save willmasters/382fe6caba44a4345a3de95d98d3aae5 to your computer and use it in GitHub Desktop.
Save willmasters/382fe6caba44a4345a3de95d98d3aae5 to your computer and use it in GitHub Desktop.
#
sudo su -
cd /usr/local/bin
mkdir ffmpeg
cd ffmpeg
wget https://www.johnvansickle.com/ffmpeg/old-releases/ffmpeg-4.2.1-amd64-static.tar.xz
tar xvf ffmpeg-4.2.1-amd64-static.tar.xz
mv ffmpeg-4.2.1-amd64-static/ffmpeg .
ln -s /usr/local/bin/ffmpeg/ffmpeg /usr/bin/ffmpeg
exit
@VladimirMikulic
Copy link

Solution May 2024

Given that nobody wants to post their solution, I figured I will :)

.ebextensions/ffmpeg.config

sources:
  /usr/local/bin/ffmpeg: https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-amd64-static.tar.xz

commands:
  01_link_ffmpeg:
    command: ln -sf /usr/local/bin/ffmpeg/ffmpeg*/ffmpeg /usr/bin/ffmpeg

My initial attempt was to only use Linux commands like wget and tar to download and extract the archive. However, running tar command would froze machine each time I ran it. The above works though without any issues.

@januszm
Copy link

januszm commented May 23, 2024

@VladimirMikulic pretty cool, however this solution still relies on the remote server. I was in a situation where a public server for some package went down couple of times, disrupting deployments. For more "sensitive" projects I'd recommend periodically caching the file on your S3 bucket and using this solution:

commands:
  install_ffmpeg:
    command: |
      if [ ! -e /usr/bin/ffmpeg ]
      then
        aws s3 cp s3://YOUR_BUCKET/ffmpeg-release-amd64-static.tar.xz ffmpeg-release-amd64-static.tar.xz
        mkdir -p /usr/local
        tar xf ffmpeg-release-amd64-static.tar.xz -C /usr/local
        ln -sf /usr/local/ffmpeg-6.0-amd64-static/ffmpeg /usr/bin/ffmpeg
        ln -sf /usr/local/ffmpeg-6.0-amd64-static/ffprobe /usr/bin/ffprobe
      fi

You still have to download and upload the release file to S3, but it shouldn't be a big deal if you do it 2-3 times a year or have another CI/CD task to do it for you once a week.

@VladimirMikulic
Copy link

@januszm thanks for the code snippet but tar is not an option for me since it frozes the machine unfortunately :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment