-
-
Save sparrc/026ed9958502072dda749ba4e5879ee3 to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash | |
# Installs ffmpeg from source (HEAD) with libaom and libx265, as well as a few | |
# other common libraries | |
# binary will be at ~/bin/ffmpeg | |
sudo apt update && sudo apt upgrade -y | |
mkdir -p ~/ffmpeg_sources ~/bin | |
export PATH="$HOME/bin:$PATH" | |
sudo apt install -y \ | |
autoconf \ | |
automake \ | |
build-essential \ | |
cmake \ | |
git \ | |
libass-dev \ | |
libfreetype6-dev \ | |
libsdl2-dev \ | |
libtheora-dev \ | |
libtool \ | |
libva-dev \ | |
libvdpau-dev \ | |
libvorbis-dev \ | |
libxcb1-dev \ | |
libxcb-shm0-dev \ | |
libxcb-xfixes0-dev \ | |
mercurial \ | |
pkg-config \ | |
texinfo \ | |
wget \ | |
zlib1g-dev \ | |
nasm \ | |
yasm \ | |
libvpx-dev \ | |
libopus-dev \ | |
libx264-dev \ | |
libmp3lame-dev \ | |
libfdk-aac-dev | |
# Install libaom from source. | |
mkdir -p ~/ffmpeg_sources/libaom && \ | |
cd ~/ffmpeg_sources/libaom && \ | |
git clone https://aomedia.googlesource.com/aom && \ | |
cmake ./aom && \ | |
make && \ | |
sudo make install | |
# Install libx265 from source. | |
cd ~/ffmpeg_sources && \ | |
git clone https://github.com/videolan/x265 && \ | |
cd x265/build/linux && \ | |
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source && \ | |
make && \ | |
make install | |
cd ~/ffmpeg_sources && \ | |
wget -O ffmpeg-snapshot.tar.bz2 https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && \ | |
tar xjvf ffmpeg-snapshot.tar.bz2 && \ | |
cd ffmpeg && \ | |
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \ | |
--prefix="$HOME/ffmpeg_build" \ | |
--pkg-config-flags="--static" \ | |
--extra-cflags="-I$HOME/ffmpeg_build/include" \ | |
--extra-ldflags="-L$HOME/ffmpeg_build/lib" \ | |
--extra-libs="-lpthread -lm" \ | |
--bindir="$HOME/bin" \ | |
--enable-gpl \ | |
--enable-libass \ | |
--enable-libfdk-aac \ | |
--enable-libmp3lame \ | |
--enable-libx264 \ | |
--enable-libx265 \ | |
--enable-libtheora \ | |
--enable-libfreetype \ | |
--enable-libvorbis \ | |
--enable-libopus \ | |
--enable-libvpx \ | |
--enable-libaom \ | |
--enable-nonfree && \ | |
make && \ | |
make install && \ | |
hash -r |
thanks @feiyeung, that repo seems to have vanished, I have updated it to do a git clone of github.com/videolan/x265
so to add hdr10 ability, I have to add -DHIGH_BIT_DEPTH:bool=on to the cmake section of x265.
is this in place of or along with the -DENABLE_SHARED:bool=off instruction
sorry I am a new to this and want to continue with Linux and this has been a major headache trying to get the hdr10 opt available in x265.
only found this page the other day and has helped lots.
I'm getting some error like this.
How to resolve it? Thx...
`ffmpeg/libpostproc/postprocess.h
ffmpeg/libpostproc/postprocres.rc
ffmpeg/libpostproc/version_major.h
ffmpeg/libpostproc/version.h
ERROR: SvtAv1Enc >= 0.9.0 not found using pkg-config
If you think configure made a mistake, make sure you are using the latest
version from Git. If the latest version fails, report the problem to the
[email protected] mailing list or IRC #ffmpeg on irc.libera.chat.
Include the log file "ffbuild/config.log" produced by configure as this will help
solve the problem.
Makefile:2: ffbuild/config.mak: No such file or directory
Makefile:42: /tools/Makefile: No such file or directory
Makefile:43: /ffbuild/common.mak: No such file or directory
Makefile:113: /libavutil/Makefile: No such file or directory
Makefile:113: /ffbuild/library.mak: No such file or directory
Makefile:115: /fftools/Makefile: No such file or directory
Makefile:116: /doc/Makefile: No such file or directory
Makefile:117: /doc/examples/Makefile: No such file or directory
Makefile:184: /tests/Makefile: No such file or directory
make: *** No rule to make target '/tests/Makefile'. Stop.
Makefile:2: ffbuild/config.mak: No such file or directory
Makefile:42: /tools/Makefile: No such file or directory
Makefile:43: /ffbuild/common.mak: No such file or directory
Makefile:113: /libavutil/Makefile: No such file or directory
Makefile:113: /ffbuild/library.mak: No such file or directory
Makefile:115: /fftools/Makefile: No such file or directory
Makefile:116: /doc/Makefile: No such file or directory
Makefile:117: /doc/examples/Makefile: No such file or directory
Makefile:184: /tests/Makefile: No such file or directory
make: *** No rule to make target '/tests/Makefile'. Stop.
`
The libx265 repo seems to not work for me today. I ended up using
https://github.com/videolan/x265.git