Phonon (software)

Last updated
Phonon
Developer(s) Matthias Kretz u.a. [ citation needed ]
Initial releaseJanuary 11, 2008;16 years ago (2008-01-11) [1]
Stable release
4.11.1 / September 26, 2019;4 years ago (2019-09-26) [2]
Repository invent.kde.org/libraries/phonon
Written in C++
Operating system Linux, BSD, macOS, Solaris, Windows
Type Multimedia framework
License GNU Lesser General Public License 2.1
Website userbase.kde.org/Phonon

Phonon is the multimedia API provided by KDE and is the standard abstraction for handling multimedia streams within KDE software and also used by several Qt applications.

Contents

Phonon was originally created to allow KDE and Qt software to be independent of any single multimedia framework such as GStreamer or xine and to provide a stable API for a major version's lifetime. It was done for various reasons: to create a simple KDE/Qt style multimedia API, to better support native multimedia frameworks on Windows and macOS, and to fix problems of frameworks becoming unmaintained or having API or ABI instability.

For example, a file can be played in four lines of C++ code, [3] compared to 30 lines in the old audio framework for KDE (aRts) [4]

Phonon::MediaObject*media=newPhonon::MediaObject(this);createPath(media,newPhonon::AudioOutput(Phonon::MusicCategory,this));media->setCurrentSource(QUrl("/tmp/example.wav"));media->play();

Phonon is not designed to have every conceivable multimedia feature, but rather as a simple way to perform common functions of computer media players. Developers that require more control over a given media backend than Phonon can provide are recommended to use the native media API or the GStreamer API on systems for which it is available. [4]

History

The idea behind Phonon started at aKademy 2004 in Ludwigsburg near Stuttgart (Germany), where a new multimedia API had to be chosen to replace aRts. No consensus was reached but a few developers got together and decided to try to develop a new framework with multiple backends. The earliest version was called KDEMM (KDE MultiMedia) and was only supported by JuK and Amarok. Matthias Kretz continued to work single handed on the project as part of his university thesis, The project changed name once more but in February 2006 the name Phonon was finally chosen. The first official release was part of KDE 4.0 in January 2008, the same year Phonon was adopted by Qt and released as part of Qt 4.4. Even though support for Phonon in Qt will continue for the 4.x series, Qt has already replaced Phonon with QtMultimedia and QtMobility. [5] [6] [7]

Features

Phonon Work Phonon-audiodeviceconfig.png
Phonon Work

Backends

See also

Related Research Articles

<span class="mw-page-title-main">MPlayer</span> Free and open source media player

MPlayer is a free and open-source media player software application. It is available for Linux, OS X and Microsoft Windows. Versions for OS/2, Syllable, AmigaOS, MorphOS and AROS Research Operating System are also available. A port for DOS using DJGPP is also available. Versions for the Wii Homebrew Channel and Amazon Kindle have also been developed.

<span class="mw-page-title-main">KDevelop</span> Integrated development environment

KDevelop is a free and open-source integrated development environment (IDE) for Unix-like computer operating systems and Windows. It provides editing, navigation and debugging features for several programming languages, and integration with build automation and version-control systems, using a plugin-based architecture.

xine Multimedia playback software for Unix-like systems

xine is a multimedia playback engine for Unix-like operating systems released under the GNU General Public License. xine is built around a shared library (xine-lib) that supports different frontend player applications. xine uses libraries from other projects such as liba52, libmpeg2, FFmpeg, libmad, FAAD2, and Ogle. xine can also use binary Windows codecs through a wrapper, bundled as the w32codecs, for playback of some media formats that are not handled natively.

<span class="mw-page-title-main">VLC media player</span> Free and open-source media-player and streaming-media-server

VLC media player is a free and open-source, portable, cross-platform media player software and streaming media server developed by the VideoLAN project. VLC is available for desktop operating systems and mobile platforms, such as Android, iOS and iPadOS. VLC is also available on digital distribution platforms such as Apple's App Store, Google Play, and Microsoft Store.

Video4Linux is a collection of device drivers and an API for supporting realtime video capture on Linux systems. It supports many USB webcams, TV tuners, and related devices, standardizing their output, so programmers can easily add video support to their applications.

aRts is an audio framework that is no longer under development. It was best known for previously being used in K Desktop Environment 2 and 3 to simulate an analog synthesizer.

<span class="mw-page-title-main">GStreamer</span> Multimedia framework

GStreamer is a pipeline-based multimedia framework that links together a wide variety of media processing systems to complete complex workflows. For instance, GStreamer can be used to build a system that reads files in one format, processes them, and exports them in another. The formats and processes can be changed in a plug and play fashion.

<span class="mw-page-title-main">Amarok (software)</span> Free and open source music player

Amarok is a free and open-source music player, available for Unix-like, Windows, and macOS systems. Although Amarok is part of the KDE project, it is released independently of the central KDE Software Compilation release cycle. Amarok is released under the terms of the GPL-2.0-or-later.

A multimedia framework is a software framework that handles media on a computer and through a network. A good multimedia framework offers an intuitive API and a modular architecture to easily add support for new audio, video and container formats and transmission protocols. It is meant to be used by applications such as media players and audio or video editors, but can also be used to build videoconferencing applications, media converters and other multimedia tools. Data is processed among modules automatically, it is unnecessary for app to pass buffers between connected modules one by one.

<span class="mw-page-title-main">Kaffeine</span> Free and open source media player

Kaffeine is a media player for Unix-like operating systems by KDE. By default it uses libVLC media framework but also supports GStreamer. It also supports the use of MPlayer project's binary codecs for proprietary formats. Kaffeine developers have also produced a Mozilla plugin to start the player for streaming content over the web.

<span class="mw-page-title-main">KDE Software Compilation 4</span> Software

KDE Software Compilation 4 was the only series of the so-called KDE Software Compilation, first released in January 2008 and the last release being 4.14.3 released in November 2014. It was the follow-up to K Desktop Environment 3. Following KDE SC 4, the compilation was broken up into basic framework libraries, desktop environment and applications, which are termed KDE Frameworks 5, KDE Plasma 5 and KDE Applications, respectively.

libavcodec is a free and open-source library of codecs for encoding and decoding video and audio data.

<span class="mw-page-title-main">KDE Platform 4</span> Collection of software libraries and frameworks

KDE Platform 4 was a collection of libraries and software frameworks by KDE that served as technological foundation for KDE Software Compilation 4 distributed under the GNU Lesser General Public License (LGPL). KDE Platform 4 was the successor to KDElibs and the predecessor of KDE Frameworks. KDE Platform 4 is the only version of KDE Platform, and in 2013 it was replaced by KDE Frameworks 5.

Video Acceleration API (VA-API) is an open source application programming interface that allows applications such as VLC media player or GStreamer to use hardware video acceleration capabilities, usually provided by the graphics processing unit (GPU). It is implemented by the free and open-source library libva, combined with a hardware-specific driver, usually provided together with the GPU driver.

Video Decode and Presentation API for Unix (VDPAU) is a royalty-free application programming interface (API) as well as its implementation as free and open-source library distributed under the MIT License. VDPAU is also supported by Nvidia.

The HTML5 specification introduced the video element for the purpose of playing videos, partially replacing the object element. HTML5 video is intended by its creators to become the new standard way to show video on the web, instead of the previous de facto standard of using the proprietary Adobe Flash plugin, though early adoption was hampered by lack of agreement as to which video coding formats and audio coding formats should be supported in web browsers. As of 2020, HTML5 video is the only widely supported video playback technology in modern browsers, with the Flash plugin being phased out.

<span class="mw-page-title-main">GNOME Videos</span> Media player software of the desktop environment GNOME

GNOME Videos, formerly known as Totem, is a media player for the GNOME computer desktop environment. GNOME Videos uses the Clutter and GTK+ toolkits. It is officially included in GNOME starting from version 2.10, but de facto it was already included in most GNOME environments. Totem utilizes the GStreamer framework for playback, though until version 2.27.1, it could alternatively be configured to use the Xine libraries instead of GStreamer.

mpv (media player) Free and open-source media player software

mpv is free and open-source media player software based on MPlayer, mplayer2 and FFmpeg. It runs on several operating systems, including Unix-like operating systems and Microsoft Windows, along with having an Android port called mpv-android. It is cross-platform, running on ARM, PowerPC, x86/IA-32, x86-64, and MIPS architecture.

<span class="mw-page-title-main">KDE Frameworks</span> Collection of libraries and software frameworks for the Qt framework

KDE Frameworks is a collection of libraries and software frameworks readily available to any Qt-based software stacks or applications on multiple operating systems. Featuring frequently needed functionality solutions like hardware integration, file format support, additional graphical control elements, plotting functions, and spell checking, the collection serves as technological foundation for KDE Plasma 5 and KDE Gear distributed under the GNU Lesser General Public License (LGPL).

References

  1. "KDE 4.0 Released". 2018-01-11. Retrieved 2019-10-23.
  2. "Release announcement for Phonon 4.11.1". 2019-09-26. Retrieved 2019-10-23.
  3. Kretz, Matthias. "MediaObject Class Reference". Archived from the original on 2008-04-26. Retrieved 2007-12-19.
  4. 1 2 Sanders, N. (2006-05-09). "Phonon and the future of KDE multimedia" . Retrieved 2007-12-19.
  5. Guthrie, Colin. "Qt Multimedia/Mobility vs. Phonon: FIGHT!!!". Archived from the original on 2010-05-27. Retrieved 2010-11-20.
  6. "QtMultimedia Module". Archived from the original on 2010-08-28. Retrieved 2010-11-20.
  7. "Qt Mobility Project APIs Overview". Archived from the original on 2010-05-02. Retrieved 2010-11-20.
  8. 1 2 Unrau, Troy (2007-02-06). "The Road to KDE 4: Phonon Makes Multimedia Easier" . Retrieved 2007-12-19.
  9. "Phonon - KDE UserBase Wiki" . Retrieved 2012-03-01.