Multimedia & Gaming

By admin, 2 April, 2020

An open format is a file format for storing digital data, defined by a published specification usually maintained by a standards organization, and which can be used and implemented by anyone. For example, an open format can be implemented by both proprietary and free and open-source software, using the typical software licenses used by each. In contrast to open formats, closed formats are considered trade secrets. Open formats are also called free file formats if they are not encumbered by any copyrights, patents, trademarks or other restrictions (for example, if they are in the public domain) so that anyone may use them at no monetary cost for any desired purpose:


  • APNG: It allows for animated PNG files that work similarly to animated GIF files.
  • AVIF: An image format using AV1 compression.
  • FLIF: Free Lossless Image Format.
  • GBR: a 2D binary vector image file format, the de facto standard in the printed circuit board (PCB) industry
  • GIF: CompuServe's Graphics Interchange Format (openly published specification, but patent-encumbered by a third party; became free when patents expired in 2004)
  • JPEG 2000: an image format standardized by ISO/IEC
  • MNG: moving pictures, based on PNG
  • OpenEXR: a high dynamic range imaging image file format, released as an open standard along with a set of software tools created by Industrial Light and Magic (ILM).
  • PNG: a raster image format standardized by ISO/IEC
  • SVG: a vector image format standardized by W3C
  • WebP: image format developed by Google
  • XPM: image file format used by the X Window System


  • ALAC: lossless audio codec, previously a proprietary format of Apple Inc.
  • FLAC: lossless audio codec
  • DAISY Digital Talking Book: a talking book format
  • Musepack: an audio codec
  • MP3: lossy audio codec, previously patented
  • Ogg: container for Vorbis, FLAC, Speex and Opus (audio formats) & Theora (a video format), each of which is an open format
  • Opus: a lossy audio compression format developed by the IETF. Suitable for VoIP, videoconferencing (just audio), music transmission over the Internet and streaming applications (just audio).
  • Speex: speech codec
  • Vorbis: a lossy audio compression format.
  • WavPack: "Hybrid" (lossless/lossy) audio codec


  • Dirac: a video compression format supporting both lossless and lossy compression
  • Matroska (mkv): container for all type of multimedia formats (audio, video, images, subtitles)
  • WebM: a video/audio container format
  • Theora: a lossy video compression format.

List of Open-source Codecs

This is a listing of open-source codecs—that is, open-source software implementations of audio or video coding formats.

Audio Codecs

  • FLAC: Lossless codec developed by Xiph.Org Foundation.
  • LAME: Lossy compression (MP3 format).
  • TooLAME/TwoLAME: Lossy compression (MP2 format).
  • Musepack: Lossy compression; based on MP2 format, with many improvements.
  • Speex: Low bitrate compression, primarily voice; developed by Xiph.Org Foundation. Deprecated in favour of Opus according to
  • CELT: Lossy compression for low-latency audio communication
  • libopus: A reference implementation of the Opus format, the IETF standards-track successor to CELT. (Opus support is mandatory for WebRTC implementations.)
  • libvorbis: Lossy compression, implementation of the Vorbis format; developed by Xiph.Org Foundation.
  • iLBC: Low bitrate compression, primarily voice
  • iSAC: Low bitrate compression, primarily voice; (free when using the WebRTC codebase)
  • TTA: Lossless compression
  • WavPack: Hybrid lossy/lossless
  • Bonk: Hybrid lossy/lossless; supported by fre:ac (formerly BonkEnc)
  • Apple Lossless: Lossless compression (MP4)
  • Fraunhofer FDK AAC: Lossy compression (AAC)
  • FFmpeg: codecs in the libavcodec library, e.g. AC-3, AAC, ADPCM, PCM, Apple Lossless, FLAC, WMA, Vorbis, MP2, etc.
  • FAAD2: open-source decoder for Advanced Audio Coding. There is also FAAC, the same project's encoder, but it is proprietary (but still free of charge).
  • libgsm: Lossy compression (GSM 06.10)
  • opencore-amr: Lossy compression (AMR and AMR-WB)
  • liba52: a free ATSC A/52 stream decoder (AC-3)
  • libdca: a free DTS Coherent Acoustics decoder
  • Codec2: Low bitrate compression, primarily voice

Video Codecs

  • x264: H.264/MPEG-4 AVC implementation. x264 is not a codec (encoder/decoder); it is just an encoder (it cannot decode video).
  • OpenH264: H.264 baseline profile encoding and decoding
  • x265: An encoder based on the High Efficiency Video Coding (HEVC/H.265) standard.
  • Xvid: MPEG-4 Part 2 codec, compatible with DivX
  • libvpx: VP8 and VP9 implementation; formerly a proprietary codec developed by On2 Technologies, released by Google under a BSD-like license in May 2010.
  • FFmpeg codecs: Codecs in the libavcodec library from the FFmpeg project (FFV1, Snow, MPEG-1, MPEG-2, MPEG-4 part 2, MSMPEG-4, WMV2, SVQ1, MJPEG, HuffYUV and others). Decoders in the libavcodec (H.264, SVQ3, WMV3, VP3, Theora, Indeo, Dirac, Lagarith and others).
  • Lagarith: Video codec designed for strong lossless compression in RGB(A) colorspace (similar to ZIP/RAR/etc.)
  • libtheora: A reference implementation of the Theora format, based on VP3, part of the Ogg Project
  • Dirac as dirac-research: a wavelet based codec created by the BBC Research, and Schrödinger, an implementation developed by David Schleef.
  • Huffyuv: Lossless codec from BenRG
  • Daala: Experimental Video codec which was under development by the Xiph.Org Foundation and finally merged into AV1.
  • Thor: Experimental royalty free video codec which was under development by Cisco Systems, and merged technologies into AV1.
  • Turing: A High Efficiency Video Coding (HEVC/H.265) encoder implemented by BBC Research.
  • libaom: Reference implementation for the royalty free AV1 video coding format by AOMedia, inheriting technologies from VP9, Daala and Thor.


A library for constructing graphs of media-handling components. The applications it supports range from simple Ogg/Vorbis playback, audio/video streaming to complex audio (mixing) and video (non-linear editing) processing. Applications can take advantage of advances in codec and filter technology transparently. Developers can add new codecs and filters by writing a simple plugin with a clean, generic interface.

LMMS: aims to be a free alternative to popular (but commercial and closed-source) programs like FruityLoops, Cubase and Logic giving you the ability of producing music with your computer by creating cool loops, synthesizing and mixing sounds, arranging samples, having more fun with your MIDI-keyboard and much more.

Video Gaming

WineHQ: a compatibility layer capable of running Windows applications on several POSIX-compliant operating systems, such as Linux, macOS, & BSD. Instead of simulating internal Windows logic like a virtual machine or emulator, Wine translates Windows API calls into POSIX calls on-the-fly, eliminating the performance and memory penalties of other methods and allowing you to cleanly integrate Windows applications into your desktop.

PlayOnLinux: a front-end for wine. It permits you to easily install Windows Games and software on Linux. It is advised to have a functional internet connection.

Pars Enterprise encourage Its users to play around with Pars Enterprise Platforms to enjoy the taste of Open-source gaming as both online and offline mode.

There are many benefits by playing with Pars Enterprise Platforms:

  • Available latest Intel – Radeon – Nvidia Open-source drivers or firmwares via package management.
  • Supporting NVIDIA optimus technology for discrete graphic cards to manage power usage.
  • Configured gaming utilities and application such as voice system, steam and a package contains of most popular Open-source video games.

Mumble: low-latency, high quality voice chat program for gaming. It features noise suppression, encrypted connections for both voice and instant messaging, automatic gain control and low latency audio with support for multiple audio standards. Mumble includes an in-game overlay compatible with most open-source and commercial 3D applications. Mumble is just a client and uses a non-standard protocol. You will need a dedicated server to talk to other users. Server functionality is provided by the package "mumble-server".

NVIDIA Optimus Support

Bumblebee is an effort to make NVIDIA Optimus enabled laptops work in GNU/Linux systems. These laptops are built in such a way that the NVIDIA graphics card can be used on demand so that battery life is improved and temperature is kept low.

It disables the discrete graphics card if no client is detected, and starts an X server making use of NVIDIA card if requested then let software GL implementations (such as VirtualGL) copy frames to the visible display that runs on the integrated graphics. The ability to use discrete graphics depends on the driver: open source nouveau and proprietary nvidia.

Primus is a shared library that provides OpenGL and GLX APIs and implements low-overhead local-only client-side OpenGL offloading via GLX forking, similar to VirtualGL. It intercepts GLX calls and redirects GL rendering to a secondary X display, presumably driven by a faster GPU. On swapping buffers, rendered contents are read back using a PBO and copied onto the drawable it was supposed to be rendered on in the first place.

Primus is currently intended to be used alongside Bumblebee and provides a drop-in replacement for optirun (i.e. "primusrun").

Diagnostic tools to manage graphic cards:

  • sudo lspci | grep VGA (Detect Multiple Graphics Cards)
  • sudo nvidia-xconfig (X Configure for NVIDIA Driver)
  • sudo optirun glxgears info (Testing Command for Bumblebee)
  • sudo cat /proc/acpi/bbswitch (Checking Status)
  • sudo tee /proc/acpi/bbswitch

NVIDIA Settings Panel

The nvidia-settings utility is a tool for configuring the NVIDIA Linux graphics driver. It operates by communicating with the NVIDIA X driver, querying and updating state as appropriate. This communication is done with the NV-CONTROL X extension.

Values such as brightness and gamma, XVideo attributes, temperature, and OpenGL settings can be queried and configured via nvidia-settings.

FreeBSD Graphics Driver

So how do you identify your processor?

If you don't know your processors name, run the following command:

% dmesg | grep CPU:
CPU: Intel(R) Core(TM) i7-4600U CPU @ 2.10GHz (2693.83-MHz K8-class CPU)

Decide Which Driver to Use

The numbering in the table below shows the Intel Core i3, Core i5 and Core i7 family of processors, including it's mobile and desktop parts:

2xxx Sandy Bridge (i915kms.ko in base)

3xxx Ivy Bridge (i915kms.ko in base)

4xxx Haswell (i915kms.ko in base)

5xxx Broadwell (i915kms.ko from ports graphics/drm-next-kmod)

6xxx Skylake (i915kms.ko from ports graphics/drm-next-kmod)

7xxx Kaby Lake (i915kms.ko from ports graphics/drm-next-kmod)

(I'm going a little deeper into, how you identify your Pentium, Celeron or Xeon processor in a minute)

First, for those who got one of the above processors and can't wait...

If your processor is supported by the i915kms.ko driver in the base system, add the following lines to /etc/rc.conf


In case you have created a xorg.conf, remove it and reboot. That's it. or...

If your processor is supported by the i915kms.ko driver from the ports, add the following lines to /etc/rc.conf


In case you have created a xorg.conf, remove it and reboot. That's it.

Example Configuration For Post Broadwell System

A common configuration is a user who has an Intel laptop with a Kabylake Intel i915 HD Graphics chip. To enable the chipset one would follow these instructions:

Install the drm-kmod package

# sudo pkg install drm-kmod

Take note of the post-install package message as it contains important information - specifically add this to your /etc/rc.conf or /etc/rc.conf.d/intel file:


Ensure your UID is a member of the "video" group.

Restart your system; you should see the i915kms.ko get loaded and a flash on your console as we switch over to the new display driver.

Start Xorg via your usual method (i.e. startx, GDM, etc.)

Note: For systems that are able to take advantage of this updated DRM code you should not have to prepare an xorg.conf configuration file, nor should you install xf86-video-intel port. Our Xorg should autodetect the driver, and utilize the modesetting Xorg driver and glamor driver.

AMD Graphics

AMD based GPUs are also supported using the drm-kmod port or package. Unlike the i915 Intel graphics driver there are two separate modules available for AMD devices based on their generation. The modules are named:

  • amdgpu
  • radeonkms

To view the AMD graphics support matrix view this page. The Xorg project also has a great resource on decoding AMD marketing names to engineering friendly names here.

It is important to note that there is currently a conflict with both AMD drivers and the EFI frambuffer. The current workaround, when booting via UEFI on these systems, is to disable the framebuffer via /boot/loader.conf:


This will have the side effect of there being no console output until either the amdgpu or radeonkms kernel driver is loaded. Please see this Github issue for more context.

One final note - there is a patch available here that will allow you to use Vulkan, OpenCL, Xwayland and OpenMW when using Wayland.


AMD GPU is the kernel module that can be used to support post-HD7000 or Tahiti GPUs. To enable graphics on these systems you would do the following:

Install the drm-kmod package

# sudo pkg install drm-kmod

Take note of the post-install package message as it contains important information - specifically add this to your /etc/rc.conf or /etc/rc.conf.d/amd file:


Ensure that your UID is a member of the "video" group.

Restart your system; you should see the amdgpu.ko get loaded and a flash on your console as we switch over to the new display driver.

Start Xorg via your usual method (i.e. startx, GDM, etc.)

Radeon KMS

Radeon KMS is a distinct driver intended for older AMD based GPUs that are available in pre-HD7000 or Tahiti GPUs. To enable graphics on systems with these GPUs you would do the following:

Install the drm-kmod package

# sudo pkg install drm-kmod

Take note of the post-install package message as it contains important information - specifically add this to your /etc/rc.conf or /etc/rc.conf.d/radeon file:


Ensure that your UID is a member of the "video" group.

Restart your system; you should see the radeonkms.ko get loaded and a flash on your console as we switch over to the new display driver.

Start Xorg via your usual method (i.e. startx, GDM, etc.)

FreeBSD Xorg Configs

Editing /usr/local/etc/X11/xorg.conf with Administration Privilege to:

In case of failures at boot to start graphical environment the following parameters can be helpful for the most built-in GPU Intel processors.


Section "ServerLayout"
Identifier " Configured"
Screen 0 "Screen0" 0 0
Section "Files"
ModulePath "/usr/local/lib/xorg/modules"
FontPath "/usr/local/lib/X11/fonts/misc/"
FontPath "/usr/local/lib/X11/fonts/TTF/"
FontPath "/usr/local/lib/X11/fonts/OTF/"
FontPath "/usr/local/lib/X11/fonts/Type1/"
FontPath "/usr/local/lib/X11/fonts/100dpi/"
FontPath "/usr/local/lib/X11/fonts/75dpi/"
Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
Section "Device"
Identifier "Card0"
Driver "intel"
BusID "PCI:0:2:0"
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
Option "TwinView" "0"
Option "SWCursor" "on"
Option "HWCursor" "off"
SubSection "Display"
Option "DynamicTwinView" "false"
Depth 24
Section "Extensions"
Option "Composite" "Disable"

What is 0 A.D.?

0 A.D. is a free, open-source, cross-platform real-time strategy (RTS) game of ancient warfare. In short, it is a historically-based war/economy game that allows players to relive or rewrite the history of Western civilizations, focusing on the years between 500 B.C. and 500 A.D. The project is highly ambitious, involving state-of-the-art 3D graphics, detailed artwork, sound, and a flexible and powerful custom-built game engine.