Build FFmpeg - CESNET/UltraGrid GitHub Wiki
This article describes custom configuration and of FFmpeg for UltraGrid.
Table of Contents
Download
You can use latest version of FFMPEG to configure custom codecs or utilize most recent features of libavcodec. In this case:
git clone git://source.ffmpeg.org/ffmpeg.git
Recommended configuration options include these (all platforms, leads to GPL build):
./configure --enable-gpl --enable-libx264 --enable-libopus
Features
HEVC
Additionally, you may want to add support for HEVC:
./configure ... --enable-libx265
(you may want to download x265 from https://github.com/videolan/x265.git)
NVENC
Clone this GIT: https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
Then install it:
make
make install
- Then enable support for NVENC in FFMPEG:
./configure ... --enable-nonfree --enable-nvenc
Intel Quick Sync Video
Note: Following setup is not tested yet. For installation and requirements, please refer here.
- Download Intel Media Server Studio (or Intel Media SDK for Windows).
- from the download archive, install SDK - supposing it gets installed to /opt/intel/mediasdk, remove distribution-sticked VA and DRM libs and install them from SDK.
- run:
sudo ln -s /opt/intel/mediasdk/lib/lin_x64/libmfx.a /usr/local/lib
sudo ln -s /opt/intel/mediasdk/include /usr/local/include/mfx
- create file /usr/local/lib/pkgconfig/libmfx.pc with following contents prefix=/opt/intel/mediasdk exec_prefix=({prefix} libdir=){exec_prefix}/lib includedir=({prefix}/include Name: libmfx Description: Intel Media SDK Version: 2015R6 Libs: -L){libdir} -lmfx -lstdc++ -lva-drm -lva -lva-x11 -lva Libs.private: Cflags: -I${includedir}
Configure FFMPEG with following flag:
./configure --enable-libmfx --extra-libs="-ldl"