7b2d875d58
The file naming rules for the johnvansickle web page have changed, replacing 32bit and 64bit with i686 and amd64
171 lines
3.9 KiB
Bash
Executable File
171 lines
3.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Script to install FFmpeg on GNU/Linux
|
|
# Website: https://www.johnvansickle.com/ffmpeg/
|
|
# Created by q3aql (q3aql@openmailbox.org)
|
|
# Builds by John Van Sickle (john.vansickle@gmail.com)
|
|
# Licensed by GPL v.2
|
|
# Date: 02-10-2016
|
|
# --------------------------------------
|
|
VERSION=1.2
|
|
|
|
URL=https://www.johnvansickle.com/ffmpeg/
|
|
URL_RELEASES=https://johnvansickle.com/ffmpeg/releases/
|
|
URL_BUILDS=https://johnvansickle.com/ffmpeg/builds/
|
|
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
|
|
;;
|
|
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)
|
|
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/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
|
|
cd ffmpeg-*
|
|
cp -rf ffmpeg $PATH_INSTALL
|
|
cp -rf ffmpeg-10bit $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
|
|
|
|
|