44. Video Utilities
This chapter always seems to be the favorite chapter. It’s probably because there is a lot of satisfaction in playing your first video when you have spent so much time getting to that point. All those libraries, all the configurations and your reward is that you finally get to watch a movie. Not to worry though, there is always one more CODEC to install.
44.1 FFmpeg-5.1.2
Introduction to FFmpeg
FFmpeg is a solution to record, convert and stream audio and video. It is a very fast video and audio converter and it can also acquire from a live audio/video source. Designed to be intuitive, the command-line interface (ffmpeg) tries to figure out all the parameters, when possible. FFmpeg can also convert from any sample rate to any other, and resize video on the fly with a high quality polyphase filter. FFmpeg can use a Video4Linux compatible video source and any Open Sound System audio source.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://ffmpeg.org/releases/ffmpeg-5.1.2.tar.xz
-
Download MD5 sum: fa847c43407315c27231b9f883e62c0e
-
Download size: 9.5 MB
-
Estimated disk space required: 184 MB (add 1.7 GB for the FATE suite/tests, add 766 MB for documentation)
-
Estimated build time: 1.3 SBU (using parallelism=4; add 3.7 SBU (with THREADS=4) to run the FATE suite after sample files are downloaded; add 0.3 SBU for doxygen docs)
Additional Downloads
- Required patch: https://www.linuxfromscratch.org/patches/blfs/11.3/ffmpeg-5.1.2-chromium_method-1.patch
FFmpeg Dependencies
Recommended
libass-0.17.0, fdk-aac-2.0.2, FreeType-2.13.0, LAME-3.100, libtheora-1.1.1, libvorbis-1.3.7, libvpx-1.13.0, Opus-1.3.1, x264-20230215, x265-20230215, and NASM-2.16.01 or yasm-1.3.0
Recommended for desktop use
alsa-lib-1.2.8, libva-2.17.0, libvdpau-1.5 (with the corresponding driver package), and SDL2-2.26.3
Optional
Doxygen-1.9.6, Fontconfig-2.14.2, FriBidi-1.0.12, frei0r-plugins-1.8.0, libcdio-2.1.0 (to identify and play CDs), libdrm-2.4.115 (for “kmsgrab” input), libwebp-1.3.0, opencv-4.7.0, OpenJPEG-2.5.0, GnuTLS-3.8.0, PulseAudio-16.1, Samba-4.17.5, Speex-1.2.1, texlive-20220321 (or install-tl-unx) for PDF and PS documentation, v4l-utils-1.22.1, XviD-1.3.7, a graphical environment, Flite, GSM, libaacplus, libbluray, libcaca, libcelt, libdc1394, libdca, libiec61883, libilbc, libmodplug, libnut (Git checkout), librtmp, libssh, OpenAL, OpenCore AMR, Srt, Schroedinger, TwoLAME, vo-aaenc, vo-amrwbenc, and ZVBI
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/ffmpeg
Installation of FFmpeg
Note
Some harmless warnings may be output by the build process regarding the HTML documentation. This is due to an incompatibilty with Texinfo-7.0 and higher.
First, apply a patch that adds an API necessary for some packages to build:
patch -Np1 -i ../ffmpeg-5.1.2-chromium_method-1.patch
Install FFmpeg by running the following commands:
sed -i 's/-lflite"/-lflite -lasound"/' configure &&
./configure --prefix=/usr \
--enable-gpl \
--enable-version3 \
--enable-nonfree \
--disable-static \
--enable-shared \
--disable-debug \
--enable-libass \
--enable-libfdk-aac \
--enable-libfreetype \
--enable-libmp3lame \
--enable-libopus \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
--enable-libx264 \
--enable-libx265 \
--enable-openssl \
--docdir=/usr/share/doc/ffmpeg-5.1.2 &&
make &&
gcc tools/qt-faststart.c -o tools/qt-faststart
HTML documentation was built in the previous step. If you have texlive-20220321 installed and wish to build PDF and Postscript versions of the documentation, issue the following commands:
pushd doc &&
for DOCNAME in `basename -s .html *.html`
do
texi2pdf -b $DOCNAME.texi &&
texi2dvi -b $DOCNAME.texi &&
dvips -o $DOCNAME.ps \
$DOCNAME.dvi
done &&
popd &&
unset DOCNAME
If you have Doxygen-1.9.6 installed and you wish to build (if –disable-doc was used) or rebuild the html documentation, issue:
doxygen doc/Doxyfile
The fate-suite tests include comparisons with installed files, and should not be run before the package is installed. Therefore, if you desire to run them, instructions are given further below.
Now, as the root user:
make install &&
install -v -m755 tools/qt-faststart /usr/bin &&
install -v -m755 -d /usr/share/doc/ffmpeg-5.1.2 &&
install -v -m644 doc/*.txt /usr/share/doc/ffmpeg-5.1.2
If the PDF and Postscript documentation was built, issue the following commands, as the root user, to install them:
install -v -m644 doc/*.pdf /usr/share/doc/ffmpeg-5.1.2 &&
install -v -m644 doc/*.ps /usr/share/doc/ffmpeg-5.1.2
If you used doxygen to manually create the API documentation, install it by issuing the following commands as the root user:
install -v -m755 -d /usr/share/doc/ffmpeg-5.1.2/api &&
cp -vr doc/doxy/html/* /usr/share/doc/ffmpeg-5.1.2/api &&
find /usr/share/doc/ffmpeg-5.1.2/api -type f -exec chmod -c 0644 \{} \; &&
find /usr/share/doc/ffmpeg-5.1.2/api -type d -exec chmod -c 0755 \{} \;
To properly test the installation you must have rsync-3.2.7 installed and follow the instructions for the FFmpeg Automated Testing Environment (FATE). First, about 1 GB of sample files used to run FATE are downloaded with the command:
make fate-rsync SAMPLES=fate-suite/
The fate-suite directory is created and the files are downloaded there. That command actually runs an rsync command to obtain the sample files. You may want to compress and keep this directory for testing again, for testing in another system, or for when a new version of ffmpeg is released. Then, unpack the sample files in the source directory, and run the make fate-rsync … command above to sync with the upstream repository. The download size and time are drastically reduced by doing this. Estimated values in “Package Information” do not include the download SBU. Some samples may have been removed in newer versions, so in order to be sure local and server fate samples are identical when you use previously saved samples, run the following command:
rsync -vrltLW --delete --timeout=60 --contimeout=60 \
rsync://fate-suite.ffmpeg.org/fate-suite/ fate-suite/
Next, execute FATE with the following commands (there are more than 3800 tests in the suite):
make fate THREADS=N SAMPLES=fate-suite/ | tee ../fate.log &&
grep ^TEST ../fate.log | wc -l
where N is an integer, N ≤ number of cores in the system.
A successful run should return no errors or warnings, just a list of tests and total amount at the end.
Command Explanations
sed -i … configure: This command adds the ALSA library to the Flite LDFLAGS variable and enables the discovery of Flite.
find … ;: Fixes permissions of documentation files and directories.
--enable-libfreetype: Enables Freetype support.
--enable-gpl: Enables the use of GPL code and permits support for postprocessing, swscale and many other features.
--enable-version3: Enables the use of (L)GPL version 3 code.
--enable-nonfree: Enables the use of nonfree code. Note that the resulting libraries and binaries will be unredistributable.
--disable-static: This switch prevents installation of static versions of the libraries.
--enable-shared: Enables building shared libraries, otherwise only static libraries are built and installed.
--disable-debug: Disables building debugging symbols into the programs and libraries.
--enable-libass: Enables ASS/SSA subtitle format rendering via libass.
--enable-libdrm: Use this switch if libdrm-2.4.115 is installed to build the “kmsgrab” input module which is useful for screen capturing or streaming.
--enable-libfdk-aac: Enables AAC audio encoding via libfdk-aac.
--enable-libmp3lame: Enables MP3 audio encoding via libmp3lame.
--enable-libvorbis --enable-libtheora: Enables Theora video encoding via libvorbis and libtheora.
--enable-libvorbis --enable-libvpx: Enables WebM encoding via libvorbis and libvpx.
--enable-libx264: Enables high-quality H.264/MPEG-4 AVC encoding via libx264.
--enable-libx265: Enables high-quality H.265/HEVC encoding via libx265.
--enable-openssl: Enables HTTPS protocol for network streams.
--enable-gnutls: Use this option instead of --enable-openssl, if you want to use GnuTLS instead of OpenSSL for HTTPS protocol.
--disable-doc: Disables building html documentation. This is only needed if Doxygen-1.9.6 is installed and you do not want to build the html documentation.
--enable-libpulse: Enables support for Pulseaudio for audio output.
gcc tools/qt-faststart.c -o tools/qt-faststart: This builds the qt-faststart program which can modify QuickTime formatted movies (.mov or .mp4) so that the header information is located at the beginning of the file instead of the end. This allows the movie file to begin playing before the entire file has been downloaded.
Note
Support for most of the dependency packages requires using options passed to the configure script. View the output from ./configure –help for complete information about enabling dependency packages.
Contents
Installed Programs: ffmpeg, ffplay, ffprobe, and qt-faststart
Installed Libraries: libavcodec.so, libavdevice.so, libavfilter.so, libavformat.so, libavutil.so, libpostproc.so, libswresample.so, and libswscale.so
Installed Directories: /usr/include/libav{codec,device,filter,format,util}, /usr/include/libpostproc, /usr/include/libsw{resample,scale}, /usr/share/doc/ffmpeg-5.1.2, and /usr/share/ffmpeg
Short Descriptions
ffmpeg is a command-line tool to convert video files, network streams and input from a TV card to several video formats.
ffplay is a very simple and portable media player using the ffmpeg libraries and the SDL library.
ffprobe gathers information from multimedia streams and prints it in a human and machine-readable fashion.
qt-faststart moves the index file to the front of quicktime (mov/mp4) videos.
libavcodec.so is a library containing the FFmpeg codecs (both encoding and decoding).
libavdevice.so is the FFmpeg device handling library.
libavfilter.so is a library of filters that can alter video or audio between the decoder and the encoder (or output).
libavformat.so is a library containing the file formats handling (mux and demux code for several formats) used by ffplay as well as allowing the generation of audio or video streams.
libavresample.so is a library containing functions for resampling audio and video.
libavutil.so is the FFmpeg utility library.
libpostproc.so is the FFmpeg post processing library.
libswresample.so is the FFmpeg audio rescaling library, it contains functions for converting audio sample formats.
libswscale.so is the FFmpeg image rescaling library.
44.2 MPlayer-1.5
Introduction to MPlayer
MPlayer is a powerful audio/video player controlled via the command line or a graphical interface that is able to play almost every popular audio and video file format. With supported video hardware and additional drivers, MPlayer can play video files without an X Window System installed.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://mplayerhq.hu/MPlayer/releases/MPlayer-1.5.tar.xz
-
Download (FTP): ftp://ftp.mplayerhq.hu/MPlayer/releases/MPlayer-1.5.tar.xz
-
Download MD5 sum: 0419b64db24b6db0943dbc6afece7c44
-
Download size: 15 MB
-
Estimated disk space required: 152 MB
-
Estimated build time: 0.4 SBU (Using parallelism=4)
Additional Downloads
Skins
-
GUI skin (HTTP): https://mplayerhq.hu/MPlayer/skins/Clearlooks-2.0.tar.bz2
-
GUI skin (FTP): ftp://ftp.mplayerhq.hu/MPlayer/skins/Clearlooks-2.0.tar.bz2
-
Skin MD5 sum: c82d4dbd7f0c36dfecd63dff972807c5
-
Skin size: 34 KB
-
Alternative skins: https://mplayerhq.hu/MPlayer/skins/
Note
Skins are only required in order to use the Gtk+ 2 user interface.
MPlayer Dependencies
Required
Recommended
FFmpeg-5.1.2, GTK+-2.24.33, and libvdpau-va-gl-0.4.0
Optional Input Drivers and Libraries
CDParanoia-III-10.2, libcdio-2.1.0 (to identify and play CDs), libdvdread-6.1.3, libdvdnav-6.1.1, libdvdcss-1.4.3, Samba-4.17.5, libbluray, LIVE555 Streaming Media, RTMPDump, TiVo vstream client, and XMMS
Optional Audio Output Drivers and Libraries
ALSA-1.2.7, PulseAudio-16.1, SDL-1.2.15, JACK, NAS, and OpenAL
Optional Video Output Drivers and Libraries
AAlib-1.4rc5, giflib-5.2.1, libjpeg-turbo-2.1.5.1, libmng-2.0.3, libpng-1.6.39, OpenJPEG1 DirectFB, libcaca, and SVGAlib
Optional CODECs
FAAC-1_30, FAAD2-2.10.1, LAME-3.100, liba52-0.7.4, libdv-1.0.0, libmad-0.15.1b, libmpeg2-0.5.1, libtheora-1.1.1, libvpx-1.13.0, LZO-2.10, mpg123-1.31.2, Speex-1.2.1, XviD-1.3.7, x264-20230215, CrystalHD, Dirac, GSM, iLBC, libdca, libnut, libmpcdec, OpenCore Adaptive Multi Rate, Schroedinger, Tremor, and TwoLAME
Optional Miscellaneous Dependencies
Fontconfig-2.14.2, FreeType-2.13.0, FriBidi-1.0.12, GnuTLS-3.8.0, Opus-1.3.1, and UnRar-6.2.6; libxslt-1.1.37, docbook-xml-4.5 and docbook-xsl-nons-1.79.2 (all three required to build the HTML documentation); and Enca, libbs2b, and LIRC (and LIRC Client Daemon)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/mplayer
Installation of MPlayer
Main MPlayer Installation
Note
The package maintainers recommend building without any optimizations.
You may wish to examine the output from ./configure –help to find out what additional parameters to configure are needed to include the dependencies you have installed on your system.
Install MPlayer by running the following commands:
./configure --prefix=/usr \
--confdir=/etc/mplayer \
--enable-dynamic-plugins \
--disable-libmpeg2-internal \
--disable-ffmpeg_a \
--enable-menu \
--enable-runtime-cpudetection \
--enable-gui &&
make
If you wish to build the HTML documentation, issue the following command:
make doc
This package does not come with a test suite.
Now, as the root user:
make install &&
ln -svf ../icons/hicolor/48x48/apps/mplayer.png \
/usr/share/pixmaps/mplayer.png
To install the HTML documentation, issue the following commands as the root user:
install -v -m755 -d /usr/share/doc/mplayer-1.5 &&
install -v -m644 DOCS/HTML/en/* \
/usr/share/doc/mplayer-1.5
You will only need codecs.conf if you want to change its properties, as the main binary contains an internal copy of it. Ensure any changes you make to codecs.conf achieve the desired results, as incorrect entries in this file have been known to cause errors and render the player unusable. If necessary, create the file as the root user:
install -v -m644 etc/codecs.conf /etc/mplayer
You may alternatively want to copy all the default configuration files to /etc/mplayer for future reference or more customization ability. As the root user:
install -v -m644 etc/*.conf /etc/mplayer
Skin Installation (Optional)
To enable the Gtk+ 2 frontend of MPlayer, you’ll need to install at least one skin. Extract the desired skin and create the default location (as the root user):
tar -xvf ../Clearlooks-2.0.tar.bz2 \
-C /usr/share/mplayer/skins &&
ln -sfvn Clearlooks /usr/share/mplayer/skins/default
Note
This package installs icon files into the /usr/share/icons/hicolor hierarchy and desktop files into the /usr/share/applications hierarchy. You can improve system performance and memory usage by updating /usr/share/icons/hicolor/index.theme and /usr/share/applications/mimeinfo.cache. To perform the update you must have GTK+-2.24.33 or GTK+-3.24.36 installed (for the icon cache) and desktop-file-utils-0.26 (for the desktop cache) and issue the following commands as the root user:
gtk-update-icon-cache -qtf /usr/share/icons/hicolor &&
update-desktop-database -q
Command Explanations
--enable-gui: This option builds the GUI interface into mplayer.
--enable-menu: This option is set to enable the on-screen display.
--enable-runtime-cpudetection: This option makes MPlayer run with a generic CPU type, preventing optimizations that may cause runtime problems.
--disable-ffmpeg_a: You can use this option if you have installed FFmpeg-5.1.2. Dynamically linking to a system installed FFmpeg makes MPlayer and Mencoder about 9MB smaller.
--disable-libmpeg2-internal: This option makes MPlayer run with a system version of libmpeg2.
--language-doc="`<lang>`": This switch sets the language used for the documentation. Use ./configure –help for more information.
--language-man="`<lang>`": This switch sets the language used for the man pages. Use ./configure –help for more information.
--language-msg="`<lang>`": This switch sets the language used for messages and the GUI. Use ./configure –help for more information
--language="`<lang>`": This switch sets the default language used. Use ./configure –help for more information.
Note
Specific options override –language. You can pass a list of languages separated by whitespace or commas instead of a single language. Nonexisting translations will be dropped from each list. All documentation and man page translations available in the list will be installed, for the messages the first available translation will be used. The value “all” will activate all translations. The LINGUAS environment variable is honored. In all cases the fallback is English. Values listed by ./configure –help are not all available, as would normally be expected. You need to build test.
Configuring MPlayer
Config Files
/etc/mplayer/* and ~/.mplayer/*
Note
To play a DVD, it may be useful to ensure a /dev/dvd device is created. You may need to set this up as described in the section called “Devices for DVD Drives”.
Configuration Information
Typically, there’s no configuration required for the system-wide files in /etc/mplayer (in fact, this directory is empty unless you copied the default files as mentioned above). Configuration can be accomplished by choosing the configuration button located on the MPlayer GUI. Any configuration changes made in the GUI will be saved in the user’s ~/.mplayer directory.
Contents
Installed Programs: gmplayer, mplayer and mencoder
Installed Libraries: None
Installed Directories: /etc/mplayer, /usr/share/doc/mplayer-1.5 and /usr/share/mplayer
Short Descriptions
gmplayer is a symlink to mplayer which brings up the GTK+ 2 frontend of MPlayer.
mplayer is the main MPlayer video player.
mencoder is a powerful command line video decoding, encoding and filtering tool that is useful for (amongst other things) ripping DVDs to files on your hard disk (see /usr/share/doc/mplayer-1.5/mencoder.html).
44.3 Transcode-1.1.7
Introduction to Transcode
Transcode was a fast, versatile and command-line based audio/video everything to everything converter primarily focused on producing AVI video files with MP3 audio, but also including a program to read all the video and audio streams from a DVD.
Although outdated and no longer maintained, it can still be used to extract items from a DVD using only the required and recommended dependencies, or to recode to AVI files.
Subjects to the comments below, this package is known to build and minimally work using the current LFS platform.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://sources.archlinux.org/other/community/transcode/transcode-1.1.7.tar.bz2
-
Download (FTP): ftp://ftp.mirrorservice.org/sites/distfiles.gentoo.org/distfiles/transcode-1.1.7.tar.bz2
-
Download MD5 sum: 9bb25a796a8591fb764de46ee87ce505
-
Download size: 2.1 MB
-
Estimated disk space required: 72 MB
-
Estimated build time: 0.5 SBU
Additional Downloads
- Required patch to fix some issues exposed by GCC 10 and later: https://www.linuxfromscratch.org/patches/blfs/11.3/transcode-1.1.7-gcc10_fix-1.patch
Transcode Dependencies
Recommended
alsa-lib-1.2.8, LAME-3.100, libdvdread-6.1.3, libmpeg2-0.5.1, and Xorg Libraries
Optional
FAAC-1_30, FreeType-2.13.0, ImageMagick-6, liba52-0.7.4, libdv-1.0.0, libjpeg-turbo-2.1.5.1, libogg-1.3.5, libquicktime-1.2.4, libtheora-1.1.1, libvorbis-1.3.7, libxml2-2.10.3, LZO-2.10, SDL-1.2.15, v4l-utils-1.22.1, x264-20230215, XviD-1.3.7 MJPEG Tools, and PVM3,
Optional (at runtime)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/transcode
Installation of Transcode
Note
Support for most of the dependency packages requires using options passed to the configure script. View the INSTALL file and the output from ./configure –help for complete information about enabling dependency packages.
Install Transcode by running the following commands:
sed -i 's|doc/transcode|&-$(PACKAGE_VERSION)|' \
$(find . -name Makefile.in -exec grep -l 'docsdir =' {} \;) &&
patch -Np1 -i ../transcode-1.1.7-gcc10_fix-1.patch &&
./configure --prefix=/usr \
--enable-alsa \
--enable-libmpeg2 \
--disable-ffmpeg &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Command Explanations
sed -i …: Fixes install location for documentation.
--disable-ffmpeg: This switch disables support for ffmpeg because libavresample was removed in ffmpeg-5.x.
Contents
Installed Programs: avifix, aviindex, avimerge, avisplit, avisync, tccat, tcdecode, tcdemux, tcextract, tcmodinfo, tcmp3cut, tcprobe, tcscan, tcxmlcheck, tcxpm2rgb, tcyait, and transcode
Installed Libraries: None
Installed Directories: /usr/lib/transcode and /usr/share/doc/transcode-1.1.7
Short Descriptions
avifix fixes the header of an AVI file.
aviindex writes a text file describing the index of an AVI file.
avimerge merges AVI files of the same format. Do not try to merge AVI files of different formats, it will most likely result in errors (and format means same bitrates, too!).
avisplit splits AVI files into multiple files.
avisync can shift audio in AVI files for better synchronizing of the audio and video data signal.
tccat concatenates input files using the input plugins of Transcode. This is useful for extracting VOB (Video OBject) files, either for a whole DVD or for selected Titles or Chapters, which can then be played or recoded.
tcdecode is used to decode input files to raw video and PCM audio streams.
tcdemux demultiplexes (separates) audio/video input that contains multiple streams, e.g., VOB files.
tcextract grabs single streams from a file containing multiple streams.
tcmodinfo loads a supplied Transcode filter module and prints its parameters.
tcmp3cut is a tool which can cut MP3 streams at milliseconds positions.
tcprobe prints information about the input file format.
tcscan performs several measurements on the given input data.
tcxmlcheck checks information in a SMIL input file.
transcode is the encoder’s user interface that handles the plugins and other programs, being the glue between the modules. There are several well documented usage examples on both the homepage and the documentation included in the package.
44.4 VLC-3.0.18
Introduction to VLC
VLC is a media player, streamer, and encoder. It can play from many inputs, such as files, network streams, capture devices, desktops, or DVD, SVCD, VCD, and audio CD. It can use most audio and video codecs (MPEG 1/2/4, H264, VC-1, DivX, WMV, Vorbis, AC3, AAC, etc.), and it can also convert to different formats and/or send streams through the network.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://download.videolan.org/vlc/3.0.18/vlc-3.0.18.tar.xz
-
Download MD5 sum: f3c031357c0eeffb41e928eca220a803
-
Download size: 25 MB
-
Estimated disk space required: 700 MB
-
Estimated build time: 1.7 SBU (using parallelism=4)
VLC Dependencies
Recommended
alsa-lib-1.2.8, desktop-file-utils-0.26, FFmpeg-5.1.2, liba52-0.7.4, libgcrypt-1.10.1 libmad-0.15.1b, Lua-5.2.4, and a graphical environment
Optional features and packages
dbus-1.14.6, libidn-1.41, and libssh2-1.10.0
Optional input plugins
libarchive-3.6.2, libcddb-1.3.2, libdv-1.0.0, libdvdcss-1.4.3, libdvdread-6.1.3, libdvdnav-6.1.1, opencv-4.7.0, Samba-4.17.5, v4l-utils-1.22.1, libbluray, libdc1394, libnfs, libproxy, libraw1394, Live555, and VCDImager (requires libcdio-2.1.0)
Optional mux/demux plugins
libogg-1.3.5, Game Music Emu, libdvbpsi, libshout, libmatroska (requires libebml), libmodplug, Musepack, and sidplay-libs
Optional codec plugins
FAAD2-2.10.1, FLAC-1.4.2, libass-0.17.0, libmpeg2-0.5.1, libpng-1.6.39, libtheora-1.1.1, libva-2.17.0, libvorbis-1.3.7, Opus-1.3.1, Speex-1.2.1, libvpx-1.13.0, x264-20230215, aom, aribb24, dav1d, Dirac, FluidLite, FluidSynth, libdca, libkate, OpenMAX, Schroedinger, Shine, SoX, Tremor, Twolame, and Zapping VBI
Optional video plugins
AAlib-1.4rc5, Fontconfig-2.14.2, FreeType-2.13.0, FriBidi-1.0.12, librsvg-2.54.5, libvdpau-1.5, SDL-1.2.15 (with SDL_image), libcaca, and libmfx
Optional audio plugins
PulseAudio-16.1, libsamplerate-0.2.2, spatialaudio, and JACK
Optional interface plugins
Qt-5.15.8 (required for the graphical user interface), libtar, libvncclient, LIRC, and freerdp
Optional visualisations and video filter plugins
Optional service discovery plugins
Miscellaneous options
GnuTLS-3.8.0, libnotify-0.8.1, libxml2-2.10.3, taglib-1.13, xdg-utils-1.1.3 (runtime), AtmoLight, libmicrodns, protobuf, and Srt
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/vlc
Installation of VLC
Install VLC by running the following commands:
export LUAC=/usr/bin/luac5.2 &&
export LUA_LIBS="$(pkg-config --libs lua52)" &&
export CPPFLAGS="$(pkg-config --cflags lua52)" &&
BUILDCC=gcc ./configure --prefix=/usr --disable-libva &&
make
To test the results, issue: make check.
Now, as the root user:
make docdir=/usr/share/doc/vlc-3.0.18 install
Note
This package installs icon files into the /usr/share/icons/hicolor hierarchy and desktop files into the /usr/share/applications hierarchy. You can improve system performance and memory usage by updating /usr/share/icons/hicolor/index.theme and /usr/share/applications/mimeinfo.cache. To perform the update you must have GTK+-2.24.33 or GTK+-3.24.36 installed (for the icon cache) and desktop-file-utils-0.26 (for the desktop cache) and issue the following commands as the root user:
gtk-update-icon-cache -qtf /usr/share/icons/hicolor &&
update-desktop-database -q
Command Explanations
export …: These commands ensure building with Lua-5.2.4. Upstream does not support lua 5.4 yet.
--disable-libva: This switch is required to disable video acceleration in VLC since it is incompatible with ffmpeg-5, and upstream has no plans to port it due to complexity.
--disable-vpx: Use this switch to disable libvpx.
--disable-mad: Use this switch if you don’t have libmad installed.
--disable-avcodec --disable-swscale: Use these switches if you don’t have FFmpeg installed.
--disable-a52: Use this switch if you don’t have liba52 installed.
--disable-xcb: Use this switch if you don’t have X Window System installed.
--disable-alsa: Use this switch if you don’t have ALSA installed.
--disable-libgcrypt: Use this switch if you don’t have libgcrypt installed.
--disable-sftp: The default is to build the sftp module if libssh2-1.10.0 is installed. Use this switch if you do not want to build this module.
Note
There are many options to VLC’s configure command. Check the configure –help output for a complete list.
Contents
Installed Programs: cvlc, nvlc, qvlc, rvlc, svlc, vlc and vlc-wrapper
Installed Libraries: libvlccore.so, libvlc.so, and many plugins in /usr/lib/vlc/plugins
Installed Directories: /usr/{include,lib,share}/vlc, /usr/share/kde4, and /usr/share/doc/vlc-3.0.18
Short Descriptions
cvlc is a script to run VLC with the dummy interface.
nvlc is a script to run VLC with the ncurses interface.
qvlc is a script to run VLC with the Qt interface.
rvlc is a script to run VLC with a command line interface.
svlc is a script to run VLC with the skins interface.
vlc is the VLC media player.
vlc-wrapper is a wrapper to drop privileges with VLC.
44.5 xine-ui-0.99.14
Introduction to Xine User Interface
The xine User Interface package contains a multimedia player. It plays back CDs, DVDs and VCDs. It also decodes multimedia files like AVI, MOV, WMV, MPEG and MP3 from local disk drives, and displays multimedia streamed over the Internet.
This package is known to build and work properly using an LFS 11.3 platform.
Note
Although this version of xine-ui works with most files, it is unable to open encrypted (content-scrambled) DVDs with the current version of libdvdcss.
Package Information
-
Download (HTTP): https://downloads.sourceforge.net/xine/xine-ui-0.99.14.tar.xz
-
Download MD5 sum: 86a4db9050405a91fcc33b7ad85274f5
-
Download size: 2.1 MB
-
Estimated disk space required: 23 MB
-
Estimated build time: 0.2 SBU
Xine User Interface Dependencies
Required
xine-lib-1.2.13 and shared-mime-info-2.2
Optional
cURL-7.88.1, AAlib-1.4rc5, LIRC, and libcaca
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/xine-ui
Installation of Xine User Interface
Install xine User Interface by running the following commands:
./configure --prefix=/usr &&
make
This package does not come with a test suite.
Now, as the root user:
make docsdir=/usr/share/doc/xine-ui-0.99.14 install
Note
This package installs icon files into the /usr/share/icons/hicolor hierarchy and desktop files into the /usr/share/applications hierarchy. You can improve system performance and memory usage by updating /usr/share/icons/hicolor/index.theme and /usr/share/applications/mimeinfo.cache. To perform the update you must have GTK+-2.24.33 or GTK+-3.24.36 installed (for the icon cache) and desktop-file-utils-0.26 (for the desktop cache) and issue the following commands as the root user:
gtk-update-icon-cache -qtf /usr/share/icons/hicolor &&
update-desktop-database -q
Command Explanations
docsdir=/usr/share/doc/xine-ui-0.99.14: This parameter causes the Xine UI documentation to be installed in the versioned directory /usr/share/doc/xine-ui-0.99.14, rather that the default /usr/share/doc/xine-ui.
Configuring Xine User Interface
Config Files
~/.xine/config
Configuration Information
The above file is created and maintainable through the xine setup dialog box. The documentation for the configuration settings is located at /usr/share/doc/xine-ui-0.99.14/README.config_en.
If you have a DVB TV card, you can watch TV with the command xine dvb:// and change channels with the scroll wheel on your mouse.
Contents
Installed Programs: aaxine, cacaxine, fbxine, xine, xine-bugreport, xine-check, and xine-remote
Installed Libraries: None
Installed Directories: /usr/share/xine and /usr/share/doc/xine-ui-0.99.14
Short Descriptions
aaxine is an ASCII art video player which utilizes AAlib as the frontend for the xine Libraries.
cacaxine is a color ASCII art video player which utilizes CACA as the frontend for the xine Libraries.
fbxine is a frame buffer interface to the xine Libraries.
xine is a multimedia player designed to play MPEG streams (audio and video), MPEG elementary streams (MP3), MPEG transport streams, Ogg files, AVI files, ASF files, some Quicktime files, VCDs and DVDs.
xine-bugreport produces a terse system description and guides you through the process of reporting a bug.
xine-check tests the xine video player installation for common problems. It tests the operating system settings, installation of plugins, CD/DVD drive settings and video support parameters.
xine-remote is a tool to connect to a xine remote control server.