Skip to the content.

上一页      主目录      下一页

42. Multimedia Libraries and Drivers


许多多媒体程序需要库和/或驱动程序才能正常运行。本节中的包属于这一类。一般来说,你只需要在安装程序时安装这些库,这些库要么是一个要求,要么是一个选项,以使其支持某些功能。

42.1 ALSA-1.2.7


Linux内核现在默认提供ALSA支持。然而,应用程序需要与该功能进行接口。本书的以下六个部分分别介绍了ALSA的各个组成部分:库、插件、实用程序、工具、固件和OSS兼容库。

42.2 alsa-lib-1.2.8


简介ALSA Library

ALSA Library包包含了需要访问ALSA声音接口的程序(包括ALSA实用程序)所使用的ALSA库。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

ALSA库依赖

可选

Doxygen-1.9.6, Python-2.7.18, 和 alsa-ucm-conf

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/alsa-lib

内核配置

如果需要,在内核配置中启用以下选项,并重新编译内核:

Device Drivers --->
    <*/M> Sound card support --->                  [CONFIG_SOUND]
        <*/M> Advanced Linux Sound Architecture ---> [CONFIG_SND]
                Select settings and drivers appropriate for your hardware.

在内核配置的Device Drivers ⇒ Sound card support ⇒ Advanced Linux Sound Architecture部分中,选择适合硬件的设置和驱动程序。如果有必要,重新编译并安装新内核。

安装ALSA库

运行以下命令安装ALSA库:

./configure &&
make

如果你已经安装了Doxygen,并且希望构建库的API文档,在源代码树的顶层目录中运行以下命令:

make doc

要测试结果,请执行以下命令: make check.

现在,作为root用户:

make install

要安装API文档,以root用户身份运行以下命令:

install -v -d -m755 /usr/share/doc/alsa-lib-1.2.8/html/search &&
install -v -m644 doc/doxygen/html/*.* \
                /usr/share/doc/alsa-lib-1.2.8/html &&
install -v -m644 doc/doxygen/html/search/* \
                /usr/share/doc/alsa-lib-1.2.8/html/search

配置ALSA库

配置文件

~/.asoundrc/etc/asound.conf

配置信息

默认的alsa.conf就足够了。为了获得额外的功能和/或声音设备的高级控制,您可能需要创建额外的配置文件。有关可用配置参数的信息,请访问https://www.alsa-project.org/main/index.php/Asoundrc

内容

安装程序: aserver

安装库: libasound.so 和 libatopology.so

安装目录: /usr/include/alsa, /usr/share/alsa 和 /usr/share/doc/alsa-lib-1.2.8

简短描述

aserver   是ALSA服务器。

libasound.so   包含ALSA API函数。

libatopology.so   包含ALSA拓扑的API函数。

42.3 alsa-plugins-1.2.7.1


简介ALSA Plugins

ALSA Plugins包包含各种音频库和音频服务器的插件。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

ALSA Plugins依赖

必要

alsa-lib-1.2.8

可选

FFmpeg-5.1.2, libsamplerate-0.2.2, PulseAudio-16.1, Speex-1.2.1, JACK, libavtp, 和 maemo

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/alsa-plugins

安装ALSA Plugins

运行以下命令安装ALSA Plugins:

./configure --sysconfdir=/etc &&
make

这个包没有附带测试套件。

现在,作为root用户:

make install

内容

安装程序: None

安装库: Numerous libasound_module_<module>.so modules including conf_pulse, ctl_arcam_av, ctl_oss, ctl_pulse, pcm_a52, pcm_jack, pcm_oss, pcm_pulse, pcm_speex, pcm_upmix, pcm_usb_stream, pcm_vdownmix, rate_lavrate, rate_samplerate, 和 rate_speexrate*

安装目录: /usr/lib/alsa-lib

简短描述

libasound_module_pcm_oss.so   允许本地ALSA应用程序在OSS上运行。

libasound_module_pcm_upmix.so   允许将声音向上混合到4或6个通道。

libasound_module_pcm_vdownmix.so   允许从4-6声道降混到2声道立体声输出。

libasound_module_pcm_jack.so   允许原生ALSA应用程序与jackd一起工作。

libasound_module_pcm_pulse.so   允许本地ALSA应用程序访问PulseAudio声音守护进程。

libasound_module_pcm_a52.so   将S16线性声音格式转换为A52压缩格式,并将其发送到SPDIF输出。

libasound_module_rate_samplerate.so   通过libsamplerate提供一个外部速率转换器。

42.4 alsa-utils-1.2.8


简介ALSA Utilities

ALSA实用程序包包含各种实用程序,这对控制您的声卡很有用。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

ALSA Utilities依赖

必要

alsa-lib-1.2.8

可选

docutils-0.19, fftw-3.3.10, libsamplerate-0.2.2, xmlto-0.0.28, 和 Dialog

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/alsa-utils

安装ALSA Utilities

运行以下命令安装ALSA Utilities:

./configure --disable-alsaconf \
            --disable-bat   \
            --disable-xmlto \
            --with-curses=ncursesw &&
make

这个包没有附带测试套件。

现在,作为root用户:

make install

命令解释

--disable-alsaconf: 此开关禁用构建与Udev不兼容的alsaconf配置工具。

--disable-xmlto: 如果您已经安装了xmlto-0.0.28并希望重新生成手册页,则请忽略此开关。

--disable-bat: 如果您已经安装了fftw-3.3.10并希望安装基本音频测试器(BAT),则请忽略此开关。

--with-curses=ncursesw: 这个切换强制使用宽字符的ncurses库。

配置ALSA Utilities

配置文件

/var/lib/alsa/asound.state

配置信息

请注意,您的声卡的所有通道默认是静音的。你可以使用alsamixer程序来改变这一点。使用speaker-test来检查您的设置是否已正确应用。你应该在扬声器上听到“粉红噪音”。

alsactl程序通常根据标准的udev规则运行。第一次运行时,它会报错说/var/lib/alsa/asound.state中没有状态。你可以通过以root用户运行以下命令来防止这种情况:

alsactl -L store

当检测到设备时(在启动期间或插入USB设备时),卷设置应该由Udev从保存的状态恢复。

除了rootaudio组的成员外,任何用户都不能访问所有的声音设备。将所有可能使用声音设备的用户添加到这个组中:

usermod -a -G audio <username>

注意

您可能需要注销并再次登录以刷新您的组成员。’su <username>‘也可以。

在有多个声卡的系统上,您可能需要调整默认音频设备,以便您可以从扬声器获得输出。要设置默认设备,首先检查/proc/asound/cards文件以确定你需要设置哪个数字。知道这些信息后,用以下命令将默认卡片设置为root用户:

cat > /etc/asound.conf << "EOF"
# Begin /etc/asound.conf

defaults.pcm.card 1
defaults.ctl.card 1

# End /etc/asound.conf
EOF

内容

安装程序: aconnect, alsactl, alsaloop, alsamixer, alsatplg, alsaucm, alsa-info.sh, amidi, amixer, aplay, aplaymidi, arecord (symlink), arecordmidi, aseqdump, aseqnet, axfer, iecset, 和 speaker-test

安装库: None

安装目录: /usr/share/sounds/alsa 和 /var/lib/alsa

简短描述

aconnect   是一个实用的连接和断开两个现有的端口在ALSA sequencer系统。

alsactl   用于控制ALSA声卡驱动程序的高级设置。如果alsamixer无法利用您的声卡的所有功能,请使用此功能。

alsaloop   允许在PCM捕获设备和PCM回放设备之间创建PCM环回。

alsamixer   是一个基于Ncurses的混音程序,用于ALSA声卡驱动程序。

alsatplg   是一个实用程序,用于将拓扑配置文件编译为内核驱动程序的二进制文件。

alsaucm   允许应用程序以抽象的方式访问硬件。

amidi   用于读取和写入ALSA RawMIDI端口。

amixer   允许命令行控制的混频器为ALSA声卡驱动程序。

aplay   是一个用于ALSA声卡驱动程序的命令行声音文件播放器。

aplaymidi   是一个命令行实用程序,它将指定的MIDI文件播放到一个或多个ALSA sequencer端口。

arecord   是ALSA声卡驱动程序的命令行声音文件记录器。

arecordmidi   是一个命令行实用程序,从一个或多个ALSA sequencer端口记录标准MIDI文件。

aseqdump   是一个命令行实用程序,它将接收到的sequencer事件打印为文本。

aseqnet   是一个ALSA sequencer客户端,它通过网络发送和接收事件数据包。

axfer   是一个命令行记录器和播放器,用于在声音设备和文件之间传输音频帧。

iecset   是一个小的实用程序,通过ALSA控制API设置或转储指定声卡的IEC958(或所谓的“S/PDIF”)状态位。

speaker-test   是ALSA的命令行扬声器测试音调生成器。

42.5 alsa-tools-1.2.5


简介ALSA Tools

ALSA工具包包含用于某些声卡的高级工具。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

ALSA Tools依赖

必要

alsa-lib-1.2.8

可选

GTK+-2.24.33 (构建echomixer, envy24controlrmedigicontrol), GTK+-3.24.36 (构建hdajackretask) 和 FLTK-1.3.8 (构建hdspconfhdspmixer)

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/alsa-tools

安装ALSA Tools

注意

在一个脚本中安装多个包时,需要以root用户身份进行安装。有3个通用选项可用于完成此操作。

  1. 以root用户身份运行整个脚本(不推荐)。

  2. 使用Sudo-1.9.13p1包中的sudo命令。

  3. 使用su -c “command arguments”(需要引号),它将在每次循环迭代时询问根密码。

处理这种情况的一种方法是创建一个简短的bash函数,它可以自动选择适当的方法。一旦在环境中设置了命令,就不需要再次设置了。

as_root()
{
  if   [ $EUID = 0 ];        then $*
  elif [ -x /usr/bin/sudo ]; then sudo $*
  else                            su -c \\"$*\\"
  fi
}

export -f as_root

首先,启动一个子shell,它会在发生错误时退出:

bash -e

现在,删除一个需要Qt2或3的工具和两个不需要的文件(为了下面的BLFS说明):

rm -rf qlo10k1 Makefile gitcompile

只有那些对声卡有高级要求的人才需要ALSA工具包。这些工具可以一次性构建在一起,但如果只需要一部分工具,则需要cd到要编译和运行命令的每个工具的目录中。本文提出构建所有工具的说明。

运行以下命令安装所以ALSA Tools:

for tool in *
do
  case $tool in
    seq )
      tool_dir=seq/sbiload
    ;;
    * )
      tool_dir=$tool
    ;;
  esac

  pushd $tool_dir
    ./configure --prefix=/usr
    make
    as_root make install
    as_root /sbin/ldconfig
  popd

done
unset tool tool_dir

最后,退出之前启动的shell:

exit

内容

安装程序: as10k1, cspctl, dl10k1, echomixer, envy24control, hda-verb, hdajackretask, hdajacksensetest, hdspconf, hdsploader, hdspmixer, hwmixvolume, init_audigy, init_audigy_eq10, init_live, lo10k1, ld10k1, ld10k1d, mixartloader, pcxhrloader, rmedigicontrol, sbiload, sscape_ctl, us428control, usx2yloader, 和 vxloader

安装库: liblo10k1.so

安装目录: /etc/hotplug, /usr/include/lo10k1, /usr/share/ld10k1, 和 /usr/share/sounds

简短描述

as10k1   是Creative SB Live, PCI 512, 和 emu APS声卡中emu10k1 DSP芯片的汇编器。它是用来制作音频效果,如镶边,合唱或混响。

cspctl   是一个SB16/AWE32创意信号处理器(ASP/CSP)控制程序。

echomixer   是Linux中与Echoaudio的Echoaudio控制台应用程序等价的程序。它是一个工具来控制任何Echoaudio声卡的所有功能。这包括时钟源、输入和输出增益、混频器等。

envy24control   是基于Envy24 (ice1712)的声卡的控制工具。

hdajackretask   是一个GUI,使它容易重新任务你的插孔-例如,把你的麦克风插孔变成一个额外的耳机,或者为什么不让他们都线出,并连接到你的环绕接收器。

hda-verb   是一个小程序,发送HD-audio命令到给定的ALSA hwdep设备的HD-audio接口。

hdspconf   是一个控制Hammerfall HDSP Alsa设置的GUI。最多支持4个HDSP卡。

hdsploader   用于加载Hammerfall HDSP声卡所需的固件。

hdspmixer   是Linux中与RME中的Totalmix应用程序等价的程序。它是一个控制RME HammerfallDSP声卡系列高级路由特性的工具。

hwmixvolume   允许您在使用硬件混合的声卡上控制单个流的音量。

init_audigy*   是用于初始化创造性声音Blaster audigy系列卡的工具。

init_live   是一个工具,用于初始化创造性的声音Blaster Live卡。

ld10k1   是ALSA的EMU10K{1,2}补丁加载程序的服务器。

lo10k1   是ALSA的EMU10K{1,2}补丁加载程序的客户端。

dl10k1   加载lo10k1ld10k1生成的配置转储文件。

ld10k1d   是ld10k1补丁加载程序的初始化脚本。

mixartloader   是一个辅助程序,加载固件二进制文件到Digigram的miXart板的声音驱动程序。以下模块需要这个程序:snd-mixart。这些驱动程序根本不能正常工作,直到某些固件被加载,即没有PCM或混合器设备将出现。

pcxhrloader   是一个辅助程序,加载固件二进制文件到Digigram的pcxhr兼容板声音驱动程序。以下模块需要这个程序:snd-pcxhr。这些驱动程序根本不能正常工作,直到某些固件被加载,即没有PCM或混合器设备将出现。

rmedigicontrol   是RME Digi32和RME Digi96声卡的控制工具。它为所有声卡控制和开关提供了一个图形前端。

sbiload   是ALSA音序器的OPL2/3 FM仪器加载器。

sscape_ctl   是一个ALSA SoundScape控件实用程序。

us428control   是Tascam US-428控制程序。

usx2yloader   是一个帮助程序,加载第二阶段固件二进制文件到Tascam USX2Y USB声卡。迄今为止,它已被证明适用于US122、US224和US428。snd-usb-usx2y模块需要这个程序。

vxloader   是一个辅助程序,加载固件二进制文件到Digigram的vx板声音驱动程序。以下模块需要这个程序:snd-vx222, snd-vxpocket, snd-vxp440。这些驱动程序根本不能正常工作,直到某些固件被加载,即没有PCM或混合器设备将出现。

42.6 alsa-firmware-1.2.4


简介ALSA Firmware

ALSA固件包包含某些声卡的固件。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

ALSA Firmware依赖

必要

alsa-tools-1.2.5

可选

AS31 (用于从源重建固件)

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/alsa-firmware

安装ALSA Firmware

只有对声卡有高级要求的人才需要ALSA固件包。有关配置选项,请参阅README。

运行以下命令安装ALSA Firmware:

./configure --prefix=/usr &&
make

这个包没有附带测试套件。

现在,作为root用户:

make install

内容

安装程序: None

安装库: None

安装目录: 一些目录在/lib/firmware 和 /usr/share/alsa/firmware

42.7 alsa-oss-1.1.8


简介alsa-oss

alsa-oss包中包含了alsa-oss兼容库。这是使用的程序,希望使用alsa-oss声音界面。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

ALSA OSS依赖

必要

alsa-lib-1.2.8

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/alsa-oss

安装ALSA OSS

运行以下命令安装ALSA OSS:

./configure --disable-static &&
make

这个包没有附带测试套件。

现在,作为root用户:

make install

命令解释

--disable-static: 这个开关阻止安装静态版本的库。

内容

安装程序: aoss

安装库: libalsatoss.so, libaoss.so, 和 libossredir.a

安装目录: None

简短描述

aoss   是一个简单的包装器脚本,方便使用ALSA oss兼容库。它只是设置适当的LD_PRELOAD路径和,然后运行命令。

42.8 AudioFile-0.3.6


简介AudioFile

AudioFile包包含音频文件库和两个用于支持基本声音文件格式的声音文件支持程序。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

额外下载

AudioFile依赖

必要

alsa-lib-1.2.8

推荐

FLAC-1.4.2

可选

asciidoc-10.2.0Valgrind-3.20.0

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/audiofile

安装AudioFile

运行以下命令安装AudioFile:

patch -Np1 -i ../audiofile-0.3.6-consolidated_patches-1.patch &&
autoreconf -fiv                             &&

./configure --prefix=/usr --disable-static  &&

make

现在,作为root用户:

make install

要测试结果,请执行以下命令: make check. 注意,如果使用–disable-static选项,并且在make install之前执行测试,则测试将失败。你有三个选择:

(a) 不使用–disable-static进行配置,运行测试,但不安装,然后使用–disable-static重新构建,安装包。

(b) 使用–disable-static配置,但只在包安装后运行测试。

(c) 使用–disable-static配置,但只在DESTDIR安装后运行测试。

命令解释

--disable-static: 这个开关阻止安装静态版本的库。

内容

安装程序: sfconvert 和 sfinfo

安装库: libaudiofile.so

安装目录: None

简短描述

sfinfo   显示此库支持的音频格式的声音文件格式、音频编码、采样率和持续时间。

sfconvert   转换声音文件格式的原始格式和目标格式支持的这个库。

libaudiofile.so   包含程序使用的功能,以支持AIFF, AIFF压缩,Sun/NeXT, WAV和BIC音频格式。

42.9 FAAC-1_30


简介FAAC

FAAC是一种用于MPEG-2第7部分和MPEG-4第3部分标准中规定的有损声音压缩方案的编码器,称为高级音频编码(AAC,Advanced Audio Coding)。该编码器可用于生成可在iPod上播放的文件。此外,iPod不理解视频文件中的其他声音压缩方案。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/faac

安装FAAC

运行以下命令安装FAAC:

./bootstrap                                &&
./configure --prefix=/usr --disable-static &&
make

这个包没有附带测试套件。但是,可以通过编码一个示例WAV文件来测试基本功能(示例文件由alsa-utils-1.2.8包安装):

./frontend/faac -o Front_Left.mp4 /usr/share/sounds/alsa/Front_Left.wav

然后,使用来自FAAD2-2.10.1包的faad程序解码结果并播放解码后的文件(需要来自alsa-utils-1.2.8包的aplay程序):

faad Front_Left.mp4
aplay Front_Left.wav

aplay应该将文件识别为“Signed 16 bit Little Endian, Rate 48000 Hz, Stereo”,你应该听到单词“front left”。

现在,作为root用户:

make install

命令解释

--disable-static: 这个开关阻止安装静态版本的库。

其他AAC编码器

FAAC的质量不符合目前最好的AAC编码器。此外,它只支持AAC,不支持高效AAC(也称为aacPlus),后者通过使用“频谱复制”技术在低比特率下提供更好的质量。下面是生成AAC和HE-AAC流的替代程序。

但是要注意,iPod只支持低复杂度的AAC配置文件,这是FAAC的默认配置,但可能不是Nero AAC编码器的默认配置,3GPP编码器完全不可用。

内容

安装程序: faac

安装库: libfaac.so 和 libmp4v2.so

安装目录: None

简短描述

faac   是一个命令行AAC编码器。

libfaac.so   包含编码AAC流的函数。

libmp4v2.so   包含创建和操作MP4文件的函数。

42.10 FAAD2-2.10.1


简介FAAD2

FAAD2是MPEG-2第7部分和MPEG-4第3部分标准中规定的有损声音压缩方案的解码器,被称为高级音频编码(AAC)。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

额外下载

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/faad2

安装FAAD2

运行以下命令安装FAAD2:

./bootstrap                                &&
./configure --prefix=/usr --disable-static &&
make

这个包没有附带测试套件。不过,基本功能可以通过解码示例AAC文件来测试:

./frontend/faad -o sample.wav ../sample.aac

这将显示版权信息和示例文件的以下信息:

sample.aac file info:
ADTS, 4.608 sec, 13 kbps, 16000 Hz

  ---------------------
 | Config:  2 Ch       |
  ---------------------
 | Ch |    Position    |
  ---------------------
 | 00 | Left front     |
 | 01 | Right front    |
  ---------------------

现在播放结果(需要alsa-utils-1.2.8包中的aplay程序):

aplay sample.wav

aplay应该将文件标识为“Signed 16 bit Little Endian, Rate 16000 Hz, Stereo”,并且您应该听到一些钢琴音符。

现在,作为root用户:

make install

命令解释

--disable-static: 这个开关阻止安装静态版本的库。

内容

安装程序: faad

安装库: libfaad.so 和 libfaad_drm.so

安装目录: None

简短描述

faad   是一个用于解码AAC和MP4文件的命令行实用程序。

libfaad.so   包含解码AAC流的函数。

42.11 fdk-aac-2.0.2


简介fdk-aac

fdk-aac包提供了Fraunhofer FDK AAC库,据称是一个高质量的高级音频编码实现。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/fdk-aac

安装fdk-aac

运行以下命令安装fdk-aac:

./configure --prefix=/usr --disable-static &&
make

这个包没有附带测试套件。

现在,作为root用户:

make install

命令解释

--disable-static: 这个开关阻止安装静态版本的库。

内容

安装程序: None

安装库: libfdk-aac.so

安装目录: /usr/include/fdk-aac

简短描述

libfdk-aac.so   提供AAC格式的音频编码功能。

42.12 FLAC-1.4.2


简介FLAC

FLAC是一种类似于MP3的音频编解码器,但它是无损的,也就是说音频被压缩后不会丢失任何信息。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

FLAC依赖

可选

libogg-1.3.5, DocBook-utils-0.6.14, Doxygen-1.9.6, 和 Valgrind-3.20.0

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/flac

安装FLAC

运行以下命令安装FLAC:

./configure --prefix=/usr                                \
            --disable-thorough-tests                     \
            --docdir=/usr/share/doc/flac-1.4.2          &&
make

要测试结果,请执行以下命令: make check。请注意,如果你通过了--enable-exhaustive-tests--enable-valgrind-testing 参数来configure然后运行测试套件,它将花费很长时间(多达300 SBUs)并使用大约375 MB的磁盘空间。

现在,作为root用户:

make install

命令解释

--disable-thorough-tests: 使用此参数,测试套件将在合理的时间内完成。如果您需要更广泛的测试,请删除它。

内容

安装程序: flac 和 metaflac

安装库: libFLAC.so 和 libFLAC++.so

安装目录: /usr/include/FLAC, /usr/include/FLAC++ 和 /usr/share/doc/flac-1.4.2

简短描述

flac   是一个用于编码、解码和转换FLAC文件的命令行实用程序。

metaflac   是一个用于在一个或多个FLAC文件中列出、添加、删除或编辑元数据的程序。

libFLAC{,++}.so   这些库为使用FLAC的程序提供了原生FLAC和Ogg的FLAC C/C++ api。

42.13 frei0r-plugins-1.8.0


简介Frei0r-plugins

Frei0r是一个简约的视频特效插件API。注意,名称中的0是0,而不是大写字母o。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

Frei0r-plugins依赖

推荐

gavl-1.4.0

可选

Doxygen-1.9.6opencv-4.7.0

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/frei0r

安装Frei0r-plugins

运行以下命令安装Frei0r:

mkdir -vp build &&
cd        build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      -Wno-dev ..                 &&

make

这个包没有附带测试套件。

现在,作为root用户:

make install

命令解释

-DWITHOUT_OPENCV=TRUE: 该选项指示make过程禁用依赖于opencv的构建插件。

-DWITHOUT_GAVL=TRUE: 此选项指示make过程禁用依赖于gavl的构建插件。

内容

安装程序: None

安装库: 超过130个视频特效插件

安装目录: /usr/lib/frei0r-1

42.14 gavl-1.4.0


简介Gavl

Gavl是Gmerlin Audio Video Library的缩写。它是一个底层库,处理音频和视频格式的细节,如色彩空间,采样,多通道配置等。它为这些格式以及用于在应用程序中携带音频样本或视频图像的容器结构提供了标准化的定义。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

Gavl依赖

必要

libpng-1.6.39

可选

Doxygen-1.9.6

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/gavl

安装Gavl

运行以下命令安装Gavl:

LIBS=-lm                      \
./configure --prefix=/usr     \
            --without-doxygen \
            --docdir=/usr/share/doc/gavl-1.4.0 &&
make

这个包没有附带测试套件。

现在,作为root用户:

make install

命令解释

LIBS=-lm: 该变量确保在链接时搜索数学库。

--without-doxygen: 这个开关禁止使用Doxygen。如果安装了Doxygen,并且希望构建API文档,则省略。

内容

安装程序: None

安装库: libgavl.so

安装目录: /usr/include/gavl 和 /usr/share/doc/gavl-1.4.0

简短描述

libgavl.so   是Gmerlin音频视频库。

42.15 gstreamer-1.22.0


简介gstreamer

Gstreamer是一个流媒体框架,它使应用程序能够共享一组通用的插件,用于视频编码和解码,音频编码和解码,音频和视频过滤器,音频可视化,web流以及任何实时或其他流的任务。这个包只提供了基本的功能和库。你可能需要至少gst-plugins-base-1.22.0和一个好的、坏的、丑陋的或Libav插件。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

gstreamer依赖

必要

GLib-2.74.5

推荐

gobject-introspection-1.74.0

可选

GTK+-3.24.36 (用于示例), Gsl-2.7.1 (安装后用于一次测试), libunwind-1.6.2, Valgrind-3.20.0, bash-completion, hotdoc, 和 libdw

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/gstreamer10

安装gstreamer

运行以下命令安装gstreamer:

mkdir build &&
cd    build &&

meson  --prefix=/usr       \
       --buildtype=release \
       -Dgst_debug=false   \
       -Dpackage-origin=https://www.linuxfromscratch.org/blfs/view/11.3-systemd/ \
       -Dpackage-name="GStreamer 1.22.0 BLFS" &&
ninja

要测试结果,请执行以下命令: ninja test.

当心

如果要从以前的版本重新安装gstreamer,最好在安装新版本之前删除以前的版本,包括插件。如果安装了多个版本,使用进程可能会挂起或无法正常工作。作为root用户:

rm -rf /usr/bin/gst-* /usr/{lib,libexec}/gstreamer-1.0

现在,作为root用户:

ninja install

命令解释

--buildtype=release: 指定一个适合于稳定版本的构建类型,因为默认情况下可能会生成未优化的二进制文件。

内容

安装程序: gst-inspect-1.0, gst-launch-1.0, gst-stats-1.0, gst-tester-1.0, 和 gst-typefind-1.0

安装库: libgstbase-1.0.so, libgstcheck-1.0.so, libgstcontroller-1.0.so, libgstnet-1.0.so, 和 libgstreamer-1.0.so

安装目录: /usr/{include,lib,libexec,share}/gstreamer-1.0

简短描述

gst-inspect-1.0   是一个打印可用gstreamer插件信息、特定插件信息或特定元素信息的工具。

gst-launch-1.0   是一个构建和运行基本gstreamer管道的工具。

gst-stats-1.0   是一个用于收集关于gstreamer操作的统计信息的工具。

gst-tester-1.0   在与介子测试套件集成时,以TAP兼容格式运行测试计划。

gst-typefind-1.0   使用gstreamer类型查找系统来确定解析或解码文件的相关gstreamer插件,以及相应的MIME类型。

libgstbase-1.0.so   提供一些对插件开发人员最有用的元素和工具类扩展的基类。

libgstcheck-1.0.so   提供使用check框架编写单元测试的功能。

libgstcontroller-1.0.so   提供随时间变化的动画元素属性功能。

libgstnet-1.0.so   提供网络元素和对象。

libgstreamer-1.0.so   提供所有核心gstreamer服务,包括初始化、插件管理和类型,以及定义元素和箱子的对象层次结构,以及一些更专门化的元素。

42.16 gst-plugins-base-1.22.0


简介GStreamer Base Plug-ins

GStreamer基础插件是一个精心设计和维护良好的GStreamer插件和元素集合,涵盖了人们想要为GStreamer编写的元素的各种可能类型。您将需要至少一个好的、坏的、丑陋的或Libav插件,以使GStreamer应用程序正常运行。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

GStreamer基础插件依赖

必要

gstreamer-1.22.0

推荐

alsa-lib-1.2.8, CDParanoia-III-10.2 (用于构建CDDA插件), gobject-introspection-1.74.0, ISO Codes-4.12.0, libgudev-237, libjpeg-turbo-2.1.5.1, libogg-1.3.5, libpng-1.6.39, libtheora-1.1.1, libvorbis-1.3.7, Mesa-22.3.5, Pango-1.50.12, wayland-protocols-1.31, 和 Xorg Libraries

可选

graphene-1.10.8, GTK+-3.24.36 (用于示例), Opus-1.3.1, Qt-5.15.8 (用于示例), SDL-1.2.15, SDL2-2.26.3, Valgrind-3.20.0, hotdoc, libvisual, Orc, 和 Tremor

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/gst10-plugins-base

安装GStreamer基础插件

注意

如果你需要为某个依赖项安装插件,那么必须先安装该依赖项,然后再安装这个包。

运行以下命令安装GStreamer基础插件:

mkdir build &&
cd    build &&

meson  --prefix=/usr       \
       --buildtype=release \
       -Dpackage-origin=https://www.linuxfromscratch.org/blfs/view/11.3-systemd/ \
       -Dpackage-name="GStreamer 1.22.0 BLFS"    \
       --wrap-mode=nodownload &&
ninja

要测试结果,请执行以下命令: ninja test. 测试需要运行X终端,否则所有GL测试都会失败。5个测试可能会在某些系统上产生超时,这取决于它们的图形硬件和速度。

注意

安装时,构建过程会进行一些额外的链接。如果您在/usr中没有Xorg,则需要为root用户定义LIBRARY_PATH变量。如果使用sudo假设root,请使用-E选项为安装过程传递当前环境变量。

现在,作为root用户:

ninja install

命令解释

--buildtype=release: 指定一个适合于稳定版本的构建类型,因为默认情况下可能会生成未优化的二进制文件。

--wrap-mode=nodownload: 这个开关可以防止meson下载任何系统上没有安装的可选依赖项。

内容

安装程序: gst-device-monitor-1.0, gst-discoverer-1.0, 和 gst-play-1.0

安装库: libgstallocators-1.0.so, libgstapp-1.0.so, libgstaudio-1.0.so, libgstfft-1.0.so, libgstgl-1.0.so, libgstpbutils-1.0.so, libgstriff-1.0.so, libgstrtp-1.0.so, libgstrtsp-1.0.so, libgstsdp-1.0.so, libgsttag-1.0.so, libgstvideo-1.0.so, 以及位于/usr/lib/gstreamer-1.0目录下的几个插件

安装目录: /usr/include/gstreamer-1.0/gst/{allocators,app,audio,fft,gl,pbutils}, /usr/include/gstreamer-1.0/gst/{riff,rtp,rtsp,sdp,tag,video}, 和 /usr/share/gst-plugins-base

简短描述

gst-device-monitor-1.0   是一个命令行工具,可用于测试GStreamer的设备监控功能。

gst-discoverer-1.0   是一种工具,可用于打印有关媒体文件的基本元数据和流信息。

gst-play-1.0   是一个命令行工具,可以使用playbin元素来测试基本的播放。

42.17 gst-plugins-good-1.22.0


简介GStreamer Good Plug-ins

GStreamer Good插件是GStreamer开发人员认为具有良好代码质量、正确功能和首选许可证(插件代码使用LGPL,支持库使用LGPL或LGPL兼容)的一组插件。它包含了广泛的视频和音频解码器、编码器和滤波器。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

GStreamer Good Plug-ins依赖

必要

gst-plugins-base-1.22.0

推荐

Cairo-1.17.6, FLAC-1.4.2, gdk-pixbuf-2.42.10, LAME-3.100, libsoup-2.74.3, libsoup-3.2.2, libvpx-1.13.0, mpg123-1.31.2, NASM-2.16.01, 和 PulseAudio-16.1

可选

AAlib-1.4rc5, ALSA OSS-1.1.8, GTK+-3.24.36 (用于示例), libdv-1.0.0, Qt-5.15.8, Speex-1.2.1, taglib-1.13, Valgrind-3.20.0, v4l-utils-1.22.1, Wayland-1.21.0, hotdoc, JACK, libcaca, libavc1394, libiec61883, libraw1394, libshout, Orc, TwoLame, 和 WavPack

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/gst10-plugins-good

安装GStreamer Good Plug-ins

注意

如果你需要为某个依赖项安装插件,那么必须先安装该依赖项,然后再安装这个包。

运行以下命令安装GStreamer Good Plug-ins:

mkdir build &&
cd    build &&

meson  --prefix=/usr       \
       --buildtype=release \
       -Dpackage-origin=https://www.linuxfromscratch.org/blfs/view/11.3-systemd/ \
       -Dpackage-name="GStreamer 1.22.0 BLFS" &&
ninja

要测试结果,请执行以下命令: ninja test. One test, elements_flvmux is known to fail on some systems.

现在,作为root用户:

ninja install

命令解释

--buildtype=release: 指定一个适合于稳定版本的构建类型,因为默认情况下可能会生成未优化的二进制文件。

内容

安装程序: None

安装库: 在 /usr/lib/gstreamer-1.0 目录下有几个插件

安装目录: /usr/share/gstreamer-1.0/presets

42.18 gst-plugins-bad-1.22.0


简介GStreamer Bad Plug-ins

GStreamer Bad Plug-ins包包含了一组与其他插件相比没有达到标准的插件。它们可能接近于高质量,但它们缺少一些东西——可能是一个好的代码审查,一些文档,一组测试,一个真正的实时维护者,或者一些实际的广泛使用。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

GStreamer Bad Plug-ins依赖

必要

gst-plugins-base-1.22.0

推荐

libdvdread-6.1.3, libdvdnav-6.1.1, 和 SoundTouch-2.3.2

可选

BlueZ-5.66, cURL-7.88.1, FAAC-1_30, FAAD2-2.10.1, fdk-aac-2.0.2, GTK+-3.24.36 (用于示例), gst-plugins-good-1.22.0 (用于一次测试), Little CMS-2.14, libass-0.17.0, libexif-0.6.24 (用于一次测试), librsvg-2.54.5, libsoup-2.74.3 (用于一次测试), libsndfile-1.2.0, libssh2-1.10.0, libusb-1.0.26, libva-2.17.0, libwebp-1.3.0, libxkbcommon-1.5.0, neon-0.32.5, Nettle-3.8.1libgcrypt-1.10.1 (对于hls插件中的SSL支持,如果两者都没有安装,将使用OpenSSL代替), opencv-4.7.0 (with additional modules), OpenJPEG-2.5.0, Opus-1.3.1, SBC-2.0, SDL-1.2.15, Valgrind-3.20.0, Wayland-1.21.0 (GTK+-3.24.36 must have been compiled with wayland support), wpebackend-fdo-1.14.0, x265-20230215, aom, bs2b, Chromaprint, dssim, Flite, FluidSynth, Game Music Emu, GSM, hotdoc, LADSPA, libavtp, libdc1394-2, libdca, libde265, libkate, libmfx, libmms, libmodplug, libnice, libofa, libopenmpt, libopenni, libsrtp, lilv, LRDF, ltc-tools, microdns, MJPEG Tools, OpenAL, OpenEXR, OpenH264, Orc, rtmpdump, spandsp, Srt, svthevcenc, VO AAC, VO AMRWB, Vulkan, WildMidi, WPE-WebKit, ZBAR, ZVBI, 和 zxing

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/gst10-plugins-bad

安装GStreamer Bad Plug-ins

注意

如果你需要为某个依赖项安装插件,那么必须先安装该依赖项,然后再安装这个包。

运行以下命令安装GStreamer Bad Plug-ins:

mkdir build &&
cd    build &&

meson  --prefix=/usr       \
       --buildtype=release \
       -Dgpl=enabled       \
       -Dpackage-origin=https://www.linuxfromscratch.org/blfs/view/11.3-systemd/ \
       -Dpackage-name="GStreamer 1.22.0 BLFS" &&
ninja

要测试结果,请执行以下命令: ninja test。一些测试需要在图形会话中使用终端模拟器。已知有两个测试elements_vapostproc和elements_vacompositor会失败。如果没有安装gst-plugins-good-1.22.0,两个测试elements_rtpsrc 和 elements_rtpsink将失败。

现在,作为root用户:

ninja install

命令解释

--buildtype=release: 指定一个适合于稳定版本的构建类型,因为默认情况下可能会生成未优化的二进制文件。

-Dgpl=enabled: 如果没有这个开关,就不会构建依赖于(A)GPL许可库的插件。

内容

安装程序: gst-transcoder-1.0 和 playout

安装库: libgstadaptivedemux-1.0.so, libgstbadaudio-1.0.so, libgstbasecamerabinsrc-1.0.so, libgstcodecparsers-1.0.so, libgstcodecs-1.0.so, libgstinsertbin-1.0.so, libgstisoff-1.0.so, libgstmpegts-1.0.so, libgstphotography-1.0.so, libgstplay-1.0.so, libgstplayer-1.0.so, libgstsctp-1.0.so, libgsttranscoder-1.0.so, libgsturidownloader-1.0.so, libgstva-1.0.so, libgstwayland-1.0.so, libgstwebrtc-1.0.so, 和一些插件在/usr/lib/gstreamer-1.0下

安装目录: /usr/include/gstreamer-1.0/gst/{audio,basecamerabinsrc,codecparsers}, /usr/include/gstreamer-1.0/gst/{insertbin,interfaces,isoff,mpegts}, /usr/include/gstreamer-1.0/gst/{play,player,sctp,transcoder}, 和 /usr/include/gstreamer-1.0/gst/{uridownloader,wayland,webrtc}

简短描述

gst-transcoder-1.0   用于将流转换为不同的格式。

playout   是一个示例应用程序,用于顺序播放一个音频视频文件列表。

42.19 gst-plugins-ugly-1.22.0


简介GStreamer Ugly Plug-ins

GStreamer丑陋插件是GStreamer开发人员认为具有良好质量和正确功能的一组插件,但发布它们可能会带来问题。插件或支持库的许可证可能不是GStreamer开发人员想要的。该法典可能是众所周知的专利问题。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

GStreamer Ugly Plug-ins依赖

必要

gst-plugins-base-1.22.0

推荐

liba52-0.7.4 (需要播放DVD), libdvdread-6.1.3, 和 x264-20230215

可选

libmpeg2-0.5.1, libcdio-2.1.0 (光碟机访问), Valgrind-3.20.0, hotdoc, libsidplay, OpenCore AMR, Orc, 和 TwoLame

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/gst10-plugins-ugly

安装GStreamer Ugly Plug-ins

注意

如果你需要为某个依赖项安装插件,那么必须先安装该依赖项,然后再安装这个包。

运行以下命令安装GStreamer Ugly Plug-ins:

mkdir build &&
cd    build &&

meson  --prefix=/usr       \
       --buildtype=release \
       -Dgpl=enabled       \
       -Dpackage-origin=https://www.linuxfromscratch.org/blfs/view/11.3-systemd/ \
       -Dpackage-name="GStreamer 1.22.0 BLFS" &&
ninja

要测试结果,请执行以下命令: ninja test.

现在,作为root用户:

ninja install

命令解释

--buildtype=release: 指定一个适合于稳定版本的构建类型,因为默认情况下可能会生成未优化的二进制文件。

-Dgpl=enabled: 如果没有这个开关,就不会构建依赖于(A)GPL许可库的插件。

内容

安装程序: None

安装库: 一些插件在/usr/lib/gstreamer-1.0

安装目录: None

42.20 gst-libav-1.22.0


简介GStreamer Libav

GStreamer Libav包包含Libav (FFmpeg的一个分支)的GStreamer插件。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

GStreamer Libav依赖

必要

FFmpeg-5.1.2gst-plugins-base-1.22.0

推荐

yasm-1.3.0

可选

hotdoc

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/gst10-libav

安装GStreamer Libav

运行以下命令安装GStreamer Libav:

mkdir build &&
cd    build &&

meson  --prefix=/usr       \
       --buildtype=release \
       -Dpackage-origin=https://www.linuxfromscratch.org/blfs/view/11.3-systemd/ \
       -Dpackage-name="GStreamer 1.22.0 BLFS" &&
ninja

不推荐进行这些测试。3分钟后测试6次中的6次。无论如何要运行测试,请执行: ninja test.

现在,作为root用户:

ninja install

命令解释

--buildtype=release: 指定一个适合于稳定版本的构建类型,因为默认情况下可能会生成未优化的二进制文件。

内容

安装程序: None

安装库: libgstlibav.so 在 /usr/lib/gstreamer-1.0 目录下

安装目录: None

42.21 gstreamer-vaapi-1.22.0


简介gstreamer-vaapi

gstreamer-vaapi包包含一个gstreamer插件,用于硬件加速视频解码/编码,适用于当今流行的编码标准(MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, 和 VC-1/VMW3)。

注意

在没有硬件加速的系统上(特别是qemu-7.2.0下的虚拟机),此软件包可能导致X服务器崩溃。BLFS团队建议在这种情况下不要安装这个包。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

gstreamer-vaapi依赖

必要

GTK+-3.24.36, gstreamer-1.22.0, gst-plugins-base-1.22.0, gst-plugins-bad-1.22.0, 和 libva-2.17.0

可选

hotdoc

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/gstreamer10-vaapi

安装gstreamer-vaapi

运行以下命令安装gstreamer-vaapi:

mkdir build &&
cd    build &&

meson  --prefix=/usr       \
       --buildtype=release \
       -Dpackage-origin=https://www.linuxfromscratch.org/blfs/view/11.3-systemd/ &&
ninja

这个包没有附带vi工作测试套件。

现在,作为root用户:

ninja install

命令解释

--buildtype=release: 指定一个适合于稳定版本的构建类型,因为默认情况下可能会生成未优化的二进制文件。

内容

安装程序: None

安装库: libgstvaapi.so 在 /usr/lib/gstreamer-1.0

安装目录: None

42.22 id3lib-3.8.3


简介id3lib

id3lib是一个用于读取、写入和操作id3v1和id3v2多媒体数据容器的库。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

额外下载

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/id3lib

安装Id3lib

运行以下命令安装id3lib:

patch -Np1 -i ../id3lib-3.8.3-consolidated_patches-1.patch &&

libtoolize -fc                &&
aclocal                       &&
autoconf                      &&
automake --add-missing --copy &&

./configure --prefix=/usr --disable-static &&
make

这个包没有一个可用的测试套件。

现在,作为root用户:

make install  &&
cp doc/man/* /usr/share/man/man1 &&

install -v -m755 -d /usr/share/doc/id3lib-3.8.3 &&
install -v -m644 doc/*.{gif,jpg,png,ico,css,txt,php,html} \
                    /usr/share/doc/id3lib-3.8.3

命令解释

--disable-static: 这个开关阻止安装静态版本的库。

内容

安装程序: id3convert, id3cp, id3info, 和 id3tag

安装库: libid3.so

安装目录: /usr/include/id3 和 /usr/share/doc/id3lib-3.8.3

简短描述

id3convert   转换id3v1/v2标记格式。

id3cp   从数字音频文件中提取id3v1/v2标签。

id3info   打印id3v1/v2标签内容。

id3tag   是一个编辑id3v1/v2标签的工具。

libid3.so   提供id3v1/v2标记编辑程序以及其他外部程序和库的函数。

42.23 Liba52-0.7.4


简介Liba52

liba52是一个用于解码ATSC A/52(也称为AC-3)流的免费库。A/52标准用于各种应用,包括数字电视和DVD。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

可选

djbfft

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/liba52

安装Liba52

运行以下命令安装liba52:

./configure --prefix=/usr \
            --mandir=/usr/share/man \
            --enable-shared \
            --disable-static \
            CFLAGS="${CFLAGS:--g -O2} $([ $(uname -m) = x86_64 ] && echo -fPIC)" &&
make

要测试结果,请执行以下命令: make check.

现在,作为root用户:

make install &&
cp liba52/a52_internal.h /usr/include/a52dec &&
install -v -m644 -D doc/liba52.txt \
    /usr/share/doc/liba52-0.7.4/liba52.txt

命令解释

CFLAGS="-g -O2 ...: 这将CFLAGS设置为-g -O2(这是默认设置),然后在x86_64上添加-fPIC。在x86_64上编译liba52需要该函数。

--disable-static: 这个开关阻止安装静态版本的库。

cp liba52/a52_internal.h …: 将这个头文件复制到/usr/include/a52dec中,其他一些程序(如xine-lib)就可以编译并链接安装了liba52的系统。

内容

安装程序: a52dec 和 extract_a52

安装库: liba52.so

安装目录: /usr/include/a52dec 和 /usr/share/doc/liba52-0.7.4

简短描述

a52dec   播放ATSC A/52音频流。

extract_a52   从MPEG流中提取ATSC A/52音频。

liba52.so   提供了用于处理ATSC A/52流的程序的函数。

42.24 Libao-1.2.0


简介Libao

libao包包含一个跨平台的音频库。这对于在各种平台上输出音频很有用。目前支持WAV文件、OSS(开放声音系统)、ESD(启蒙声音守护进程)、ALSA(高级Linux声音架构)、NAS(网络音频系统)、aRTS(模拟实时合成器)、PulseAudio(下一代GNOME声音架构)。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

Libao依赖

可选

a graphical environment, ALSA-1.2.7, 和 PulseAudio-16.1

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libao

安装Libao

运行以下命令安装libao:

./configure --prefix=/usr &&
make

这个包没有附带测试套件。

现在,作为root用户:

make install &&
install -v -m644 README /usr/share/doc/libao-1.2.0

配置Libao

配置文件

/etc/libao.conf~/.libao

配置信息

目前,唯一可用的配置选项是设置默认输出设备。请发送man libao.conf获取详细信息。

内容

安装程序: None

安装库: libao.so 以及位于/usr/lib/ao/plugins-4目录下的插件

安装目录: /usr/include/ao, /usr/lib/ao 和 /usr/share/doc/libao-1.2.0

简短描述

libao.so   为希望在支持的平台上输出声音的程序提供函数。

42.25 libass-0.17.0


简介libass

libass是一个便携式字幕渲染器,适用于ASS/SSA (Advanced Substation Alpha/Substation Alpha)字幕格式,它允许比传统SRT和类似格式更高级的字幕。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

libass依赖

必要

FreeType-2.13.0, FriBidi-1.0.12, 和 NASM-2.16.01

推荐

Fontconfig-2.14.2

可选

HarfBuzz-7.0.0libunibreak

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libass

安装libass

运行以下命令安装libass:

./configure --prefix=/usr --disable-static &&
make

这个包没有附带测试套件。

现在,作为root用户:

make install

命令解释

--disable-static: 这个开关阻止安装静态版本的库。

--disable-fontconfig: 如果你没有安装Fontconfig,请使用这个开关。

内容

安装程序: None

安装库: libass.so

安装目录: /usr/include/ass

简短描述

libass.so   提供渲染ASS/SSA字幕格式的功能。

42.26 libcanberra-0.30


简介libcanberra

libcanberra是XDG声音主题和名称规范的实现,用于在免费桌面(如GNOME)上生成事件声音。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

额外下载

libcanberra依赖

必要

libvorbis-1.3.7

推荐

alsa-lib-1.2.8, gstreamer-1.22.0, 和 GTK+-3.24.36

可选

GTK+-2.24.33, PulseAudio-16.1, 和 tdb

推荐声音主题 (运行时)

sound-theme-freedesktop-0.8, 或者另一个主题,例如the gnome-look website

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libcanberra

安装libcanberra

首先,在基于Wayland的桌面环境中,应用补丁来修复导致一些应用程序崩溃的问题:

patch -Np1 -i ../libcanberra-0.30-wayland-1.patch

运行以下命令安装libcanberra:

./configure --prefix=/usr --disable-oss &&
make

这个包没有附带测试套件。

现在,作为root用户:

make docdir=/usr/share/doc/libcanberra-0.30 install

命令解释

--disable-oss: disable可选不支持OSS

--disable-gtk: 关闭可选的GTK+ 2支持

--disable-gtk3: 关闭可选的GTK+ 3支持

内容

安装程序: canberra-boot 和 canberra-gtk-play

安装库: libcanberra-gtk.so, libcanberra-gtk3.so 和 libcanberra.so

安装目录: /usr/lib/libcanberra-0.30, /usr/share/doc/libcanberra-0.30 和 /usr/share/gtk-doc/html/libcanberra

简短描述

canberra-gtk-play   是一个用于播放声音事件的应用程序。

libcanberra-gtk.so   包含GTK+ 2的libcanberra绑定。

libcanberra-gtk3.so   包含GTK+ 3的libcanberra绑定。

libcanberra.so   包含libcanberra API函数。

42.27 libcddb-1.3.2


简介libcddb

libcddb是一个库,它实现了访问CDDB服务器上数据的不同协议(CDDBP、HTTP、SMTP)。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libcddb

安装libcddb

默认情况下,这个包访问freedb.org,但它已经关闭了。将默认值改为使用gnudb.gnudb.org,并修复两个过时的测试数据文件:

sed -e '/DEFAULT_SERVER/s/freedb.org/gnudb.gnudb.org/' \
    -e '/DEFAULT_PORT/s/888/&0/'                       \
    -i include/cddb/cddb_ni.h                          &&
sed '/^Genre:/s/Trip-Hop/Electronic/' -i tests/testdata/920ef00b.txt &&
sed '/DISCID/i# Revision: 42'         -i tests/testcache/misc/12340000

运行以下命令安装libcddb:

./configure --prefix=/usr --disable-static &&
make

要测试结果,请执行以下命令: make check -k。测试套件需要互联网连接。一个测试由于缺少测试服务器而失败。

现在,作为root用户:

make install

内容

安装程序: cddb_query

安装库: libcddb.so

安装目录: /usr/include/cddb

简短描述

cddb_query   提供到CDDB服务器的用户界面。

42.28 libcdio-2.1.0


简介libcdio

libcdio是一个用于CD- rom和CD图像访问的库。相关的libcdio-cdparanoia库直接从CD-ROM读取音频作为数据,之间没有模拟步骤,并将数据以.wav、.aifc或原始16位线性PCM的形式写入文件或管道。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

额外下载

libcdio依赖

可选

libcddb-1.3.2

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libcdio

安装libcdio

运行以下命令安装libcdio:

./configure --prefix=/usr --disable-static &&
make

要测试结果,请执行以下命令: make check -k。其中一个名为realpath的测试失败了。

现在,作为root用户:

make install

现在安装libcdio-paranoia:

tar -xf ../libcdio-paranoia-10.2+2.0.1.tar.bz2 &&
cd libcdio-paranoia-10.2+2.0.1 &&

./configure --prefix=/usr --disable-static &&
make

要测试结果,请执行以下命令: make check.

现在,作为root用户:

make install

内容

安装程序: cdda-player, cd-drive, cd-info, cd-paranoia, cd-read, iso-info, iso-read, 和 mmc-tool

安装库: libcdio.so, libcdio++.so, libcdio_cdda, libcdio_paranoia, libiso9660, libiso9660++, 和 libudf.so

安装目录: /usr/include/cdio 和 /usr/include/cdio++

简短描述

cd-drive   显示光盘驱动器的特性。

cd-info   显示CD或CD-image的信息。

cd-paranoia   是一个音频CD读取实用程序,包括额外的数据验证功能。

cd-read   从CD或CD-image读取信息。

cdda-player   是一个简单的curses CD播放机。

iso-info   显示ISO 9660图像的信息。

iso-read   读取ISO 9660图像的部分内容。

mmc-tool   发出libcdio多媒体命令。

libcdio.so   包含主要的cdio API函数。

42.29 libdiscid-0.6.2


简介libdiscid

libdiscid包包含一个库,用于从音频cd创建MusicBrainz DiscIDs。它读取CD的目录(TOC)并生成一个标识符,可用于在MusicBrainz (https://musicbrainz.org)上查找CD。此外,它还提供了一个提交URL,用于将DiscID添加到数据库中。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

可选

Doxygen-1.9.6

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libdiscid

安装libdiscid

运行以下命令安装libdiscid:

./configure --prefix=/usr --disable-static &&
make

要测试结果,请执行以下命令: make check.

现在,作为root用户:

make install

命令解释

--disable-static: 这个开关阻止安装静态版本的库。

内容

安装程序: None

安装库: libdiscid.so

安装目录: /usr/include/discid

简短描述

libdiscid.so   包含了discod API函数。

42.30 libdvdcss-1.4.3


简介libdvdcss

libdvdcss是一个简单的库,用于将dvd作为块设备访问,而无需解密。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

libdvdcss依赖

可选 (创建文档)

Doxygen-1.9.6

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libdvdcss

安装libdvdcss

运行以下命令安装libdvdcss:

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/libdvdcss-1.4.3 &&
make

这个包没有附带测试套件。

现在,作为root用户:

make install

命令解释

--disable-static: 这个开关阻止安装静态版本的库。

内容

安装程序: None

安装库: libdvdcss.so

安装目录: /usr/include/dvdcss 和 /usr/share/doc/libdvdcss-1.4.3

简短描述

libdvdcss.so   提供CSS解密透明DVD访问所需的功能。

42.31 Libdvdread-6.1.3


简介Libdvdread

libdvdread是一个库,它为阅读dvd提供了一个简单的基础。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libdvdread

安装Libdvdread

运行以下命令安装libdvdread:

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/libdvdread-6.1.3 &&
make

这个包没有附带测试套件。

现在,作为root用户:

make install

命令解释

--disable-static: 这个开关阻止安装静态版本的库。

内容

安装程序: None

安装库: libdvdread.so

安装目录: /usr/include/dvdread 和 /usr/share/doc/libdvdread-6.1.3

简短描述

libdvdread.so   提供访问dvd所需的功能。

42.32 Libdvdnav-6.1.1


简介Libdvdnav

libdvdnav是一个库,允许简单使用复杂的DVD导航功能,如DVD菜单,多角度播放,甚至交互式DVD游戏。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

Libdvdnav依赖

必要

libdvdread-6.1.3

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libdvdnav

安装Libdvdnav

运行以下命令安装libdvdnav:

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/libdvdnav-6.1.1 &&
make

这个包没有附带测试套件。

现在,作为root用户:

make install

命令解释

--disable-static: 这个开关阻止安装静态版本的库。

内容

安装程序: None

安装库: libdvdnav.so

安装目录: /usr/include/dvdnav 和 /usr/share/doc/libdvdnav-6.1.1

简短描述

libdvdnav.so   是DVD导航库。

42.33 Libdv-1.0.0


简介Libdv

Quasar DV Codec(libdv)是一种用于DV视频的软件编解码器,是大多数数字摄像机使用的编码格式。它可以使用火线(ieee1394)连接从摄像机中复制视频。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

Libdv依赖

可选

popt-1.19, SDL-1.2.15, 和 a graphical environment

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libdv

安装Libdv

运行以下命令安装libdv:

./configure --prefix=/usr \
            --disable-xv \
            --disable-static &&
make

这个包没有附带测试套件。

现在,作为root用户:

make install &&
install -v -m755 -d      /usr/share/doc/libdv-1.0.0 &&
install -v -m644 README* /usr/share/doc/libdv-1.0.0

命令解释

--disable-xv: 如果没有安装X Window系统,此参数是必需的。它还可以防止对libXv进行configure测试,因为libXv只用于一个废弃的程序playdv,该程序不会使用当前的linux headers构建,并且还需要其他废弃的依赖项。

--disable-static: 这个开关阻止安装静态版本的库。

内容

安装程序: dubdv, dvconnect, 和 encodedv

安装库: libdv.so

安装目录: /usr/include/libdv 和 /usr/share/doc/libdv-1.0.0

简短描述

dubdv   将音频插入数字视频流。

dvconnect   是一个小的实用程序发送或捕获原始数据从或到摄像机。

encodedv   将一系列图像编码成数字视频流。

libdv.so   提供与Quasar DV编解码器交互的程序函数。

42.34 libmad-0.15.1b


简介libmad

libmad是一个高质量的MPEG音频解码器,支持24位输出。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

额外下载

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libmad

安装libmad

运行以下命令安装libmad:

patch -Np1 -i ../libmad-0.15.1b-fixes-1.patch                &&
sed "s@AM_CONFIG_HEADER@AC_CONFIG_HEADERS@g" -i configure.ac &&
touch NEWS AUTHORS ChangeLog                                 &&
autoreconf -fi                                               &&

./configure --prefix=/usr --disable-static &&
make

这个包没有附带测试套件。

现在,作为root用户:

make install

有些包会检查libmad的pkg-config文件。这个文件特别需要,以便Cdrdao能够识别安装的libmad。

作为root用户:

cat > /usr/lib/pkgconfig/mad.pc << "EOF"
prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: mad
Description: MPEG audio decoder
Requires:
Version: 0.15.1b
Libs: -L${libdir} -lmad
Cflags: -I${includedir}
EOF

命令解释

touch NEWS AUTHORS ChangeLog: 防止autoreconf返回错误。

--disable-static: 这个开关阻止安装静态版本的库。

内容

安装程序: None

安装库: libmad.so

安装目录: None

简短描述

libmad.so   是一个MPEG音频解码器库。

42.35 libmpeg2-0.5.1


简介libmpeg2

libmpeg2包包含一个用于解码MPEG-2和MPEG-1视频流的库。这个库能够解码所有符合特定限制的MPEG流:对MPEG-1来说是“受限参数”,对MPEG-2来说是“主配置文件”。这对于需要解码MPEG-2和MPEG-1视频流的程序和应用程序非常有用。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

libmpeg2依赖

可选

a graphical environmentSDL-1.2.15

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libmpeg2

安装libmpeg2

运行以下命令安装libmpeg2:

sed -i 's/static const/static/' libmpeg2/idct_mmx.c &&

./configure --prefix=/usr    \
            --enable-shared  \
            --disable-static &&
make

要测试结果,请执行以下命令: make check。要执行更全面的回归测试,请参阅源代码树中的test/README文件。

现在,作为root用户:

make install &&

install -v -m755 -d /usr/share/doc/libmpeg2-0.5.1 &&
install -v -m644 README doc/libmpeg2.txt \
                    /usr/share/doc/libmpeg2-0.5.1

命令解释

sed -i …: 这个sed修复了最近GCC编译器的问题。

--disable-static: 这个开关阻止安装静态版本的库。

内容

安装程序: corrupt_mpeg2, extract_mpeg2 和 mpeg2dec

安装库: libmpeg2.so 和 libmpeg2convert.so

安装目录: /usr/include/mpeg2dec 和 /usr/share/doc/libmpeg2-0.5.1

简短描述

extract_mpeg2   从多路复用流中提取MPEG视频流。

mpeg2dec   解码MPEG1和MPEG2视频流。

libmpeg2.so   包含用于解码MPEG视频流的API函数。

libmpeg2convert.so   包含用于MPEG视频流颜色转换的API函数。

42.36 libmusicbrainz-2.1.5


简介libmusicbrainz

libmusicbrainz包包含一个库,它允许您访问MusicBrainz服务器上保存的数据。这对于向其他应用程序添加MusicBrainz查找功能很有用。

MusicBrainz是一个社区音乐元数据库,试图创建一个全面的音乐信息网站。您可以通过浏览网站来使用MusicBrainz数据,也可以通过客户端程序访问数据——例如,CD播放机程序可以使用MusicBrainz识别CD,并提供有关CD、艺术家或其他相关信息。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

额外下载

libmusicbrainz依赖

可选构建Python绑定

Python-2.7.18

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libmusicbrainz

安装libmusicbrainz

运行以下命令安装libmusicbrainz:

patch -Np1 -i ../libmusicbrainz-2.1.5-missing-includes-1.patch &&

CXXFLAGS="${CXXFLAGS:--O2 -g} -std=c++98" \
./configure --prefix=/usr --disable-static &&
make

如果安装了Python,使用以下命令构建绑定:

(cd python && python2 setup.py build)

这个包没有附带独立的测试套件(要测试,必须安装Python,并在安装包后执行测试)。

现在,作为root用户:

make install &&
install -v -m644 -D docs/mb_howto.txt \
    /usr/share/doc/libmusicbrainz-2.1.5/mb_howto.txt

要测试Python绑定,请执行以下命令: (cd python && python2 setup.py test).

如果你构建了Python绑定,请以root用户身份执行以下命令来安装它们:

(cd python && python2 setup.py install)

命令解释

--disable-static: 这个开关阻止安装静态版本的库。

内容

安装程序: None

安装库: libmusicbrainz.so

安装目录: /usr/include/musicbrainz 和 /usr/share/doc/libmusicbrainz-2.1.5

简短描述

libmusicbrainz.so   包含访问MusicBrainz数据库的API函数,既用于查找数据,也用于提交新数据。

42.37 libmusicbrainz-5.1.0


简介libmusicbrainz

libmusicbrainz包包含一个库,它允许您访问MusicBrainz服务器上保存的数据。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

额外下载

libmusicbrainz依赖

必要

CMake-3.25.2, libxml2-2.10.3neon-0.32.5

可选

Doxygen-1.9.6

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libmusicbrainz5

安装libmusicbrainz

首先,修复一个由CMake-3.18.0引起的问题:

patch -Np1 -i ../libmusicbrainz-5.1.0-cmake_fixes-1.patch

运行以下命令安装libmusicbrainz:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release .. &&
make

If you have installed Doxygen-1.9.6, optionally build the API documentation:

doxygen ../Doxyfile

这个包没有附带测试套件。

现在,作为root用户:

make install

如果你已经构建了API文档,以root用户的身份安装:

rm -rf /usr/share/doc/libmusicbrainz-5.1.0 &&
cp -vr docs/ /usr/share/doc/libmusicbrainz-5.1.0

内容

安装程序: None

安装库: libmusicbrainz5.so

安装目录: /usr/include/libmusicbrainz5 和 /usr/share/doc/libmusicbrainz-5.1.0

简短描述

libmusicbrainz5.so   包含用于访问MusicBrainz数据库的API函数。

42.38 libogg-1.3.5


简介libogg

libogg包包含Ogg文件结构。这对于创建(编码)或播放(解码)单个物理比特流很有用。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libogg

安装libogg

运行以下命令安装libogg:

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/libogg-1.3.5 &&
make

要测试结果,请执行以下命令: make check.

现在,作为root用户:

make install

命令解释

--disable-static: 这个开关阻止安装静态版本的库。

内容

安装程序: None

安装库: libogg.so

安装目录: /usr/include/ogg 和 /usr/share/doc/libogg-1.3.5

简短描述

libogg.so   提供程序读写Ogg格式的位流所需的函数。

42.39 libquicktime-1.2.4


简介libquicktime

libquicktime包包含了libquicktime库、各种插件和编解码器,以及用于编码和解码QuickTime文件的图形和命令行实用程序。这对于读取和写入QuickTime格式的文件很有用。项目的目标是增强与quicktime4 Linux库的兼容性。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

libquicktime依赖

可选

alsa-lib-1.2.8, Doxygen-1.9.6, FAAC-1_30, FAAD2-2.10.1, GTK+-2.24.33, LAME-3.100, libdv-1.0.0, libjpeg-turbo-2.1.5.1, libpng-1.6.39, libvorbis-1.3.7, x264-20230215, Xorg Libraries, 和 Schroedinger

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libquicktime

安装libquicktime

运行以下命令安装libquicktime:

./configure --prefix=/usr     \
            --enable-gpl      \
            --without-doxygen \
            --without-ffmpeg  \
            --docdir=/usr/share/doc/libquicktime-1.2.4
make

这个包没有附带测试套件。

现在,作为root用户:

make install &&

install -v -m755 -d /usr/share/doc/libquicktime-1.2.4 &&
install -v -m644    README doc/{*.txt,*.html,mainpage.incl} \
                    /usr/share/doc/libquicktime-1.2.4

命令解释

--enable-gpl: 将许可证更改为GPL。这启用了一些额外的插件,如FAAC、FAAD2和x264。

--without-doxygen: 如果没有安装Doxygen,这是必要的;如果安装了Doxygen,并且希望安装API文档,则忽略此操作。

--without-ffmpeg: 该开关禁用ffmpeg支持,因为它与ffmpeg-5不兼容。

--with-libdv: 使用libdv支持进行构建。默认不启用。

内容

安装程序: libquicktime_config, lqtplay, lqtremux, lqt_transcode, qt2text, qtdechunk, qtdump, qtinfo, qtrechunk, qtstreamize, 和 qtyuv4toyuv

安装库: libquicktime.so 以及几个插件编解码器库

安装目录: /usr/include/lqt, /usr/lib/libquicktime, 和 /usr/share/doc/libquicktime-1.2.4

简短描述

libquicktime_config   是一个图形化前端,用于检查和配置可用的libquicktime音频和视频编解码器。

lqtplay   是一个简单的QuickTime电影播放器的X窗口系统。

lqt_transcode   是一个命令行程序,用于将视频和/或音频文件从一种格式编码为另一种格式。

qt2text   用于从quicktime文件中转储所有文本字符串。

qtdechunk   可以拍摄包含RGB帧的电影,并将其写成PPM图像。

qtdump   显示所提供文件的解析内容。

qtinfo   打印libquicktime库对提供的文件解析的各种元数据片段。

qtrechunk   连接输入帧到QuickTime电影。

qtstreamize   通过将moov头放在文件的开头来使文件可流化。

qtyuv4toyuv   用于将YUV4编码的电影写成一个平面的YUV 4:2:0文件。

libquicktime.so   是一个用于读写QuickTime文件的库。它提供了对各种支持的编解码器的QuickTime文件的方便访问。该库包含与所有原始QuickTime 4 Linux库函数集成的新函数,用于编码和解码QuickTime文件。

42.40 libsamplerate-0.2.2


简介libsamplerate

libsamplerate是一个音频采样率转换器。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

libsamplerate依赖

可选

alsa-lib-1.2.8, libsndfile-1.2.0, 和 fftw-3.3.10 (for tests)

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libsamplerate

安装libsamplerate

运行以下命令安装libsamplerate:

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/libsamplerate-0.2.2 &&
make

要测试结果,请执行以下命令: make check.

现在,作为root用户:

make install

命令解释

--disable-static: 这个开关阻止安装静态版本的库。

内容

安装程序: None

安装库: libsamplerate.so

安装目录: /usr/share/doc/libsamplerate-0.2.2

42.41 libsndfile-1.2.0


简介libsndfile

Libsndfile是一个C例程库,用于读写包含采样音频数据的文件。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

libsndfile依赖

推荐

FLAC-1.4.2, Opus-1.3.1, 和 libvorbis-1.3.7

可选

alsa-lib-1.2.8, LAME-3.100, mpg123-1.31.2, Speex-1.2.1, 和 SQLite-3.40.1

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libsndfile

安装libsndfile

运行以下命令安装libsndfile:

./configure --prefix=/usr    \
            --docdir=/usr/share/doc/libsndfile-1.2.0 &&
make

要测试结果,请执行以下命令: make check.

现在,作为root用户:

make install

内容

安装程序: sndfile-cmp, sndfile-concat, sndfile-convert, sndfile-deinterleave, sndfile-info, sndfile-interleave, sndfile-metadata-get, sndfile-metadata-set, sndfile-play, 和 sndfile-salvage

安装库: libsndfile.so

安装目录: /usr/share/doc/libsndfile-1.2.0

简短描述

sndfile-cmp   比较两个音频文件。

sndfile-concat   连接两个或更多的音频文件。

sndfile-convert   将声音文件从一种格式转换为另一种格式。

sndfile-deinterleave   将多通道拆分为多个单通道文件。

sndfile-info   显示声音文件的信息。

sndfile-interleave   将多个单通道文件转换为多通道文件。

sndfile-metadata-get   从声音文件中检索元数据。

sndfile-metadata-set   设置声音文件中的元数据。

sndfile-play   播放声音文件。

sndfile-salvage   从超过4G长度的WAV文件中抢救音频数据。

libsndfile.so   包含libsndfile的API函数。

42.42 libtheora-1.1.1


简介libtheora

libtheora是Xiph.Org基金会正在开发的Theora视频压缩格式的参考实现。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

libtheora依赖

必要

libogg-1.3.5

推荐

libvorbis-1.3.7

可选

SDL-1.2.15libpng-1.6.39 (都是为了构建players的例子), Doxygen-1.9.6, texlive-20220321 (或 install-tl-unx), BibTex, 和 Transfig (这四个都用来构建API文档), 和 Valgrind-3.20.0

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/Libtheora

安装libtheora

运行以下命令安装libtheora:

sed -i 's/png_\(sizeof\)/\1/g' examples/png2theora.c &&
./configure --prefix=/usr --disable-static &&
make

如果你想运行测试,请执行: make check.

现在,作为root用户:

make install

如果你想安装示例(这样你就可以使用theora),请以root用户安装:

cd examples/.libs &&
for E in *; do
  install -v -m755 $E /usr/bin/theora_${E}
done

命令解释

sed -i ‘s/png_(sizeof)/\1/g’ examples/png2theora.c: 这个sed修复了libpng 1.6的构建。

--disable-static: 这个开关阻止安装静态版本的库。

内容

安装程序: None, 除非你安装了示例

安装库: libtheora.so, libtheoraenc.so, 和 libtheoradec.so

安装目录: /usr/include/theora 和 /usr/share/doc/libtheora-1.1.1

简短描述

libtheora*.so   包含了读写视频文件的函数。

42.43 libvorbis-1.3.7


简介libvorbis

libvorbis包包含一个通用的音频和音乐编码格式。这对于以开放(无专利)格式创建(编码)和播放(解码)声音非常有用。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

libvorbis依赖

必要

libogg-1.3.5

可选

Doxygen-1.9.6texlive-20220321 (或 install-tl-unx) (specifically, pdflatex 和 htlatex) 来构建PDF文档

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/Libvorbis

安装libvorbis

运行以下命令安装libvorbis:

./configure --prefix=/usr --disable-static &&
make

要测试结果,请执行以下命令: make -j1 check.

现在,作为root用户:

make install &&
install -v -m644 doc/Vorbis* /usr/share/doc/libvorbis-1.3.7

命令解释

--disable-static: 这个开关阻止安装静态版本的库。

--enable-docs: 这个选项允许以html之外的格式构建文档。

内容

安装程序: None

安装库: libvorbis.so, libvorbisenc.so 和 libvorbisfile.so

安装目录: /usr/include/vorbis 和 /usr/share/doc/libvorbis-1.3.7

简短描述

libvorbis.so   提供用于读取和写入声音文件的函数。

42.44 libvpx-1.13.0


简介libvpx

该包来自WebM项目,提供了当前大多数html5视频中使用的VP8编解码器和下一代VP9编解码器的参考实现。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

libvpx依赖

推荐

yasm-1.3.0NASM-2.16.01, 和 Which-2.21 (所以configure可以找到yasm)

可选

cURL-7.88.1 (下载测试文件) 和 Doxygen-1.9.6 (构建文档)

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libvpx

安装libvpx

运行以下命令安装libvpx:

sed -i 's/cp -p/cp/' build/make/Makefile &&

mkdir libvpx-build            &&
cd    libvpx-build            &&

../configure --prefix=/usr    \
             --enable-shared  \
             --disable-static &&
make

要测试结果,请执行以下命令: LD_LIBRARY_PATH=. make test。作为测试过程的一部分,测试套件下载了许多文件。其中一些部分将使用所有可用的内核。

现在,作为root用户:

make install

命令解释

sed … : 此命令纠正已安装文件的所有权和权限。

mkdir libvpx-build && cd libvpx-build: libvpx开发人员建议在专用的构建目录中构建。

--disable-static: 这个开关阻止安装静态版本的库。

--disable-vp8: 这个开关阻止了VP8编解码器支持的构建。

--disable-vp9: 这个开关阻止了VP9编解码器支持的构建。

--target=generic-gnu: 此开关禁用针对x86和x86-64的优化,允许在不安装nasmyasm的情况下构建此包。

LD_LIBRARY_PATH=.: 这是测试套件使用刚刚构建的库所必需的。

内容

安装程序: vpxdec 和 vpxenc

安装库: libvpx.so

安装目录: /usr/include/vpx

简短描述

vpxdec   是WebM项目VP8和VP9的解码器。

vpxenc   是WebM项目VP8和VP9编码器。

libvpx.so   提供VP8和VP9视频编解码器的使用功能。

42.45 MLT-7.12.0


简介MLT

MLT包是媒体爱好者的工具包。它是一个开源的多媒体框架,是为电视广播而设计和开发的。它为广播、视频编辑、媒体播放器、转码器、网络流媒体和更多类型的应用程序提供了工具包。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

MLT依赖

必要

frei0r-plugins-1.8.0Qt-5.15.8

可选

Doxygen-1.9.6, fftw-3.3.10, libexif-0.6.24, SDL-1.2.15, SDL2-2.26.3, JACK, MOVEit, SoX, 和 vid.stab

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/mlt

安装MLT

运行以下命令安装MLT:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      -Wno-dev .. &&

make

这个包没有附带测试套件。然而,一个测试的.mp4文件可以在本地图形环境中使用 **./src/melt/melt .mp4**.

注意

此应用程序使用高级图形功能。在某些情况下,可能需要特定图形适配器的固件。有关更多信息,请参阅the section called “Firmware for Video Cards”

现在,作为root用户:

make install

内容

安装程序: melt-7 和 melt (符号链接到melt-7)

安装库: libmlt-7.so, libmlt++-7.so, 还有超过20个插件

安装目录: /usr/include/mlt-7, /usr/lib/mlt-7, /usr/lib/cmake/Mlt7, 和 /usr/share/mlt-7

简短描述

melt   是MLT的测试工具。

42.46 Opus-1.3.1


简介Opus

Opus是互联网工程任务组(IETF)开发的一种有损音频压缩格式,特别适合在互联网上进行交互式语音和音频传输。这个包提供了Opus开发库和头文件。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

可选

Doxygen-1.9.6texlive-20220321 (或 install-tl-unx)

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/Opus

安装Opus

运行以下命令安装Opus:

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/opus-1.3.1 &&
make

要测试结果,请执行以下命令: make check.

现在,作为root用户:

make install

命令解释

--disable-static: 这个开关阻止安装静态版本的库。

内容

安装程序: None

安装库: libopus.so

安装目录: /usr/include/opus 和 /usr/share/doc/opus-1.3.1

简短描述

libopus.so   提供用于读取和写入Opus格式的函数。

42.47 Pipewire-0.3.66


简介Pipewire

pipewire包包含服务器和用户空间API,用于处理多媒体管道。这包括连接多媒体设备的通用API,以及在应用程序之间共享多媒体文件。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

Pipewire依赖

推荐

BlueZ-5.66, gstreamer-1.22.0, gst-plugins-base-1.22.0, PulseAudio-16.1, SBC-2.0, 和 v4l-utils-1.22.1

可选

alsa-lib-1.2.8, Avahi-0.8, BlueZ-5.66, fdk-aac-2.0.2, FFmpeg-5.1.2, libcanberra-0.30, libdrm-2.4.115 (以libcamera支持为例), libxcb-1.15, libsndfile-1.2.0, libusb-1.0.26, Opus-1.3.1, SDL2-2.26.3 (用于一些例子), Valgrind-3.20.0, Xorg Libraries, Doxygen-1.9.6Graphviz-7.1.0 (用于文档), JACK, ldacBT, libcamera, Vulkan, WirePlumber (运行时,用于运行管道守护进程), 和 xmltoman

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/pipewire

安装Pipewire

运行以下命令安装pipewire:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release -Dsession-managers= .. &&
ninja

要测试结果,请执行ninja test。其中一个名为test-support的测试失败了。

现在,作为root用户:

ninja install

命令解释

--buildtype=release: 指定一个适合于稳定版本的构建类型,因为默认情况下可能会生成未优化的二进制文件。

-Dsession-managers=: 此开关防止自动下载外部依赖项。

-Ddocs=true: 这个开关用于生成HTML文档。为此,需要安装documentation的可选依赖项。

-Dman=true: 该开关允许生成手册页。为此,需要安装documentation的可选依赖项。

-Dffmpeg=enabled: 这个开关可以使用ffmpeg作为SPA后端进行音频转换。

内容

安装程序: pipewire, pipewire-avb, pipewire-pulse, pw-cat, pw-cli, pw-dot, pw-dump, pw-jack, pw-link, pw-loopback, pw-metadata, pw-mididump, pw-mon, pw-profiler, pw-reserve, pw-top, pw-v4l2, spa-acp-tool, spa-inspect, spa-json-dump, spa-monitor, spa-resample, and pw-dsdplay, pw-midiplay, pw-midirecord, pw-play, 和 pw-record (符号链接到pw-cat)

安装库: libpipewire-0.3.so 在 /usr/lib/pipewire-0.3 下面有56个模块 和 /usr/lib/spa-0.2

安装目录: /usr/include/pipewire-0.3, /usr/include/spa-0.2, /usr/lib/alsa-lib, /usr/lib/pipewire-0.3, /usr/lib/spa-0.2, /usr/share/alsa-card-profile, /usr/share/pipewire, 和 /usr/share/spa-0.2

简短描述

pipewire   是一种允许访问多媒体设备并允许在应用程序之间共享多媒体文件的服务。

pipewire-media-session   是一种服务,允许桌面环境知道什么时候媒体文件正在通过管道进行播放。

pipewire-pulse   启动pipewire服务的Pulseaudio兼容版本。

pw-cat   允许您使用pipewire实例播放或录制媒体。

pw-cli   允许你与pipewire实例交互。

pw-dot   列出pipewire正在使用的所有守护进程和对象。

pw-dump   将调试消息从本地或远程pipewire实例转储到控制台。

pw-jack   在pipewire实例上运行JACK应用程序。

pw-link   将管道端口连接在一起。

pw-loopback   初始化两个不同管道端口之间的环回链路。这对测试和调试很有用。

pw-metadata   检查、添加和删除对象的元数据。

pw-mididump   将MIDI消息从文件转储到屏幕。

pw-mon   允许您监视pipewire实例。

pw-profiler   跟踪内存使用情况和pipewire使用的API调用。

pw-reserve   通过D-Bus预留或监控设备。

pw-top   显示来自pipeline的实时性能信息。

pw-v4l2   在pipewire实例上运行v4l2应用程序。

spa-acp-tool   检查给定声卡的声卡配置文件。

spa-inspect   允许您检查pipewire插件。

spa-json-dump   以JSON格式转储当前管道配置。

spa-monitor   允许您监视管道插件。

spa-resample   对给定文件进行重采样。

libpipewire-0.3.so   包含处理多媒体管道的API函数。

42.48 PulseAudio-16.1


简介PulseAudio

PulseAudio是POSIX操作系统的声音系统,这意味着它是声音应用程序的代理。当声音数据在应用程序和硬件之间传递时,它允许您对声音数据进行高级操作。使用声音服务器可以轻松地将音频传输到不同的机器,更改样本格式或通道数量,以及将几种声音混合成一种声音。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

PulseAudio依赖

必要

libsndfile-1.2.0

推荐

alsa-lib-1.2.8, dbus-1.14.6, GLib-2.74.5, Speex-1.2.1Xorg Libraries

可选

Avahi-0.8 BlueZ-5.66, Doxygen-1.9.6 (用于documentation), fftw-3.3.10, GTK+-3.24.36, libsamplerate-0.2.2, SBC-2.0 (Bluetooth support), Valgrind-3.20.0, JACK, libasyncns, LIRC, ORC, soxr, TDB, 和 WebRTC AudioProcessing

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/pulseaudio

安装PulseAudio

运行以下命令安装PulseAudio:

mkdir build &&
cd    build &&

meson --prefix=/usr       \
      --buildtype=release \
      -Ddatabase=gdbm     \
      -Ddoxygen=false     \
      -Dbluez5=disabled   &&
ninja

要测试结果,请执行以下命令: ninja test。如果不是以root用户身份运行某个测试,则测试会失败,但可以忽略这一点。

现在,作为root用户:

ninja install

可以将PulseAudio作为系统范围的守护进程运行,但不推荐。查看 https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SystemWide/ 获取更多信息。在仍然以root用户的情况下,删除系统范围内守护进程的D-Bus配置文件,以避免创建不必要的系统用户和组:

rm -fv /etc/dbus-1/system.d/pulseaudio-system.conf

命令解释

--buildtype=release: 指定一个适合于稳定版本的构建类型,因为默认情况下可能会生成未优化的二进制文件。

-Dbluez5=disabled: 如果dbus-1.14.6SBC-2.0都安装了,但BlueZ-5.66没有安装,则此开关可以防止运行时错误。如果你已经安装了这三个包,请删除它。

-Ddoxygen=false: 如果没有安装Doxygen-1.9.6,则该包可以编译。如果您已经安装了它并希望构建文档,请删除它。

配置 PulseAudio

配置文件

系统范围内的配置文件有:/etc/pulse/daemon.conf, /etc/pulse/client.conf, /etc/pulse/default.pa,。和~/.config/pulse中同名的用户配置文件。用户配置文件优先于系统范围的配置文件。

配置信息

您可能需要配置音频系统。你可以使用pulseaudio -C命令行模式启动pulseaudio,然后列出各种信息并更改设置。参见man pulse-cli-syntax

如果pulseaudio工作,但您不再有声音,检查硬件问题(扬声器或耳机未连接,外部放大器未连接)后,您可能需要解决它。

一个建议是关闭应用程序,例如在firefox中,声音已经停止工作,然后运行:pactl list short sinks,然后运行:pacmd set-default-sink <sink #>,然后重新启动应用程序。

如果这不起作用,更激进的方法通常会奏效。关闭应用程序后,关闭pulseaudio,可以使用pulseaudio –kill,如果失败,可以使用killall -KILL pulseaudio,然后rm -rf ~/.config/pulse/*(也可能是rm -rf ~/.pulse/*如果你在这台机器上使用了非常旧的Pulse版本),然后运行pulseaudio –verbose重新启动它。如果守护进程启动,则重新启动应用程序。更多选项请参见man pulseaudio

内容

安装程序: pacat, pacmd, pactl, padsp, pamon (符号链接到pacat), paplay (符号链接到pacat), parec (符号链接到pacat), parecord (符号链接到pacat), qpaeq, pasuspender, pax11publish, pulseaudio, 和 start-pulseaudio-x11

安装库: libpulse.so, libpulse-mainloop-glib.so, libpulse-simple.so, libpulsecommon-16.1.so, libpulsecore-16.1.so, 和 libpulsedsp.so

安装目录: /etc/pulse, /usr/include/pulse, /usr/lib/cmake/PulseAudio, /usr/lib/{pulseaudio,pulse-16.1}, /usr/libexec/pulse, 和 /usr/share/pulseaudio

简短描述

pacat   在PulseAudio音频服务器上播放或记录原始或编码的音频流。

pacmd   是一个用于在运行时重新配置PulseAudio声音服务器的工具。

pactl   用于控制运行中的PulseAudio声音服务器。

padsp   是PulseAudio OSS的包装器。

pamon   是指向pacat的符号链接。

paplay   用于在PulseAudio声音服务器上播放音频文件。

parec   符号链接到 pacat.

parecord   符号链接到 pacat.

pasuspender   是一个工具,可以用来告诉本地PulseAudio声音服务器暂时暂停对音频设备的访问,以允许其他应用程序直接访问它们。

pax11publish   是PulseAudio X11凭据实用程序。

pa-info   是一个shell脚本,打印与当前使用的Pulseaudio服务器相关的各种信息。

pulseaudio   是一个网络低延迟的Linux声音服务器。

qpaeq   是脉冲音频均衡器水槽的均衡器接口(在构建时需要fftw-3.3.10)。

start-pulseaudio-x11   启动PulseAudio并将其注册到X11会话管理器。

42.49 SBC-2.0


简介SBC

SBC是一个数字音频编码器和解码器,用于将数据传输到蓝牙音频输出设备,如耳机或扬声器。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

SBC依赖

可选

libsndfile-1.2.0

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/sbc

安装SBC

运行以下命令安装SBC:

./configure --prefix=/usr --disable-static --disable-tester &&
make

这个包没有附带测试套件。

现在,作为root用户:

make install

命令解释

--disable-tester: 这会禁用SBC测试器。如果已经安装,请卸载 libsndfile-1.2.0.

--disable-static: 这个开关阻止安装静态版本的库。

内容

安装程序: sbcdec, sbcenc, 和 sbcinfo

安装库: libsbc.so

安装目录: /usr/include/sbc

简短描述

sbcdec   是一个SBC解码器实用程序。

sbcenc   是一个SBC编码器实用程序。

sbcinfo   是一个子带编解码器(SBC)分析器。

libsbc.so   包含SBC API函数。

42.50 SDL-1.2.15


简介SDL

Simple DirectMedia层(简称SDL)是一个跨平台的库,旨在使编写多媒体软件(如游戏和模拟器)变得容易。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

SDL依赖

推荐

Xorg Libraries (如果它们不存在,则不会构建相应的模块)

可选

AAlib-1.4rc5, ALSA-1.2.7, GLU-9.0.2, NASM-2.16.01, PulseAudio-16.1, Pth-2.0.7, a graphical environment, DirectFB, GGI, libcaca, PicoGUI, 和 SVGAlib

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/sdl

安装SDL

运行以下命令安装SDL:

sed -e '/_XData32/s:register long:register _Xconst long:' \
    -i src/video/x11/SDL_x11sym.h &&

./configure --prefix=/usr --disable-static &&

make

现在,作为root用户:

make install &&

install -v -m755 -d /usr/share/doc/SDL-1.2.15/html &&
install -v -m644    docs/html/*.html \
                    /usr/share/doc/SDL-1.2.15/html

测试SDL

如果您愿意,可以使用所包含的测试程序测试SDL的安装。不需要安装任何结果二进制文件来验证安装。执行下面的命令来构建测试程序:

cd test &&
./configure &&
make

你需要手动运行所有的测试程序(它们列在这个目录中的README文件中)。他们中的许多人将需要手动杀死,你将需要把扬声器的音量调到合适的水平。

命令解释

sed -e …: 该命令修复了libX11-1.6.0及更高版本的编译。

--disable-static: 这个开关阻止安装静态版本的库。

--disable-alsa-shared: 该开关禁用动态加载ALSA共享库。

--disable-sdl-dlopen: 这个开关禁止使用dlopen来加载共享对象。动态加载像libpng这样的图像后端库不起作用。

--disable-x11-shared: 该开关禁用动态加载X11共享库。

配置SDL

配置信息

与大多数库一样,无需进行配置,只需保存库目录,即/opt/lib/usr/local/lib应该出现在/etc/ld.so.conf中,以便ldd可以找到共享库。在检查过这种情况后,/sbin/ldconfig应该在以root身份登录时运行。

内容

安装程序: sdl-config

安装库: libSDL.so 和 libSDLmain.a

安装目录: /usr/include/SDL 和 /usr/share/doc/SDL-1.2.15

简短描述

sdl-config   确定应该用于编译和链接使用libSDL的程序的编译和链接标志。

libSDL.so   包含在多个平台上提供对音频、键盘、鼠标、操纵杆、OpenGL 3D硬件和2D帧缓冲区的低级访问的功能。

42.51 SDL2-2.26.3


简介SDL2

Simple DirectMedia Layer Version 2(简称SDL2)是一个跨平台库,旨在使编写多媒体软件(如游戏和模拟器)变得容易。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

SDL2依赖

推荐

libxkbcommon-1.5.0, wayland-protocols-1.31, 和 Xorg Libraries (如果不存在,则不构建相应的模块)

可选

ALSA-1.2.7, Doxygen-1.9.6 (创建文档), ibus-1.5.27, NASM-2.16.01, PulseAudio-16.1, libsamplerate-0.2.2, a graphical environment, DirectFB, fcitx, 和 jack

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/sdl

安装SDL2

运行以下命令安装SDL2:

./configure --prefix=/usr &&
make

如果你已经安装了Doxygen-1.9.6并希望构建html文档,运行以下命令:

pushd docs  &&
  doxygen   &&
popd

注意

如果您希望构建并运行包回归测试,请在构建测试之前不要删除下面的静态库。

现在,作为root用户:

make install              &&
rm -v /usr/lib/libSDL2*.a

如果你构建了文档,以root用户的身份安装它:

install -v -m755 -d        /usr/share/doc/SDL2-2.26.3/html &&
cp -Rv  docs/output/html/* /usr/share/doc/SDL2-2.26.3/html

测试SDL2

如果您愿意,可以使用所包含的测试程序测试SDL2的安装。生成的二进制文件都不需要安装。执行下面的命令来构建测试程序:

cd test &&
./configure &&
make

每个测试程序(它们都列在这个目录中的README文件中)都需要单独运行。他们中的许多人将需要被手动杀死。此外,扬声器的音量需要保持在合适的水平。

命令解释

rm -v /usr/lib/libSDL2*.a: 通常静态库可以通过--disable-static选项来禁用配置,但这会破坏此包中的构建。

--disable-alsa-shared: 该开关禁用动态加载ALSA共享库。

--disable-sdl-dlopen: 这个开关禁止使用dlopen来加载共享对象。动态加载像libpng这样的图像后端库不起作用。

--disable-x11-shared: 该开关禁用动态加载X11共享库。

配置SDL2

配置信息

与大多数库一样,无需进行配置,只需保存库目录,即/opt/lib/usr/local/lib应该出现在/etc/ld.so.conf中,以便ldd可以找到共享库。在检查过这种情况后,/sbin/ldconfig应该在以root身份登录时运行。

内容

安装程序: sdl2-config

安装库: libSDL2.so

安装目录: /usr/include/SDL2, /usr/lib/cmake/SDL2, 和 /usr/share/doc/SDL-2.26.3

简短描述

sdl2-config   确定应该用于编译和链接使用libSDL2的程序的编译和链接标志。

libSDL2.so   包含在多个平台上提供对音频、键盘、鼠标、操纵杆、OpenGL 3D硬件和2D帧缓冲区的低级访问的功能。

42.52 sound-theme-freedesktop-0.8


简介Sound Theme Freedesktop

Sound Theme Freedesktop包包含桌面的声音主题。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/sound-theme-freedesktop

安装Sound Theme Freedesktop

运行以下命令安装Sound Theme Freedesktop:

./configure --prefix=/usr &&
make

这个包没有附带测试套件。

现在,作为root用户:

make install

内容

安装程序: None

安装库: None

安装目录: /usr/share/sounds/freedesktop

42.53 SoundTouch-2.3.2


简介SoundTouch

SoundTouch包包含一个开源的音频处理库,允许独立更改声音节奏、音高和播放速率参数。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/soundtouch

安装SoundTouch

注意

压缩包扩展为’soundtouch’而不是预期的’soundtouch-2.3.2’

运行以下命令安装SoundTouch:

当心

如果按照Xorg-7中指定的方式设置ACLOCAL环境变量,则下面的bootstrap命令会失败。如果使用了ACLOCAL,则需要为此包取消设置ACLOCAL,然后为其他包重置ACLOCAL。

./bootstrap &&
./configure --prefix=/usr \
            --docdir=/usr/share/doc/soundtouch-2.3.2 &&
make

这个包没有附带测试套件。

现在,作为root用户:

make install 

命令解释

--enable-openmp: 这种切换增加了对使用GCC提供的OpenMP实现在多个处理器核心上并行运行算法的支持。

内容

安装程序: soundstretch

安装库: libSoundTouch.so

安装目录: /usr/include/soundtouch 和 /usr/share/doc/soundtouch-2.3.2

简短描述

soundstretch   是一个处理WAV音频文件的程序,通过修改彼此独立的声音节奏,音高和播放速率属性。

libSoundTouch.so   包含SoundTouch的API函数。

42.54 Speex-1.2.1


简介Speex

Speex是一种专门为语音设计的音频压缩格式。它非常适合互联网应用,并提供了大多数其他编解码器所不具备的有用特性。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

额外下载

Speex依赖

必要

libogg-1.3.5

可选

Valgrind-3.20.0

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/speex

安装Speex

这个包由两个独立的压缩包组成。它们需要被独立提取和构建。

运行以下命令安装Speex:

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/speex-1.2.1 &&
make

这个包没有附带测试套件。

作为root用户:

make install

现在解压并安装speexdsp包:

cd ..                          &&
tar -xf speexdsp-1.2.1.tar.gz &&
cd speexdsp-1.2.1             &&

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/speexdsp-1.2.1 &&
make

同样,作为root用户:

make install

命令解释

--disable-static: 这个开关阻止安装静态版本的库。

内容

安装程序: speexenc 和 speexdec

安装库: libspeex.so 和 libspeexdsp.so

安装目录: /usr/include/speex 和 /usr/share/doc/speex-1.2.1

简短描述

speexdec   解码Speex文件并生成WAV或raw文件。

speexenc   使用Speex对WAV或raw文件进行编码。

libspeex.so   提供功能的音频编/解码程序。

libspeexdsp.so   是与Speex编解码器一起使用的语音处理库。

42.55 Taglib-1.13


简介Taglib

Taglib是一个用于读取、写入和操作音频文件标记的库,被Amarok和VLC等应用程序使用。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

Taglib依赖

必要

CMake-3.25.2

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/taglib

安装Taglib

运行以下命令安装Taglib:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      -DBUILD_SHARED_LIBS=ON \
      .. &&
make

这个包没有附带测试套件。

现在,作为root用户:

make install

内容

安装程序: taglib-config

安装库: libtag.so 和 libtag_c.so

安装目录: /usr/include/taglib

简短描述

taglib-config   是一个用于打印有关taglib安装信息的工具。

42.56 v4l-utils-1.22.1


简介v4l-utils

v4l-utils为媒体设备提供了一系列实用程序,允许处理大多数网络摄像头(libv4l)中可用的专有格式,并提供了测试V4L设备的工具。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

v4l-utils依赖

必要

LLVM-15.0.7 (与目标BPF)

推荐

alsa-lib-1.2.8, GLU-9.0.2, libjpeg-turbo-2.1.5.1, 和 Qt-5.15.8

可选

Doxygen-1.9.6SDL2-2.26.3

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/v4l-utils

安装v4l-utils

运行以下命令安装v4l-utils:

./configure --prefix=/usr     \
            --sysconfdir=/etc \
            --disable-static  &&
make

这个包没有附带测试套件。

现在,作为root用户:

make -j1 install

内容

安装程序: cec-compliance, cec-ctl, cec-follower, cx18-ctl, decode_tm6000, dvb-fe-tool, dvb-format-convert, dvbv5-daemon, dvbv5-scan, dvbv5-zap, ir-ctl, ir-keytable, ivtv-ctl, media-ctl, qv4l2, qvidcap, rds-ctl, v4l2-compliance, v4l2-ctl, v4l2-dbg, 和 v4l2-sysfs-path

安装库: libdvbv5.so, libv4l1.so, libv4l2.so, libv4l2rds.so, libv4lconvert.so, v4l1compat.so, 和 v4l2convert.so

安装目录: /etc/rc_keymaps, /lib/udev/rc_keymaps, /usr/include/libdvbv5, 和 /usr/lib/libv4l

简短描述

cx18-ctl   是处理cx18类型设备的工具。

decode_tm6000   解码多路复用格式从TM5600/TM6000 USB设备。

dvb-fe-tool   是数字电视服务的命令行工具。

dvb-format-convert   是一个用于在不同文件格式之间进行转换的工具。它与DVB API的第5版兼容。

dvbv5-scan   是一个命令行频率扫描工具,用于兼容DVB API的第5版的数字电视服务。

dvbv5-zap   是一个命令行调优工具,用于数字电视服务,与第5版DVB API兼容。

ir-keytable   是一个列出远程控制器设备的工具,允许获取/设置IR keycode/scancode表,测试IR产生的事件,并调整其他远程控制器选项。

ivtv-ctl   是一个可以控制许多卡设置的实用程序,例如将调谐器的输入更改为svideo或composite,设置视频分辨率或更改视频模式(PAL, SECAM, NTSC)。

media-ctl   是一个用于配置V4L2设备的实用程序。

qv4l2   用于测试video4linux捕获设备。

qvidcap   用于从V4L2设备捕获视频。

rds-ctl   是一个从V4L2无线电设备解码原始RDS数据的实用程序,提供了访问接收到的RDS信息的简单方法。

v4l2-compliance   是一个合规性测试工具。

v4l2-ctl   是一个从cmdline控制v4l2控件的工具。

v4l2-dbg   是一个直接获取和设置v4l2设备寄存器的工具。

v4l2-sysfs-path   检查机器上安装的媒体设备和相应的设备节点。

42.57 x264-20230215


简介x264

x264包提供了一个将视频流编码为H.264/MPEG-4 AVC格式的库。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

x264依赖

推荐

NASM-2.16.01

可选

ffms2, gpacliblsmash

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/x264

安装x264

运行以下命令安装x264:

./configure --prefix=/usr \
            --enable-shared \
            --disable-cli &&
make

这个包没有附带测试套件。

现在,作为root用户:

make install

命令解释

--disable-cli: 此开关禁用构建命令行编码器,这是冗余的,因为大多数输入格式都需要FFmpeg。

--disable-asm: 如果没有安装NASM,请使用这个开关。

内容

安装程序: None

安装库: libx264.so

安装目录: None

简短描述

libx264.so   提供了将视频流编码为H.264/MPEG-4 AVC格式的函数。

42.58 x265-20230215


简介x265

x265包提供了一个库,用于将视频流编码为H.265/HEVC格式。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

x265依赖

必要

CMake-3.25.2

推荐

NASM-2.16.01

可选

numactl

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/x265

安装x265

运行以下命令安装x265:

mkdir bld &&
cd    bld &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DGIT_ARCHETYPE=1           \
      -Wno-dev ../source          &&
make

这个包没有附带测试套件。

现在,作为root用户:

make install &&
rm -vf /usr/lib/libx265.a 

命令解释

-DGIT_ARCHETYPE=1: Upstream不再提供发布。BLFS正在使用git快照,但如果构建器没有安装git,则构建将不会安装没有这个开关的共享库或pkgconfig文件。

-Wno-dev: 此开关用于抑制针对包开发人员的警告。

rm -vf /usr/lib/libx265.a: BLFS不推荐使用静态库。

内容

安装程序: x265

安装库: libx265.so

安装目录: None

简短描述

libx265.so   提供了将视频流编码为H.265/HEVC格式的函数。

42.59 xine-lib-1.2.13


简介Xine Libraries

Xine Libraries包包含Xine库。这对于与外部插件进行接口非常有用,这些插件允许信息流从源流向音频和视频硬件。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

Xine Libraries依赖

必要

a graphical environment, FFmpeg-5.1.2, 且至少有以下之一: ALSA-1.2.7, PulseAudio-16.1, 或 JACK

推荐

libdvdnav-6.1.1

可选

AAlib-1.4rc5, FAAD2-2.10.1, FLAC-1.4.2, gdk-pixbuf-2.42.10, GLU-9.0.2, ImageMagick-7.1.0-61, liba52-0.7.4, libdvdcss-1.4.3, libmad-0.15.1b, libmng-2.0.3, libnsl-2.0.0, libtheora-1.1.1, libva-2.17.0 (requires GLU-9.0.2), libvdpau-1.5, libvorbis-1.3.7, libvpx-1.13.0, Mesa-22.3.5, Samba-4.17.5, SDL-1.2.15, Speex-1.2.1, Doxygen-1.9.6 (创建API文档), v4l-utils-1.22.1 DirectFB, libbluray, libcaca, libdca, libFAME, libmodplug, musepack, VCDImager, 和 WavPack,

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/xine-lib

安装Xine Libraries

首先,修复使用binutils-2.39构建此包的问题:

sed -e '/xine_set_flags/s/XINE_PROTECTED//' -i include/xine.h

运行以下命令安装Xine Libraries:

./configure --prefix=/usr          \
            --disable-vcd          \
            --with-external-dvdnav \
            --docdir=/usr/share/doc/xine-lib-1.2.13 &&
make

要创建API文档,必须安装Doxygen并执行以下命令:

doxygen doc/Doxyfile

这个包没有附带测试套件。

现在,作为root用户:

make install

注意

在安装时,Makefile会做一些额外的链接。如果您在/usr中没有Xorg,则需要为root用户定义LIBRARY_PATH变量。如果使用sudo假设root,请使用-E选项为安装过程传递当前环境变量。

如果你构建了API文档,以root用户的身份执行以下命令来安装它:

install -v -m755 -d /usr/share/doc/xine-lib-1.2.13/api &&
install -v -m644    doc/api/* \
                    /usr/share/doc/xine-lib-1.2.13/api

命令解释

--disable-vcd: 在没有安装VCDImager的情况下编译Xine Lib需要这个开关。如果您已经安装了VCDImager,请删除此选项。

--with-external-dvdnav: 这个开关是必需的,因为内部库不能解密DVD。

--docdir=/usr/share/doc/xine-lib-1.2.13: 这个开关会导致文档被安装到一个版本化目录中,而不是默认的/usr/share/doc/xine-lib

--disable-vaapi: 如果安装了libva-2.17.0而没有安装GLU-9.0.2,则使用此开关,以防止构建失败。

内容

安装程序: xine-config 和 xine-list-1.2

安装库: libxine.so 以及在/usr/lib/xine/plugins/2.8下的大量插件模块和视频扩展

安装字体: 输出显示引擎字体位于/usr/share/xine-lib/fonts

安装目录: /usr/include/xine, /usr/lib/xine, /usr/share/xine-lib, 和 /usr/share/doc/xine-lib-1.2.13

简短描述

xine-config   为试图链接到xine库的程序提供信息。

xine-list-1.2   用于从xine-lib获取支持的文件类型信息。

libxine.so   提供处理音频/视频文件的API。

42.60 XviD-1.3.7


简介XviD

XviD是一个符合MPEG-4标准的视频编解码器。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

XviD依赖

可选

yasm-1.3.0NASM-2.16.01

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/xvid

安装XviD

注意

这个压缩包会扩展到xvidcore,而不是预期的xvidcore-1.3.7

运行以下命令安装XviD:

cd build/generic &&
sed -i 's/^LN_S=@LN_S@/& -f -v/' platform.inc.in &&

./configure --prefix=/usr &&
make

这个包没有附带测试套件。

现在,作为root用户:

sed -i '/libdir.*STATIC_LIB/ s/^/#/' Makefile &&
make install &&

chmod -v 755 /usr/lib/libxvidcore.so.4.3 &&
install -v -m755 -d /usr/share/doc/xvidcore-1.3.7/examples &&
install -v -m644 ../../doc/* /usr/share/doc/xvidcore-1.3.7 &&
install -v -m644 ../../examples/* \
    /usr/share/doc/xvidcore-1.3.7/examples

命令解释

sed -i ‘s/^LN_S=@LN_S@/& -f -v/’ platform.inc.in: 修复重新安装或升级make install过程中的错误。

sed -i ‘/libdir.*STATIC_LIB/ s/^/#/’ Makefile: 该命令禁止安装静态库。

内容

安装程序: None

安装库: libxvidcore.so

安装目录: /usr/share/doc/xvidcore-1.3.7

简短描述

libxvidcore.so   提供了编码和解码大多数MPEG-4视频数据的功能。

上一页      主目录      下一页