Multimedia Apps for the Linux Console

3107

When last we met, we learned that the Linux console supports multimedia. Yes, really! You can enjoy music, movies, photos, and even read PDF files without being in an X session with MPlayer, fbi, and fbgs. And, as a bonus, you can enjoy a Matrix-style screensaver for the console, CMatrix.

You will probably have make some tweaks to your system to make this work. The examples used here are for Ubuntu Linux 16.04.

MPlayer

You’re probably familiar with the amazing and versatile MPlayer, which supports almost every video and audio format, and runs on nearly everything, including Linux, Android, Windows, Mac, Kindle, OS/2, and AmigaOS. Using MPLayer in your console will probably require some tweaking, depending on your Linux distribution. To start, try playing a video:

$ mplayer 

If it works, then hurrah, and you can invest your time in learning useful MPlayer options, such as controlling the size of the video screen. However, some Linux distributions are managing the framebuffer differently than in the olden days, and you may have to adjust some settings to make it work. This is how to make it work on recent Ubuntu releases.

First, add yourself to the video group.

Second, verify that /etc/modprobe.d/blacklist-framebuffer.conf has this line: #blacklist vesafb. It should already be commented out, and if it isn’t then comment it. All the other module lines should be un-commented, which prevents them from loading. Side note: if you want to dig more deeply into managing your framebuffer, the module for your video card may give better performance.

Add these two modules to the end of /etc/initramfs-tools/modules, vesafb and fbcon, then rebuild the initramfs image:

$ sudo nano /etc/initramfs-tools/modules
    # List of modules that you want to include in your initramfs.
    # They will be loaded at boot time in the order below.
    fbcon
    vesafb
    
$ sudo update-initramfs -u

fbcon is the Linux framebuffer console. It runs on top of the framebuffer and adds graphical features. It requires a framebuffer device, which is supplied by the vesafb module.

Now you must edit your GRUB2 configuration. In /etc/default/grub you should see a line like this:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

It may have some other options, but it should be there. Add vga=789:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash vga=789"

Reboot and enter your console (Ctrl+Alt+F1), and try playing a video. This command selects the fbdev2 video device; I haven’t learned yet how to know which one to use, but I had to use it to play the video. The default screen size is 320×240, so I scaled it to 960:

$ mplayer -vo fbdev2 -vf scale -zoom -xy 960 AlienSong_mp4.mov

And behold Figure 1. It’s grainy because I have a low-fi copy of this video, not because MPlayer is making it grainy.

Figure 1: Playing a video.

MPLayer plays CDs, DVDs, network streams, and has a giant batch of playback options, which I shall leave as your homework to explore.

fbi Image Viewer

fbi, the framebuffer image viewer, comes in the fbida package on most Linuxes. It has native support for the common image file formats, and uses convert (from Image Magick), if it is installed, for other formats. Its simplest use is to view a single image file:

$ fbi filename

Use the arrow keys to scroll a large image, + and – to zoom, and r and l to rotate 90 degress right and left. Press the Escape key to close the image. You can play a slideshow by giving fbi a list of files:

$ fbi --list file-list.txt

fbi supports autozoom. With -a fbi controls the zoom factor. --autoup and --autodown tell fbi to only zoom up or down. Control the blend time between images with --blend [time], in milliseconds. Press the k and j keys to jump behind and ahead in your file list.

fbi has commands for creating file lists from images you have viewed, and for exporting your commands to a file, and a host of other cool options. Check out man fbi for complete options.

CMatrix Console Screensaver

The Matrix screensaver is still my favorite (Figure 2), second only to the bouncing cow. CMatrix runs on the console. Simply type cmatrix to start it, and Ctrl+C stops it. Run cmatrix -s to launch it in screensaver mode, which exits on any keypress. -C changes the color. Your choices are green, red, blue, yellow, white, magenta, cyan, and black.

Figure 2: Matrix screensaver.

CMatrix supports asynchronous key presses, which means you can change options while it’s running.

-B is all bold text, and -B is partially bold.

fbgs PDF Viewer

It seems that the addiction to PDF documents is pandemic and incurable, though PDFs are better than they used to be, with live hyperlinks, copy-paste, and good text search. The fbgs console PDF viewer is part of the fbida package. Options include page size, resolution, page selections, and most fbi options, with the exceptions listed in man fbgs. The main option I use is page size; you get -l, xl, and xxl to choose from:

$ fbgs -xl annoyingpdf.pdf

Learn more about Linux through the free “Introduction to Linux” course from The Linux Foundation and edX.