Last active
February 14, 2020 04:15
-
-
Save tylerforesthauser/aec9afbc23cff123290c0e989b5d4b7a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Script to install FFmpeg on GNU/Linux | |
# Website: https://www.johnvansickle.com/ffmpeg/ | |
# Created by q3aql ([email protected]) | |
# Builds by John Van Sickle ([email protected]) | |
# Licensed by GPL v.2 | |
# Date: 22-03-2019 | |
# -------------------------------------- | |
VERSION=1.2.1 | |
URL=https://www.johnvansickle.com/ffmpeg/ | |
URL_RELEASES=https://johnvansickle.com/ffmpeg/releases/ | |
URL_BUILDS=https://johnvansickle.com/ffmpeg/builds/ | |
TMP_DIR=$HOME/tmp | |
PATH_INSTALL=$HOME/bin/ | |
# Detect "kernel" name | |
KERNEL=$(uname -s) | |
if [ $KERNEL == "Linux" ]; then | |
KERNEL=linux | |
else | |
echo "Unsupported OS ($KERNEL)" | |
exit 0 | |
fi | |
# Detect "arch" system | |
archs=`uname -m` | |
case "$archs" in | |
i?86) | |
ARCH=i686 | |
;; | |
x86_64) | |
ARCH=amd64 | |
;; | |
*) | |
echo "Unsupported Arquitecture ($archs)" | |
exit 0 | |
esac | |
#Check if 'curl' is installed. | |
curl --help > /dev/null | |
if [ "$?" -eq 0 ] ; then | |
echo "OK" > /dev/null | |
else | |
echo "You must install 'curl'." | |
fi | |
# Check available downloaders (wget, axel or aria2c). | |
wget --help > /dev/null | |
if [ "$?" -eq 0 ] ; then | |
APP_DOWNLOAD='wget -c' | |
NAME_APP_DOWNLOAD="wget" | |
else | |
echo "wget disabled" | |
fi | |
axel --help > /dev/null | |
if [ "$?" -eq 0 ] ; then | |
APP_DOWNLOAD='axel' | |
NAME_APP_DOWNLOAD="axel" | |
else | |
echo "axel disabled" | |
fi | |
aria2c --help > /dev/null | |
if [ "$?" -eq 0 ] ; then | |
APP_DOWNLOAD='aria2c --check-certificate=false' | |
NAME_APP_DOWNLOAD="aria2c" | |
else | |
echo "aria2c disabled" | |
fi | |
if [ "x$APP_DOWNLOAD" = "x" ] ; then | |
echo "Error: You must install 'wget' or 'axel' or 'aria2'." | |
fi | |
#Install, update & uninstall FFmpeg | |
case $1 in | |
--install|-install|--update|-update) | |
mkdir $TMP_DIR && cd $TMP_DIR | |
rm -rf ffmpeg-* | |
if [ "$2" == "release" ] ; then | |
curl $URL | grep "$URL_RELEASES" | cut -d '"' -f 2 | grep "$ARCH" | head -1 > $TMP_DIR/ffmpeg-url | |
if [ "$?" -eq 0 ] ; then | |
echo "OK" > /dev/null | |
else | |
echo "Connection problem!" | |
echo "Exiting..." | |
exit | |
fi | |
else | |
curl $URL | grep "$URL_BUILDS" | cut -d '"' -f 2 | grep "$ARCH" | head -1 > $TMP_DIR/ffmpeg-url | |
if [ "$?" -eq 0 ] ; then | |
echo "OK" > /dev/null | |
else | |
echo "Connection problem!" | |
echo "Exiting..." | |
exit | |
fi | |
fi | |
URL_PACKAGE=`cat $TMP_DIR/ffmpeg-url` | |
NAME_PACKAGE=`cat $TMP_DIR/ffmpeg-url | cut -d "/" -f 6` | |
clear | |
echo "Downloading $NAME_PACKAGE ($NAME_APP_DOWNLOAD)" | |
$APP_DOWNLOAD $URL_PACKAGE | |
if [ "$?" -eq 0 ] ; then | |
echo "OK" > /dev/null | |
else | |
echo "Connection problem!" | |
echo "Exiting..." | |
exit | |
fi | |
tar Jxvf $NAME_PACKAGE | |
rm -f ffmpeg-url ffmpeg*xz | |
cd ffmpeg-* | |
cp -rf ffmpeg $PATH_INSTALL | |
cp -rf ffprobe $PATH_INSTALL | |
cd .. | |
rm -rf ffmpeg-* | |
echo "Done!" | |
exit 0 | |
;; | |
--help|-help|-h|*) | |
clear | |
echo "" | |
echo "** ffmpeg-install v.$VERSION **" | |
echo "" | |
echo "* How to install:" | |
echo "" | |
echo " ffmpeg-install --install (Latest git version)" | |
echo " ffmpeg-install --install release (Latest stable version)" | |
echo "" | |
echo "* How to update:" | |
echo "" | |
echo " ffmpeg-install --update (Latest git version)" | |
echo " ffmpeg-install --update release (Latest stable version)" | |
echo "" | |
echo "* Show help:" | |
echo "" | |
echo " ffmpeg --help" | |
echo "" | |
exit 0 | |
esac | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment