Multimedia and web

Multimedia and web

The multimedia category1 and the list of (Internet) applications2 provides broad information on different software you can try. During the installation and customization of the desktop environment in the previous guide you may have noticed that I like to remove some of the Xfce applications. This is on purpose as basic multimedia capabilities and essential internet applications are going to be discussed here as follows:

  1. Configuring the basic #Sound system
  2. #Media player, codecs and tools installation
  3. Playing and burning #Optical discs
  4. Applications for #Image viewing and editing
  5. Setting up essential #Internet applications

Sound system

Since ALSA3 modules are included in the Linux kernel no manual installation is necessary. The alsa-utils package provides amixer, which is required for unmuting the channels, as they are muted by default. Hence, I install the package via:

sudo pacman -S alsa-utils

and unmute typical channels of built-in audio interfaces:

amixer sset Master unmute
amixer sset Speaker unmute
amixer sset Headphone unmute

PulseAudio clients

PulseAudio4 (PA) or just pulse is a general purpose sound server providing modules for extended functionalities, such as support for bluetooth audio. However, PipeWire also implements its features and is a simple and more modern successor to it. To manage pulse clients a replacement service can be installed as follows:

sudo pacman -S pipewire-pulse

Normally, no further configuration is needed. The service is enabled by default and will start on re-login or after rebooting. I start it immediatly executing:

systemctl --user start pipewire-pulse.service

Controls and routing

To control the volume and other levels graphically I can use alsamixer in a terminal or open the Xfce panel applet xfce4-pulseaudio-plugin5 leveraging pavucontrol. Both packages might have been installed already in the previous guide due to dependencies of the xfce4-goodies package:

sudo pacman -S pavucontrol xfce4-pulseaudio-plugin

In the Items tab of panel preferences, I add the applet PulseAudio-Module. Additionally, I like to activate multimedia key support in the preferences of the applet for keyboard volume control. If this does not work for you, consider using pactl commands and bind these to specific keys in the Application shortcuts tab of the Keyboard preferences.

In addition, I install qpwgraph to visualize applications, inputs and outputs as well as their connections. This is an easy to use graphical way to route signals and inspect current connections:

sudo pacman -S qpwgraph

Media player

As a substitute to Parole I like mpv to be used as default media player to watch streams by leveraging the terminal app yt-dlp, for example. In addition, the popular VLC media player is employed for other use cases such as DVD menus and media recording.

I Install their packages by invoking:

sudo pacman -S mpv vlc yt-dlp
⚠️
Again, keep attention at the dialog with preset selection and opt to install pipewire-jack at first. Details on JACK support are described in the pro-audio guide.

mpv configuration

Mpv can be configured to use hardware video acceleration, to create reproducible screenshots and choose the best quality open codecs (VP9 and Opus) first during streaming. I create a user configuration file $HOME/.config/mpv/mpv.conf and set the aforementioned options using the following contents:

~/.config/mpv/mpv.conf
hwdec=auto
screenshot-template="%F - [%P]v%#01n"
ytdl-format="((bestvideo[vcodec^=vp9]/bestvideo)+(bestaudio[acodec=opus]/bestaudio[acodec=vorbis]/bestaudio[acodec=aac]/bestaudio))/best"

Custom profiles and scripts maybe considered for any more advanced features and use cases.

Codecs

Codecs and containers are diverse and broadly supported by mpv and VLC media player. I like to use FLAC and Opus for audio, and VP96 and Matroska7 (MKV) for video. However, MP3 is still a popular audio format and H.264 or the High Efficiency Video Coding (HVEC/H.265) the for MP4 container8 is a de facto video format standard. Additionally, the Advanced Audio Coding (AAC) and Xvid codecs provide interoperability with older media. For this reason, I install the following packages, if they are not already installed due to dependencies:

sudo pacman -S faac flac lame libvorbis opus
sudo pacman -S libtheora libvpx x264 x265 xvidcore

Optical discs

Playing CD, DVD and Blu-ray

Playing CD, DVD and Blu-ray media requires access libraries installed as follows if not provided by dependencies already:

sudo pacman -S libaacs libbluray libcdio libdvdcss libdvdnav libdvdread libmpeg2
ℹ️
Adding the user account to the optical group is not necessary anymore to play optical media.

Rip Audio CDs

By default Audio CDs can be mounted in the same way other block devices are mounted. The Compact Disc Digital Audio (CDDA) tracks are shown as WAV files using CDfs. You can copy those WAV9 files to rip the Audio CD and convert them hereafter (see Post-processing). I install kid3-qt for tagging the audio files with Kid3:

sudo pacman -S kid3-qt

CD, DVD and Blu-ray burning

Although Xfce comes with Xfburn, in my oppinion Brasero provides essential features regarding audio CD creation (such as CD-Text10 editing). Therefor, I install the package brasero:

sudo pacman -S brasero

Image viewing and editing

A very fast image viewer with support for RAW image format11 and capable of typical modifications (crop, resize, rotate) is nomacs and provided by AUR:

yay -Sy nomacs

If nomacs does not appeal to you, find many other image viewers in the List of applications in the ArchWiki.

Graphics editing

For more graphics editing I use GIMP, Inkscape and depending on the final media sometimes Scribus (desktop publishing). Their packages are installed using:

sudo pacman -S gimp inkscape scribus

To use advanced filters and decorations I use Gmic. Additionally, for PDF support in GIMP, it’s necessary to install the package poppler-glib:

sudo pacman -S gimp-plugin-gmic poppler-glib

Creating new projects from templates in Inkscape also requires the following installation of a Python library if it is not installed due to dependencies:

sudo pacman -S python-lxml

QR code generation

Instead of using web services like this one to generate a QR code12, you can use the qrencode command after installation:

sudo pacman -S qrencode

For example, to create a QR code for https://example.org as PNG graphic using 10 dots (pixels) per module run the following command:

qrencode --output=example_url_qr-code.png --size=10 'https://example.org'

Meta data stripping

Other editing tasks of images include the stripping of meta data (capture device information and GPS positional data. This can be achieved by using the features of the exiftool, a Perl script, which is installed via:

sudo pacman -S perl-image-exiftool

To strip all meta data of images in the current directory just run:

exiftool -all= *

The exiftool will append _original to the original image file backups.

Internet applications

Browsing a website, receiving and sending email or using instant messaging are fairly common Internet applications and almost indispensable these days.

Web browser

Though Firefox by Mozilla is a standards and privacy respecting web browser, I prefer LibreWolf for even greater privacy, security and freedom. It will be used as a primary web browser. I install the librewolf-bin package as follows:

yay -Sy librewolf-bin

Spell checking

In LibreWolf, hunspell and its directories for German are installed as follows to provide spell checking:

sudo pacman -S hunspell hunspell-de

Blob download

Some websites embed content, such as videos, in blob format. To download the content anyway I use Video Download Helper. The add-on is installed in LibreWolf and the companion application is provided in the AUR as vdhcoapp-bin package:

yay -Sy vdhcoapp-bin

Email client

Thunderbird, as a popular email client besides other communication capabilities, manages retrieving and sending of emails as well as news feeds. Similar to Firefox its GUI translation is provided by a language pack (German in my case) and both packages are installed using:

sudo pacman -S thunderbird thunderbird-i18n-de
ℹ️
Spell-checking in Thunderbird is also provided by hunspell and its directories as previously described in #Spell checking.

Instant messaging

IRC client

Text-based chat known as Internet Relay Chat13 (IRC) has already been used since the early years of the internet and is still favored in many communities (see Arch IRC channels). For this reason, I install HexChat:

sudo pacman -S hexchat

Other clients

For Matrix, XMPP (previously Jabber) or Signal packages for clients are provided (sometimes through AUR). Element is a reference Matrix client and the element-desktop package can choosed for installation. For XMPP, I prefer Dino, which offers Off-the-Record Messaging and is very streamlined. The package name for Signal is signal-desktop and it needs to be connected to the App installed on a smartphone or tablet. To install all these packages I use the following command:

sudo pacman -S dino element-desktop signal-desktop
ℹ️
A comparison of messengers focused on privacy and security and can be found in the Messenger-Matrix.

The computer is now setup for basic daily tasks and it’s time to have some fun. Thus, the next guide deals with setting up a professional audio environment. If this is not your use case, go back to the overview and select another guide.


  1. Category:Multimedia in the ArchWiki ↩︎

  2. List_of_applications/Internet in the ArchWiki ↩︎

  3. Advanced Linux Sound Architecture in the ArchWiki ↩︎

  4. PulseAudio in the ArchWiki ↩︎

  5. The xfce4-pulseaudio-plugin in the Xfce Developer Wiki ↩︎

  6. VP9 in the Wikipedia ↩︎

  7. Matroska in the Wikipedia ↩︎

  8. MP4 file format in the Wikipedia ↩︎

  9. WAV in the Wikipedia ↩︎

  10. CD-Text in the Wikipedia ↩︎

  11. Raw image format in the Wikipedia ↩︎

  12. QR code in the Wikipedia ↩︎

  13. Internet Relay Chat in the Wikipedia ↩︎

Last updated on