# ffmpeg5/cfg - "Build" settings for package #--------------------------------------------------------------------- [technotes] 1. "ffmpeg5" provides a copy of "ffmpeg" 5.X for packages that need it. "ffmpeg5" should never be updated to a post-5.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 either been dropped by "ffmpeg*" or were too problematic from a license perspective. #--------------------------------------------------------------------- 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] 00.27 hours (or 016.48 minutes) - ThinkPad W530 i7 4x2 32GB RAM using a 64-bit kernel and 32-bit distro #--------------------------------------------------------------------- [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 libav \ liblzo openjpeg15 openjpeg21 openjpeg23 openjpeg24 setpaths = \ bzip2 dav1d ffmpeg5 frei0r fribidi \ gtkcore jackone ladspa libaom libcdio \ libgmp librsvg libssh openjpeg libvpx114 \ openssl pulseaudio rubberband xorg lame \ theora libzimg #--------------------------------------------------------------------- [depends] a52dec actools alsa bzip2 dav1d faad2 # May not be used 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 openjpeg openssl opus pkgconf pulseaudio rubberband sdl sed speex theora twolame x264 x265 xorg xvidcore xzutils yasm zlib #--------------------------------------------------------------------- [configure] 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 BLU=--enable-libbluray else BLU= 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-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-libopenjpeg \ --enable-libopus \ --enable-libpulse \ --enable-librsvg \ --enable-librtmp \ --enable-librubberband \ --enable-libssh \ --enable-libsoxr \ --enable-libspeex \ --enable-libtheora \ --enable-libtwolame \ --enable-libvorbis \ --enable-libvpx \ --enable-libwebp \ --enable-libx264 \ --enable-libx265 \ --enable-libxvid \ --enable-libzimg \ $BLU #--------------------------------------------------------------------- [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 #ifdef NOTDEF # Only for the system default "ffmpeg*" package: # ln -nsf $BINDIR/* /$LACARCH/bin/ # ln -nsf $BINDIR/* /$LACARCH/xbin/ #endif #--------------------------------------------------------------------- # 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-5.1.6.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 240921 Updated to 5.1.6