Welcome to World of IPTV

Join us now to get access to all our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, and so, so much more. It's also quick and totally free, so what are you waiting for?

Forum Rules

Our Rules: Read to avoid getting banned!

Advertising

Introduce Yourself to the World with Us!

Resource Database

Find the newest resources around IPTV!

Account upgrade

Upgrade your account to unlock more benefits!

FFmpeg build with support for nvenc in ubuntu 16.04

On4sat

Extended Member
Ext. Member
Joined
Jul 2, 2019
Messages
346
Reaction score
1,728
Points
104
Location
Internet
Website
www.startstv.com
Please use BBCodes
This bash script will compile a static FFMPEG build with NVENC and VAAPI hardware-accelerated support on Ubuntu in your home directory.

Bash:
#!/bin/bash


#This script will compile and install a static ffmpeg build with support for nvenc un ubuntu 16.04

#See the prefix path and compile options if edits are needed to suit your needs.


#install required things from apt

installLibs(){

echo "Installing prerequisites"

sudo apt-get update

sudo apt-get -y --force-yes install autoconf automake build-essential libass-dev libfreetype6-dev libgpac-dev \

  libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev \

  libxcb-xfixes0-dev pkg-config texi2html zlib1g-dev

}


#install CUDA SDK

InstallCUDASDK(){

echo "Installing CUDA and the latest driver repositories from repositories"

cd ~/ffmpeg_sources

wget -c -v -nc https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_9.2.88-1_amd64.deb

sudo dpkg -i cuda-repo-ubuntu1604_9.2.88-1_amd64.deb

sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub

sudo apt-get -y update

sudo apt-get -y install cuda

sudo add-apt-repository ppa:graphics-drivers/ppa

sudo apt-get update && sudo apt-get -y upgrade

}


#Install nvidia SDK

installSDK(){

echo "Installing the nVidia NVENC SDK."

cd ~/ffmpeg_sources

cd ~/ffmpeg_sources

git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git

cd nv-codec-headers

make

sudo make install

}


#Compile nasm

compileNasm(){

echo "Compiling nasm"

cd ~/ffmpeg_sources

wget http://www.nasm.us/pub/nasm/releasebuilds/2.14rc0/nasm-2.14rc0.tar.gz

tar xzvf nasm-2.14rc0.tar.gz

cd nasm-2.14rc0

./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"

make -j$(nproc)

make -j$(nproc) install

make -j$(nproc) distclean

}


#Compile libx264

compileLibX264(){

echo "Compiling libx264"

cd ~/ffmpeg_sources

wget http://download.videolan.org/pub/x264/snapshots/last_x264.tar.bz2

tar xjvf last_x264.tar.bz2

cd x264-snapshot*

PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static

PATH="$HOME/bin:$PATH" make -j$(nproc)

make -j$(nproc) install

make -j$(nproc) distclean

}


#Compile libfdk-acc

compileLibfdkcc(){

echo "Compiling libfdk-cc"

sudo apt-get install unzip

cd ~/ffmpeg_sources

wget -O fdk-aac.zip https://github.com/mstorsjo/fdk-aac/zipball/master

unzip fdk-aac.zip

cd mstorsjo-fdk-aac*

autoreconf -fiv

./configure --prefix="$HOME/ffmpeg_build" --disable-shared

make -j$(nproc)

make -j$(nproc) install

make -j$(nproc) distclean

}


#Compile libmp3lame

compileLibMP3Lame(){

echo "Compiling libmp3lame"

sudo apt-get install nasm

cd ~/ffmpeg_sources

wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz

tar xzvf lame-3.99.5.tar.gz

cd lame-3.99.5

./configure --prefix="$HOME/ffmpeg_build" --enable-nasm --disable-shared

make -j$(nproc)

make -j$(nproc) install

make -j$(nproc) distclean

}


#Compile libopus

compileLibOpus(){

echo "Compiling libopus"

cd ~/ffmpeg_sources

wget http://downloads.xiph.org/releases/opus/opus-1.2.1.tar.gz

tar xzvf opus-1.2.1.tar.gz

cd opus-1.2.1

./configure --prefix="$HOME/ffmpeg_build" --disable-shared

make -j$(nproc)

make -j$(nproc) install

make -j$(nproc) distclean

}


#Compile libvpx

compileLibPvx(){

echo "Compiling libvpx"

cd ~/ffmpeg_sources

git clone https://chromium.googlesource.com/webm/libvpx

cd libvpx

PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-examples --enable-runtime-cpu-detect --enable-vp9 --enable-vp8 \

--enable-postproc --enable-vp9-postproc --enable-multi-res-encoding --enable-webm-io --enable-better-hw-compatibility --enable-vp9-highbitdepth --enable-onthefly-bitpacking --enable-realtime-only \

--cpu=native --as=nasm

PATH="$HOME/bin:$PATH" make -j$(nproc)

make -j$(nproc) install

make -j$(nproc) clean

}


#Compile ffmpeg

compileFfmpeg(){

echo "Compiling ffmpeg"

cd ~/ffmpeg_sources

git clone https://github.com/FFmpeg/FFmpeg -b master

cd FFmpeg

PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \

  --prefix="$HOME/ffmpeg_build" \

  --extra-cflags="-I$HOME/ffmpeg_build/include" \

  --extra-ldflags="-L$HOME/ffmpeg_build/lib" \

  --bindir="$HOME/bin" \

  --enable-cuda-sdk \

  --enable-cuvid \

  --enable-libnpp \

  --extra-cflags="-I/usr/local/cuda/include/" \

  --extra-ldflags=-L/usr/local/cuda/lib64/ \

  --enable-gpl \

  --enable-libass \

  --enable-libfdk-aac \

  --enable-vaapi \

  --enable-libfreetype \

  --enable-libmp3lame \

  --enable-libopus \

  --enable-libtheora \

  --enable-libvorbis \

  --enable-libvpx \

  --enable-libx264 \

  --enable-nonfree \

  --enable-nvenc

PATH="$HOME/bin:$PATH" make -j$(nproc)

make -j$(nproc) install

make -j$(nproc) distclean

hash -r

}


#The process

cd ~

mkdir ffmpeg_sources

installLibs

InstallCUDASDK

installSDK

compileNasm

compileLibX264

compileLibfdkcc

compileLibMP3Lame

compileLibOpus

compileLibPvx

compileFfmpeg

echo "Complete!"
 
Last edited by a moderator:
Channels MatchTime Unblock CDN Offshore Server Contact
100 cnx / 90€ 5Gbps / 180€ 48CPU-256GRAM 10Gbps 569€ Skype live:giefsl
500 cnx / 350€ 10Gbps / 350€ 48CPU-128GRAM 5Gbps / 349€ TG @changcdn
1000 cnx / 500€ 20Gbps / 700€ 40CPU-128GRAM 20Gbps / €980 http://coronaserver.com
Redhat sorry for that I hope understand and that is point negative ? I am new ?
The problem is not that you are new. The problem is that you do not read the rules and you do not look at the funcions of the forum system.
 
Please note that this does NOT create a 'static' build. Its dynamic and cannot be moved to other systems without compiling again.

It also takes a LONG time to complete so go get a coffee / joint and do something else for anywhere from 20 - 60 minutes.
 
Channels MatchTime Unblock CDN Offshore Server Contact
100 cnx / 90€ 5Gbps / 180€ 48CPU-256GRAM 10Gbps 569€ Skype live:giefsl
500 cnx / 350€ 10Gbps / 350€ 48CPU-128GRAM 5Gbps / 349€ TG @changcdn
1000 cnx / 500€ 20Gbps / 700€ 40CPU-128GRAM 20Gbps / €980 http://coronaserver.com
Channels MatchTime Unblock CDN Offshore Server Contact
100 cnx / 90€ 5Gbps / 180€ 48CPU-256GRAM 10Gbps 569€ Skype live:giefsl
500 cnx / 350€ 10Gbps / 350€ 48CPU-128GRAM 5Gbps / 349€ TG @changcdn
1000 cnx / 500€ 20Gbps / 700€ 40CPU-128GRAM 20Gbps / €980 http://coronaserver.com
shape1
shape2
shape3
shape4
shape5
shape6
Back
Top