# ffmpeg7/cfg - "Build" settings for package #--------------------------------------------------------------------- [technotes] 1. "ffmpeg7" provides a copy of "ffmpeg" 7.X for packages that need it. "ffmpeg7" should never be updated to a post-7.X release of up- stream. #--------------------------------------------------------------------- 2. As of January 2023, "handbrake" and "tenacity" needed to be built against "ffmpeg4" as opposed to "ffmpeg5". #--------------------------------------------------------------------- 3. There is presently no provision for cross-compiling the "ffmpeg*" packages. You need to build the copy of each package that will be used in a given Laclin distro while booted all the way into the distro in question. #--------------------------------------------------------------------- 4. As of 2018, this distro supported only "ffmpeg"-internal "aac" (and that only for "ffmpeg3" and above). Support for other implementations had been dropped by "ffmpeg*" or were too problematic from a license perspective. As of September 23, 2024, support for "libfdk-aac" was added to "ffmpeg7" and up. However, due to license issues, support for the lib- rary can be enabled or disabled -- and must be disabled initially in binary copies of the distro that are distributed. Recipients of binary copies of the distro can rebuild "ffmpeg7" and up to enable support for "libfdk-aac". To enable support for "libfdk-aac", edit the "ENABLEFDK=..." setting in this file, set "ENABLEFDK=1", and rebuild the package. To disable support for "libfdk-aac", edit the "ENABLEFDK=..." setting in this file, set "ENABLEFDK=0", and rebuild the package. #--------------------------------------------------------------------- 5. "aac" Example: Constant bit rate using "-b:a": ffmpeg -i input.wav -c:a aac -b:a 160k output.m4a VBR isn't recommended. #--------------------------------------------------------------------- 6. If you update this package, proceed with caution. Reason: Newer re- leases break various programs, either directly (due to changes in the API) or indirectly (by mandating other library updates that break things). If it's necessary to update this package, you may need to split it in- to two packages, one for the old release and one for the new release. In this event, one of the packages will need to set "nosyslinks = yes". #--------------------------------------------------------------------- 7. "ffmpeg" sources can't be used with arbitrary "x264" sources. If you update either of these packages, you may need to update both of them. #--------------------------------------------------------------------- 8. To copy the first two minutes of a video, use a command similar to the following: ffmpeg -i input.mp4 -ss 0 -t 120 -c copy output.mp4 #--------------------------------------------------------------------- [buildtimes] #--------------------------------------------------------------------- [settings] altpkg = yes build = default exepack = yes large = yes license = May be GPL or LGPL (depends on configuration settings) nosyslinks = yes slowdown = yes tmpsize = 157M unpack = relaxed dontfind = \ ffmpeg2 ffmpeg3 ffmpeg4 ffmpeg5 ffmpeg6 \ libav liblzo openjpeg15 openjpeg21 openjpeg23 \ openjpeg24 setpaths = \ bzip2 dav1d ffmpeg7 frei0r fribidi \ gtkcore jackone ladspa libaom libcdio \ libgmp librsvg libssh openjpeg libvpx114 \ openssl pulseaudio rubberband xorg lame \ theora libzimg libass brotli tesseract #--------------------------------------------------------------------- [depends] a52dec actools alsa brotli bzip2 dav1d faad2 # May not be used fdk-aac fontconfig freetype2 frei0r fribidi gawk gnutls3 grep gtkcore harfbuzz imlib2 jackone ladspa lame libaom libass libbluray libcdio libdca libgcrypt libgmp libgsm liblzo liblzo2 libogg librsvg librtmp libsoxr libssh libvorbis libvpx114 libwebp libzimg openh264 openjpeg openssl opus pkgconf pulseaudio rubberband sdl sed speex svt-av1 tesseract theora twolame x264 x265 xorg xvidcore xzutils yasm zlib #--------------------------------------------------------------------- [configure] # See comments near start of this file. ENABLEFDK=1 ETCDIR=$PKGDIR_PROD/etc MANBASE=$PKGDIR_PROD/man mkdir -p $ETCDIR $MANBASE mkdir -p libmpcodecs LDINSERTAFTER="-lavformat -lrtmp:-lrtmp -lssl -lz" export LDINSERTAFTER if [ $LACBITS == 64 ]; then BLUSET=--enable-libbluray else BLUSET= fi if [ "@$ENABLEFDK" == "@1" ]; then FDKSET="--enable-libfdk-aac --enable-nonfree" else FDKSET= fi bash ./configure \ --prefix=$PKGDIR_PROD \ --mandir=$MANBASE \ \ --disable-altivec \ --disable-avx \ --disable-debug \ --disable-doc \ --disable-static \ --disable-stripping \ \ --disable-altivec \ --disable-amd3dnow \ --disable-amd3dnowext \ --disable-armv5te \ --disable-armv6 \ --disable-armv6t2 \ --disable-dxva2 \ --disable-fma4 \ --disable-neon \ --disable-ssse3 \ --disable-vfp \ \ --enable-libfdk-aac \ --enable-nonfree \ \ --enable-bzlib \ --enable-frei0r \ --enable-gcrypt \ --enable-gmp \ --enable-gnutls \ --enable-gpl \ --enable-ladspa \ --enable-postproc \ --enable-pthreads \ --enable-runtime-cpudetect \ --enable-shared \ --enable-version3 \ --enable-zlib \ \ --enable-libaom \ --enable-libass \ --enable-libcdio \ --enable-libdav1d \ --enable-libfontconfig \ --enable-libfreetype \ --enable-libfribidi \ --enable-libgsm \ --enable-libmp3lame \ --enable-libopenh264 \ --enable-libopenjpeg \ --enable-libopus \ --enable-libpulse \ --enable-librsvg \ --enable-librtmp \ --enable-librubberband \ --enable-libssh \ --enable-libsoxr \ --enable-libspeex \ --enable-libsvtav1 \ --enable-libtesseract \ --enable-libtheora \ --enable-libtwolame \ --enable-libvorbis \ --enable-libvpx \ --enable-libwebp \ --enable-libx264 \ --enable-libx265 \ --enable-libxvid \ --enable-libzimg \ \ $BLUSET \ $FDKSET #--------------------------------------------------------------------- [postbuild] BINDIR=$PKGDIR_PROD/bin DOCDIR=$PKGDIR_PROD/doc INCDIR=$PKGDIR_PROD/include mkdir -p $DOCDIR $INCDIR cp -p $PKGDIR_SPECIAL/ffmpeg.html $DOCDIR/ cd $INCDIR if [ ! -d ffmpeg ]; then mkdir ffmpeg cd ffmpeg ln -nsf ../*/*.h . ln -nsf ../libavutil/opt.h . cd .. fi cd $INCDIR HASH_INCLUDE="#include" cat > avcodec.h << END ${HASH_INCLUDE} END cat > postprocess.h << END ${HASH_INCLUDE} END if [ ! -d postproc ]; then ln -s ffmpeg postproc fi # Only for the system default "ffmpeg*" package: ln -nsf $BINDIR/* /$LACARCH/bin/ ln -nsf $BINDIR/* /$LACARCH/xbin/ #--------------------------------------------------------------------- # Original URLs. These URLs were valid at one point, but may have died # since then. If you download newer versions of tarballs [etc.], don't # delete the original versions, as you may not be able to replace # them. [urls] url_debian = http://packages.debian.org/unstable/source/ffmpeg url_home = http://ffmpeg.mplayerhq.hu/ url_lfs = http://www.linuxfromscratch.org/blfs/view/stable/\ multimedia/videoutils.html#ffmpeg url_tarball = http://ffmpeg.mplayerhq.hu/releases/\ ffmpeg-7.0.2.tar.bz2 #--------------------------------------------------------------------- [history] 170712 Added package (ffmpeg3 as opposed to ffmpeg2) 170812 Updated from 3.3.2 to 3.3.3 170912 Updated to 3.3.4 171028 Updated to 3.3.5 171211 Updated to 3.4.1 180302 Updated to 3.4.2 180505 Split "ffmpeg" 3 and 4 into different packages 180505 Started with 4.0 180616 Updated to 4.0.1 180718 Updated to 4.0.2 181103 Updated to 4.0.3 181206 Updated to 4.1 190216 Updated to 4.1.1 190324 Updated to 4.1.2 190402 Updated to 4.1.3 190710 Updated to 4.1.4 190808 Updated to 4.2 190908 Updated to 4.2.1 201224 Updated to 4.3.1 210222 Updated to 4.3.2 210423 Updated to 4.4 210815 Add "handbrake" patches 211024 Updated to 4.4.1 211111 Downdated to 4.3.3 230108 Updated to 4.3.5 230108 Split "ffmpeg" 4 and 5 into different packages 230108 Started with 5.1.2 230406 Updated to 5.1.3 240120 Updated to 5.1.4 240622 Updated to 5.1.5 240704 Split "ffmpeg" 5 and 6 into different packages 240704 Updated to 6.1.1 240921 Updated to 6.1.2 240921 Split "ffmpeg" 6 and 7 into different packages 240921 Updated to 7.0.2 240923 Added support for "libfdk-aac" 240923 Added support for "openh264" 240923 Added support for "svt-av1"