mirror of https://github.com/openwrt/packages.git
579 lines
12 KiB
Plaintext
579 lines
12 KiB
Plaintext
menu "FFmpeg configuration"
|
|
|
|
comment "Licensing"
|
|
|
|
config FFMPEG_GPL
|
|
bool "Include GPL components (libpostproc, GPL filters)"
|
|
default y
|
|
help
|
|
Build libffmpeg with --enable-gpl. This adds libpostproc
|
|
and the GPL-licensed filters, and the resulting libraries are
|
|
distributed under the GPL-2.0-or-later. Kodi requires
|
|
libpostproc.
|
|
|
|
config FFMPEG_VERSION3
|
|
bool "Allow (L)GPL v3 components"
|
|
default n
|
|
help
|
|
Sets --enable-version3. Upgrades the licence of the resulting
|
|
libraries to (L)GPL-3.0-or-later. Selected automatically by the
|
|
TLS backends that require it (see below).
|
|
|
|
config FFMPEG_NONFREE
|
|
bool "Allow non-redistributable components"
|
|
default n
|
|
help
|
|
Sets --enable-nonfree. In almost all cases this prohibits
|
|
redistribution of the resulting binaries.
|
|
|
|
comment "Build properties"
|
|
|
|
config FFMPEG_X86ASM
|
|
bool "Compile x86 assembly optimizations"
|
|
depends on (x86_64 || (i386 && !(TARGET_x86_geode || TARGET_x86_legacy)))
|
|
default y
|
|
help
|
|
Not available for CPU_TYPE=pentium targets, where NASM cannot
|
|
assemble them. This option also applies to libffmpeg-mini, which
|
|
has no other options.
|
|
|
|
config FFMPEG_OPTIMIZE_SIZE
|
|
bool "Optimize for size instead of speed"
|
|
default n if x86_64
|
|
default y
|
|
help
|
|
Sets --enable-small and uses generated instead of hardcoded
|
|
tables. When disabled, decoding is faster and the libraries are
|
|
larger.
|
|
|
|
config FFMPEG_PROGRAMS
|
|
bool "Build the command line programs (ffmpeg, ffprobe)"
|
|
default y
|
|
help
|
|
When disabled only the shared libraries are built and the
|
|
ffmpeg/ffprobe packages cannot be selected.
|
|
|
|
comment "Hardware acceleration"
|
|
|
|
config FFMPEG_LIBDRM
|
|
bool "DRM support (libdrm, needed for DRM_PRIME zero-copy)"
|
|
default y
|
|
|
|
config FFMPEG_V4L2_M2M
|
|
bool "V4L2 mem2mem (stateful) decoders/encoders"
|
|
default y
|
|
|
|
config FFMPEG_V4L2_REQUEST
|
|
bool "V4L2 Request API (stateless) hwaccels"
|
|
select FFMPEG_LIBDRM
|
|
default y
|
|
help
|
|
Stateless V4L2 hardware decoding (cedrus, hantro, rkvdec, ...)
|
|
exporting DRM_PRIME frames. Requires libdrm and libudev.
|
|
|
|
# VA-API support is prepared but disabled until a libva package exists in
|
|
# the feeds; uncomment (and the DEPENDS line in the Makefile) once it does.
|
|
#config FFMPEG_VAAPI
|
|
# bool "VA-API hardware acceleration"
|
|
# default n
|
|
|
|
comment "Transport layer security"
|
|
|
|
choice
|
|
prompt "TLS backend"
|
|
default FFMPEG_TLS_MBEDTLS
|
|
help
|
|
mbedTLS is the default because it is the TLS library OpenWrt
|
|
itself ships by default (libustream-mbedtls, hostapd-*-mbedtls).
|
|
Selecting the backend already present in the image avoids a
|
|
second TLS library.
|
|
|
|
Licence: FFmpeg's configure requires --enable-version3 for
|
|
mbedTLS, and for OpenSSL 3.x whenever GPL components are
|
|
enabled. Together with the GPL option this makes the resulting
|
|
libraries GPL-3.0-or-later. GnuTLS carries no such requirement.
|
|
|
|
config FFMPEG_TLS_NONE
|
|
bool "none (no https/tls protocol)"
|
|
|
|
config FFMPEG_TLS_GNUTLS
|
|
bool "GnuTLS"
|
|
|
|
config FFMPEG_TLS_OPENSSL
|
|
bool "OpenSSL"
|
|
select FFMPEG_VERSION3 if FFMPEG_GPL
|
|
|
|
config FFMPEG_TLS_MBEDTLS
|
|
bool "mbedTLS"
|
|
select FFMPEG_VERSION3
|
|
endchoice
|
|
|
|
comment "External libraries"
|
|
|
|
# libdav1d support is prepared but disabled until a dav1d package exists
|
|
# in the feeds; uncomment (and the DEPENDS line in the Makefile) once it
|
|
# does. Until then AV1 is only decodable by hardware, see the help text.
|
|
#config FFMPEG_LIBDAV1D
|
|
# bool "AV1 decoding via libdav1d"
|
|
# default y
|
|
# help
|
|
# FFmpeg has no native software AV1 decoder; its built-in av1
|
|
# decoder only drives hardware acceleration (V4L2 Request API,
|
|
# VA-API). Without libdav1d, AV1 can only be decoded by hardware
|
|
# with an AV1 decoder.
|
|
|
|
config FFMPEG_LIBOPUS
|
|
bool "Opus encoding via libopus"
|
|
default y
|
|
help
|
|
Opus decoding is always available through FFmpeg's native
|
|
decoder, which is preferred even when libopus is present.
|
|
libopus adds a production-quality encoder; the native Opus
|
|
encoder is marked experimental.
|
|
|
|
config FFMPEG_LIBVORBIS
|
|
bool "Vorbis encoding via libvorbis"
|
|
default n
|
|
|
|
config FFMPEG_LIBVPX
|
|
bool "VP8/VP9 encoding via libvpx"
|
|
default n
|
|
help
|
|
VP8 and VP9 decoding is always available through FFmpeg's
|
|
native decoders, which are preferred even when libvpx is
|
|
present. libvpx therefore only adds the encoders.
|
|
|
|
config FFMPEG_LIBWEBP
|
|
bool "WebP encoding via libwebp"
|
|
default n
|
|
|
|
config FFMPEG_LIBSPEEX
|
|
bool "Speex encoding via libspeex"
|
|
default n
|
|
help
|
|
Speex decoding is always available through FFmpeg's native
|
|
decoder, which is preferred even when libspeex is present.
|
|
libspeex therefore only adds the encoder.
|
|
|
|
config FFMPEG_LIBXML2
|
|
bool "XML parsing via libxml2 (DASH/IMF demuxers)"
|
|
default n
|
|
help
|
|
The DASH and IMF demuxers are the only users of libxml2 and
|
|
are not built without it; there is no native fallback.
|
|
|
|
config FFMPEG_LAME
|
|
bool "MP3 encoding via LAME"
|
|
default y if !SOFT_FLOAT
|
|
default n
|
|
|
|
config FFMPEG_SHINE
|
|
bool "Fixed-point MP3 encoding via libshine"
|
|
default y if SOFT_FLOAT
|
|
default n
|
|
|
|
config FFMPEG_LIBX264
|
|
bool "H.264 encoding via libx264"
|
|
depends on FFMPEG_GPL && BUILD_PATENTED
|
|
default y
|
|
|
|
config FFMPEG_FDK_AAC
|
|
bool "AAC encoding via libfdk-aac"
|
|
depends on FFMPEG_NONFREE && !FFMPEG_GPL
|
|
default n
|
|
help
|
|
The FDK licence is incompatible with the GPL, so this is only
|
|
offered for a non-GPL, nonfree build. The native FFmpeg AAC
|
|
encoder is always available.
|
|
|
|
comment "System libraries"
|
|
|
|
config FFMPEG_LIBV4L2
|
|
bool "V4L2 capture device via libv4l2 (pixel format conversion)"
|
|
default n
|
|
help
|
|
The V4L2 capture/output devices of libavdevice work without
|
|
this, using raw ioctls. libv4l2 adds the v4l-utils userspace
|
|
layer, mainly libv4lconvert for capture devices producing pixel
|
|
formats FFmpeg does not handle natively. Unrelated to hardware
|
|
decoding.
|
|
|
|
config FFMPEG_BZLIB
|
|
bool "bzip2 support"
|
|
default y
|
|
help
|
|
Only used by the Matroska demuxer for bzip2-compressed tracks.
|
|
Without it such tracks cannot be read; everything else in
|
|
Matroska is unaffected.
|
|
|
|
config FFMPEG_LZMA
|
|
bool "lzma support"
|
|
default n
|
|
help
|
|
Only used by the TIFF decoder for LZMA-compressed images.
|
|
|
|
config FFMPEG_ICONV
|
|
bool "iconv support (subtitle charset conversion)"
|
|
default y
|
|
help
|
|
Uses the iconv implementation of the C library; no additional
|
|
package is needed on musl.
|
|
|
|
comment "Components"
|
|
|
|
config FFMPEG_SELECT_COMPONENTS
|
|
bool "Manual component selection"
|
|
default n
|
|
help
|
|
Disabled: every native codec, container format, filter,
|
|
protocol and device is built, subject to the licence options
|
|
above and BUILD_PATENTED.
|
|
|
|
Enabled: the build starts from --disable-everything and only
|
|
the components selected in the options that appear below are
|
|
built; every component not selected there is absent from the
|
|
libraries. The components of the external libraries and
|
|
hardware accelerations selected above are added automatically,
|
|
as are the tls and https protocols of the selected TLS backend.
|
|
|
|
if FFMPEG_SELECT_COMPONENTS
|
|
|
|
comment "Encoders"
|
|
|
|
config FFMPEG_ENCODER_ac3
|
|
bool "AC3"
|
|
|
|
config FFMPEG_ENCODER_jpegls
|
|
bool "JPEG-LS"
|
|
|
|
config FFMPEG_ENCODER_mpeg1video
|
|
bool "MPEG-1 Video"
|
|
|
|
config FFMPEG_ENCODER_mpeg2video
|
|
bool "MPEG-2 Video"
|
|
|
|
config FFMPEG_ENCODER_mpeg4
|
|
bool "MPEG-4"
|
|
|
|
config FFMPEG_ENCODER_pcm_s16be
|
|
bool "PCM signed 16-bit big-endian"
|
|
|
|
config FFMPEG_ENCODER_pcm_s16le
|
|
bool "PCM signed 16-bit little-endian"
|
|
|
|
config FFMPEG_ENCODER_png
|
|
bool "PNG"
|
|
select FFMPEG_ENCODER_zlib
|
|
|
|
config FFMPEG_ENCODER_vorbis
|
|
bool "Vorbis"
|
|
|
|
config FFMPEG_ENCODER_zlib
|
|
bool "Zlib"
|
|
|
|
comment "Decoders"
|
|
|
|
config FFMPEG_DECODER_aac
|
|
bool "AAC (Advanced Audio Coding)"
|
|
|
|
config FFMPEG_DECODER_aac_latm
|
|
bool "AAC LATM"
|
|
|
|
config FFMPEG_DECODER_adpcm
|
|
bool "ADPCM (multiple types)"
|
|
|
|
config FFMPEG_DECODER_ac3
|
|
bool "AC3"
|
|
|
|
config FFMPEG_DECODER_alac
|
|
bool "ALAC"
|
|
|
|
config FFMPEG_DECODER_amrnb
|
|
bool "AMR-NB"
|
|
select FFMPEG_DEMUXER_amr
|
|
|
|
config FFMPEG_DECODER_amrwb
|
|
bool "AMR-WB"
|
|
select FFMPEG_DEMUXER_amr
|
|
|
|
config FFMPEG_DECODER_ape
|
|
bool "APE"
|
|
|
|
config FFMPEG_DECODER_atrac3
|
|
bool "ATRAC3"
|
|
|
|
config FFMPEG_DECODER_flac
|
|
bool "FLAC"
|
|
|
|
config FFMPEG_DECODER_gif
|
|
bool "GIF"
|
|
|
|
config FFMPEG_DECODER_h264
|
|
bool "H.264"
|
|
depends on BUILD_PATENTED
|
|
|
|
config FFMPEG_DECODER_hevc
|
|
bool "HEVC / H.265 Video"
|
|
depends on BUILD_PATENTED
|
|
|
|
config FFMPEG_DECODER_jpegls
|
|
bool "JPEG-LS"
|
|
|
|
config FFMPEG_DECODER_mp2
|
|
bool "MP2 (MPEG Audio Layer 2)"
|
|
|
|
config FFMPEG_DECODER_mp3
|
|
bool "MP3 (MPEG Audio Layer 3)"
|
|
|
|
config FFMPEG_DECODER_mpegvideo
|
|
bool "MPEG Video"
|
|
|
|
config FFMPEG_DECODER_mpeg1video
|
|
bool "MPEG-1 Video"
|
|
|
|
config FFMPEG_DECODER_mpeg2video
|
|
bool "MPEG-2 Video"
|
|
|
|
config FFMPEG_DECODER_mpeg4
|
|
bool "MPEG-4"
|
|
|
|
config FFMPEG_DECODER_mpc7
|
|
bool "Musepack 7"
|
|
select FFMPEG_DEMUXER_mpc
|
|
|
|
config FFMPEG_DECODER_mpc8
|
|
bool "Musepack 8"
|
|
select FFMPEG_DEMUXER_mpc8
|
|
|
|
config FFMPEG_DECODER_opus
|
|
bool "Opus"
|
|
|
|
config FFMPEG_DECODER_pcm_s16be
|
|
bool "PCM signed 16-bit big-endian"
|
|
|
|
config FFMPEG_DECODER_pcm_s16le
|
|
bool "PCM signed 16-bit little-endian"
|
|
|
|
config FFMPEG_DECODER_png
|
|
bool "PNG"
|
|
select FFMPEG_DECODER_zlib
|
|
|
|
config FFMPEG_DECODER_vc1
|
|
bool "VC-1 / WMV9"
|
|
depends on BUILD_PATENTED
|
|
|
|
config FFMPEG_DECODER_vorbis
|
|
bool "Vorbis"
|
|
select FFMPEG_DEMUXER_ogg
|
|
|
|
config FFMPEG_DECODER_wavpack
|
|
bool "Wavpack"
|
|
|
|
config FFMPEG_DECODER_wmav1
|
|
bool "WMAv1"
|
|
|
|
config FFMPEG_DECODER_wmav2
|
|
bool "WMAv2"
|
|
|
|
config FFMPEG_DECODER_wmalossless
|
|
bool "WMA Lossless"
|
|
|
|
config FFMPEG_DECODER_wmapro
|
|
bool "WMA Pro"
|
|
|
|
config FFMPEG_DECODER_zlib
|
|
bool "Zlib"
|
|
|
|
comment "Muxers"
|
|
|
|
config FFMPEG_MUXER_ac3
|
|
bool "AC3"
|
|
|
|
config FFMPEG_MUXER_avi
|
|
bool "AVI"
|
|
|
|
config FFMPEG_MUXER_h264
|
|
bool "H.264 Raw Video"
|
|
depends on BUILD_PATENTED
|
|
|
|
config FFMPEG_MUXER_hevc
|
|
bool "HEVC / H265 Raw Video"
|
|
depends on BUILD_PATENTED
|
|
|
|
config FFMPEG_MUXER_mp3
|
|
bool "MP3 (MPEG Audio Layer 3)"
|
|
|
|
config FFMPEG_MUXER_mp4
|
|
bool "MP4"
|
|
|
|
config FFMPEG_MUXER_mpeg1video
|
|
bool "MPEG-1 Video"
|
|
|
|
config FFMPEG_MUXER_mpeg2video
|
|
bool "MPEG-2 Video"
|
|
|
|
config FFMPEG_MUXER_mpegts
|
|
bool "MPEG-2 (TS)"
|
|
|
|
config FFMPEG_MUXER_ogg
|
|
bool "Ogg"
|
|
|
|
config FFMPEG_MUXER_rtp
|
|
bool "RTP"
|
|
|
|
comment "Demuxers"
|
|
|
|
config FFMPEG_DEMUXER_aac
|
|
bool "AAC"
|
|
|
|
config FFMPEG_DEMUXER_avi
|
|
bool "AVI (Audio Video Interleave)"
|
|
|
|
config FFMPEG_DEMUXER_ac3
|
|
bool "AC3"
|
|
|
|
config FFMPEG_DEMUXER_aiff
|
|
bool "AIFF"
|
|
|
|
config FFMPEG_DEMUXER_amr
|
|
bool "AMR"
|
|
|
|
config FFMPEG_DEMUXER_ape
|
|
bool "APE"
|
|
|
|
config FFMPEG_DEMUXER_flac
|
|
bool "FLAC"
|
|
|
|
config FFMPEG_DEMUXER_h264
|
|
bool "H.264 Raw Video"
|
|
depends on BUILD_PATENTED
|
|
|
|
config FFMPEG_DEMUXER_hevc
|
|
bool "HEVC / H265 Raw Video"
|
|
depends on BUILD_PATENTED
|
|
|
|
config FFMPEG_DEMUXER_matroska
|
|
bool "Matroska (MKA,MKV)"
|
|
select FFMPEG_DECODER_zlib
|
|
|
|
config FFMPEG_DEMUXER_mov
|
|
bool "MOV/MP4/M4A/3GP/3G2/MJ2"
|
|
select FFMPEG_DECODER_zlib
|
|
|
|
config FFMPEG_DEMUXER_mp3
|
|
bool "MP3 (MPEG Audio Layer 3)"
|
|
|
|
config FFMPEG_DEMUXER_mpegvideo
|
|
bool "MPEG Video (Raw)"
|
|
|
|
config FFMPEG_DEMUXER_mpegps
|
|
bool "MPEG-2 (PS)"
|
|
|
|
config FFMPEG_DEMUXER_mpegts
|
|
bool "MPEG-2 (TS)"
|
|
|
|
config FFMPEG_DEMUXER_mpc
|
|
bool "Musepack"
|
|
|
|
config FFMPEG_DEMUXER_mpc8
|
|
bool "Musepack 8"
|
|
|
|
config FFMPEG_DEMUXER_ogg
|
|
bool "Ogg"
|
|
|
|
config FFMPEG_DEMUXER_rm
|
|
bool "RM"
|
|
help
|
|
RealMedia format demuxer
|
|
|
|
config FFMPEG_DEMUXER_rtsp
|
|
bool "RTSP"
|
|
select FFMPEG_DEMUXER_rm
|
|
select FFMPEG_DEMUXER_sdp
|
|
select FFMPEG_DEMUXER_rtp
|
|
|
|
config FFMPEG_DEMUXER_sdp
|
|
bool "SDP"
|
|
select FFMPEG_DEMUXER_mpegts
|
|
|
|
config FFMPEG_DEMUXER_rtp
|
|
bool "RTP"
|
|
|
|
config FFMPEG_DEMUXER_vc1
|
|
bool "VC-1 / WMV9 Raw Video"
|
|
depends on BUILD_PATENTED
|
|
|
|
config FFMPEG_DEMUXER_wav
|
|
bool "WAV"
|
|
|
|
config FFMPEG_DEMUXER_wv
|
|
bool "WV"
|
|
|
|
comment "Parsers"
|
|
|
|
config FFMPEG_PARSER_aac
|
|
bool "AAC (Advanced Audio Coding)"
|
|
|
|
config FFMPEG_PARSER_ac3
|
|
bool "AC3"
|
|
|
|
config FFMPEG_PARSER_flac
|
|
bool "FLAC"
|
|
|
|
config FFMPEG_PARSER_h264
|
|
bool "H.264"
|
|
depends on BUILD_PATENTED
|
|
select FFMPEG_DECODER_h264
|
|
|
|
config FFMPEG_PARSER_hevc
|
|
bool "HEVC / H265"
|
|
depends on BUILD_PATENTED
|
|
select FFMPEG_DECODER_hevc
|
|
|
|
config FFMPEG_PARSER_mpegaudio
|
|
bool "MPEG Audio"
|
|
|
|
config FFMPEG_PARSER_mpegvideo
|
|
bool "MPEG Video"
|
|
|
|
config FFMPEG_PARSER_mpeg4video
|
|
bool "MPEG-4 Video"
|
|
|
|
config FFMPEG_PARSER_opus
|
|
bool "Opus"
|
|
|
|
config FFMPEG_PARSER_vc1
|
|
bool "VC-1 / WMV9"
|
|
depends on BUILD_PATENTED
|
|
select FFMPEG_DECODER_vc1
|
|
|
|
comment "Protocols"
|
|
|
|
config FFMPEG_PROTOCOL_file
|
|
bool "file:"
|
|
|
|
config FFMPEG_PROTOCOL_http
|
|
bool "http:"
|
|
|
|
config FFMPEG_PROTOCOL_icecast
|
|
bool "icecast:"
|
|
select FFMPEG_PROTOCOL_http
|
|
|
|
config FFMPEG_PROTOCOL_pipe
|
|
bool "pipe:"
|
|
|
|
config FFMPEG_PROTOCOL_rtp
|
|
bool "rtp:"
|
|
select FFMPEG_PROTOCOL_udp
|
|
|
|
config FFMPEG_PROTOCOL_tcp
|
|
bool "tcp:"
|
|
|
|
config FFMPEG_PROTOCOL_udp
|
|
bool "udp:"
|
|
|
|
|
|
endif
|
|
|
|
endmenu
|