#!/bin/bash
CURRENT_DIR=$(cd $(dirname $0); pwd)
cd $CURRENT_DIR && \
sudo apt update && \
sudo apt upgrade -y && \
sudo apt install -y build-essential \
cmake \
mlocate \
git \
unzip && \
unzip nv-codec-headers.zip && \
cd nv-codec-headers && \
make -j $(nproc) && \
sudo make install && \
cd $CURRENT_DIR && \
sudo apt install -y gnutls-dev \
libass-dev \
libdrm-dev \
libopus-dev \
libpulse-dev \
libspeex-dev \
libtheora-dev \
libtwolame-dev \
libv4l-dev \
libvorbis-dev \
libvpx-dev \
libx264-dev \
libx265-dev \
libxvidcore-dev \
libopenal-dev \
libomxil-bellagio-dev \
libxcb1-dev \
libsdl2-dev \
libva-dev \
libvdpau-dev && \
unzip config_download_files.zip && \
cd config_download_files && \
tar -xvf fdk-aac-2.0.2.tar.gz && \
cd fdk-aac-2.0.2 && \
./configure --prefix=/usr --disable-static && \
make -j $(nproc) && \
sudo make install && \
cd .. && \
tar -xvf lame-3.99.5.tar.gz && \
cd lame-3.99.5 && \
./configure --prefix=/usr --disable-static && \
make -j $(nproc) && \
sudo make install && \
cd .. && \
tar -xvf opencore-amr-0.1.6.tar.gz && \
cd opencore-amr-0.1.6 && \
./configure --prefix=/usr --disable-static && \
make -j $(nproc) && \
sudo make install && \
cd $CURRENT_DIR && \
tar -xvf ffmpeg-4.4.3.tar.xz && \
cd ffmpeg-4.4.3 && \
sed -i "s/compute_30,code=sm_30/compute_86,code=sm_86/g" configure && \
./configure --prefix=/usr/local/ffmpeg \
--disable-debug \
--disable-doc \
--disable-static \
--enable-cuda-nvcc \
--enable-cuvid \
--enable-libdrm \
--enable-ffplay \
--enable-gnutls \
--enable-gpl \
--enable-libass \
--enable-libfdk-aac \
--enable-libfontconfig \
--enable-libfreetype \
--enable-libmp3lame \
--enable-libnpp \
--enable-libopencore_amrnb \
--enable-libopencore_amrwb \
--enable-libopus \
--enable-libpulse \
--enable-sdl2 \
--enable-libspeex \
--enable-libtheora \
--enable-libtwolame \
--enable-libv4l2 \
--enable-libvorbis \
--enable-libvpx \
--enable-libx264 \
--enable-libx265 \
--enable-libxcb \
--enable-libxvid \
--enable-nonfree \
--enable-nvenc \
--enable-omx \
--enable-openal \
--enable-opencl \
--enable-runtime-cpudetect \
--enable-shared \
--enable-vaapi \
--enable-vdpau \
--enable-version3 \
--enable-xlib \
--extra-cflags=-I/usr/local/cuda/include \
--extra-ldflags=-L/usr/local/cuda/lib64 \
--libdir=/usr/lib/x86_64-linux-gnu \
--incdir=/usr/include/x86_64-linux-gnu \
--disable-asm \
--disable-x86asm \
--extra-cflags=-fPIC \
--toolchain=hardened \
--disable-stripping \
--extra-cflags=-I/usr/local/include/ffnvcodec && \
make -j $(nproc) && \
sudo make install && \
ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/bin/ffmpeg && \
ln -s /usr/local/ffmpeg/bin/ffprobe /usr/bin/ffprobe && \
ln -s /usr/local/ffmpeg/bin/ffplay /usr/bin/ffplay && \
ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/ffmpeg && \
ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/ffprobe && \
ln -s /usr/local/ffmpeg/bin/ffplay /usr/local/bin/ffplay && \
echo "/usr/local/ffmpeg/lib" >> /etc/ld.so.conf.d/ffmpeg.conf && \
sudo ldconfig && \
ffmpeg -hwaccels