Skip to content

[FFmpeg] [package list]

FFmpeg/4.3.3-cpeGNU-21.12 (FFmpeg-4.3.3-cpeGNU-21.12.eb)

This software is archived in the LUMI-SoftwareStack GitHub repository as easybuild/easyconfigs/__archive__/f/FFmpeg/FFmpeg-4.3.3-cpeGNU-21.12.eb. The corresponding module would be FFmpeg/4.3.3-cpeGNU-21.12.

# Adapted by Kurt Lust (kurt.lust@uantwerpen.be) for use on LUMI from
# the CSCS and easybuilders recipes.
#
easyblock = 'ConfigureMake'

local_bzip2_version =        '1.0.8'         # http://www.bzip.org/downloads.html
local_fontconfig_version =   '2.13.94'       # https://www.freedesktop.org/software/fontconfig/release/
local_freetype_version =     '2.11.0'        # https://download.savannah.gnu.org/releases/freetype/
local_fribidi_version =      '1.0.10'        # https://github.com/fribidi/fribidi/releases
local_LAME_version =         '3.100'         # http://lame.sourceforge.net/
local_x264_version =         '20210613'      # Just follow EasyBuild as the distribution is currently a mess
local_x265_version =         '3.5'           # http://download.videolan.org/pub/videolan/x265/
local_zlib_version =         '1.2.11'        # https://zlib.net/

local_FFmpeg_version =       '4.3.3'         # https://ffmpeg.org/download.html#releases

name =    'FFmpeg'
version = local_FFmpeg_version

homepage = 'https://www.ffmpeg.org/'

whatis = [
    'Description: A complete, cross-platform solution to record, convert and stream audio and video'
]

description = "A complete, cross-platform solution to record, convert and stream audio and video."
description = """
FFmpeg is the leading multimedia framework, able to decode, encode, transcode,
mux, demux, stream, filter and play pretty much anything that humans and
machines have created. It supports the most obscure ancient formats up to the
cutting edge. No matter if they were designed by some standards committee, the
community or a corporation. It is also highly portable: FFmpeg compiles, runs,
and passes our testing infrastructure FATE across Linux, Mac OS X, Microsoft
Windows, the BSDs, Solaris, etc. under a wide variety of build environments,
machine architectures, and configurations.

It contains libavcodec, libavutil, libavformat, libavfilter, libavdevice,
libswscale and libswresample which can be used by applications. As well as
ffmpeg, ffplay and ffprobe which can be used by end users for transcoding
and playing.

The FFmpeg project tries to provide the best technically possible solution
for developers of applications and end users alike. To achieve this we combine
the best free software options available. We slightly favor our own code to keep
the dependencies on other libs low and to maximize code sharing between parts of
FFmpeg. Wherever the question of "best" cannot be answered we support both
options so the end user can choose.
"""

docurls = [
    'Manual pages in section 1 and 3',
    'Web-based documentation at https://ffmpeg.org/documentation.html'
]

toolchain = {'name': 'cpeGNU', 'version': '21.12'}

source_urls = ['http://%(namelower)s.org/releases/']
sources =     [SOURCELOWER_TAR_BZ2]
checksums =   ['0bfe5929ad0c591ff2b6bd39e8b50bbe2f9278638ca39f52c7e666a50547da15']

builddependencies = [
    ('buildtools', '%(toolchain_version)s', '', True), # For NASM, see remarks in the README.md
]

dependencies = [
    ('zlib',       local_zlib_version),
    ('bzip2',      local_bzip2_version),
    ('LAME',       local_LAME_version),
    ('x264',       local_x264_version),
    ('x265',       local_x265_version),
    ('X11',        '%(toolchain_version)s'),
    ('fontconfig', local_fontconfig_version),
    ('freetype',   local_freetype_version),
    ('FriBidi',    local_fribidi_version),
]

configopts  = '--enable-pic --enable-shared --enable-gpl --enable-version3 --enable-nonfree --cc="$CC" --cxx="$CXX" '
configopts += '--enable-libx264 --enable-libx265 --enable-libmp3lame --enable-libfreetype --enable-fontconfig '
configopts += '--enable-libfribidi'

sanity_check_paths = {
    'files': ['bin/ff%s' % x for x in ['mpeg', 'probe']] +
             ['lib/lib%s.%s' % (x, y) for x in ['avdevice', 'avfilter', 'avformat', 'avcodec', 'postproc',
                                                'swresample', 'swscale', 'avutil'] for y in [SHLIB_EXT, 'a']],
    'dirs': ['include']
}

sanity_check_commands = [
    'ffmpeg -version',
    'ffprobe -version',
]

moduleclass = 'vis'

[FFmpeg] [package list]