ffmpeg-builds/src/ffmpeg-install

171 lines
3.9 KiB
Plaintext
Raw Normal View History

2015-10-16 19:13:10 +02:00
#!/bin/bash
# Script to install FFmpeg on GNU/Linux
2016-10-02 13:44:31 +02:00
# Website: https://www.johnvansickle.com/ffmpeg/
2019-03-23 16:41:00 +01:00
# Created by q3aql (q3aql@protonmail.ch)
2015-10-16 19:13:10 +02:00
# Builds by John Van Sickle (john.vansickle@gmail.com)
# Licensed by GPL v.2
2019-03-23 16:41:00 +01:00
# Date: 22-03-2019
2015-10-16 19:13:10 +02:00
# --------------------------------------
VERSION=1.2.1
2015-10-16 19:13:10 +02:00
2016-10-02 13:44:31 +02:00
URL=https://www.johnvansickle.com/ffmpeg/
URL_RELEASES=https://johnvansickle.com/ffmpeg/releases/
URL_BUILDS=https://johnvansickle.com/ffmpeg/builds/
2015-10-16 19:13:10 +02:00
TMP_DIR=/tmp
PATH_INSTALL=/usr/bin/
# Check if 'user' is 'root'
user=$(whoami)
if [ "$user" == "root" ] ; then
echo "OK" > /dev/null
else
echo "You must be root!"
exit 0
fi
# 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
2015-10-16 19:13:10 +02:00
;;
x86_64)
ARCH=amd64
2015-10-16 19:13:10 +02:00
;;
*)
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'
2016-03-03 17:36:46 +01:00
NAME_APP_DOWNLOAD="wget"
2015-10-16 19:13:10 +02:00
else
echo "wget disabled"
fi
axel --help > /dev/null
if [ "$?" -eq 0 ] ; then
APP_DOWNLOAD='axel'
2016-03-03 17:36:46 +01:00
NAME_APP_DOWNLOAD="axel"
2015-10-16 19:13:10 +02:00
else
echo "axel disabled"
fi
aria2c --help > /dev/null
if [ "$?" -eq 0 ] ; then
APP_DOWNLOAD='aria2c --check-certificate=false'
2016-03-03 17:36:46 +01:00
NAME_APP_DOWNLOAD="aria2c"
2015-10-16 19:13:10 +02:00
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)
cd $TMP_DIR
rm -rf ffmpeg-*
if [ "$2" == "release" ] ; then
2015-11-11 20:06:05 +01:00
curl $URL | grep "$URL_RELEASES" | cut -d '"' -f 2 | grep "$ARCH" | head -1 > $TMP_DIR/ffmpeg-url
2015-10-16 19:13:10 +02:00
if [ "$?" -eq 0 ] ; then
echo "OK" > /dev/null
else
echo "Connection problem!"
echo "Exiting..."
exit
fi
else
2015-11-11 20:06:05 +01:00
curl $URL | grep "$URL_BUILDS" | cut -d '"' -f 2 | grep "$ARCH" | head -1 > $TMP_DIR/ffmpeg-url
2015-10-16 19:13:10 +02:00
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/ffmpeg-url | cut -d "/" -f 6`
2015-11-11 20:06:05 +01:00
clear
2016-03-03 17:36:46 +01:00
echo "Downloading $NAME_PACKAGE ($NAME_APP_DOWNLOAD)"
2015-10-16 19:13:10 +02:00
$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
2015-10-16 19:13:10 +02:00
cd ffmpeg-*
cp -rf ffmpeg $PATH_INSTALL
cp -rf ffprobe $PATH_INSTALL
cd ..
rm -rf ffmpeg-*
echo "Done!"
exit 0
;;
--uninstall|-uninstall)
echo "Uninstalling..."
sleep 3
rm -rf /usr/bin/ffmpeg
rm -rf /usr/bin/ffprobe
rm -rf /usr/bin/ffserver
rm -rf /usr/bin/ffmpeg-10bit
echo "Done!"
;;
--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 "* How to uninstall:"
echo ""
echo " ffmpeg-install --uninstall"
echo ""
echo "* Show help:"
echo ""
echo " ffmpeg --help"
echo ""
exit 0
esac