# VLC media player

VLC media player (previously the VideoLAN Client and commonly known as simply VLC) 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.
VLC supports many audio- and video-compression-methods and file-formats, including DVD-Video, Video CD, and streaming-protocols. It is able to stream media over computer networks and can transcode multimedia files.
The default distribution of VLC includes many free decoding and encoding libraries, avoiding the need for finding/calibrating proprietary plugins. The libavcodec library from the FFmpeg project provides many of VLC's codecs, but the player mainly uses its own muxers and demuxers. It also has its own protocol implementations. It also gained distinction as the first player to support playback of encrypted DVDs on Linux and macOS by using the libdvdcss DVD decryption library; however, this library is legally controversial and is not included in many software repositories of Linux distributions as a result. It is available on iOS under the MPLv2.

## History

The VideoLAN software originated as a French academic project in 1996. VLC used to stand for "VideoLAN Client" when VLC was a client of the VideoLAN project. Since VLC is no longer merely a client, that initialism no longer applies. It was intended to consist of a client and server to stream videos from satellite dishes across a campus network. Originally developed by students at the École Centrale Paris, it is now developed by contributors worldwide and is coordinated by VideoLAN, a non-profit organization. Rewritten from scratch in 1998, it was released under GNU General Public License on February 1, 2001, with authorization from the headmaster of the École Centrale Paris. The functionality of the server-program, VideoLan Server (VLS), has mostly been subsumed into VLC and has been deprecated. The project name has been changed to VLC media player because there is no longer a client/server infrastructure.
The cone icon used in VLC is a reference to the traffic cones collected by École Centrale's Networking Students' Association. The cone icon design was changed from a hand drawn low resolution icon to a higher resolution CGI-rendered version in 2005, illustrated by Richard Øiestad.
In 2007 the VLC project decided, for license compatibility reasons, not to upgrade to the just-released GPLv3. After 13 years of development, version 1.0.0 of VLC media player was released on July 7, 2009. Work began on VLC for Android in 2010 and it has been available for Android devices on the Google Play store since 2011. In September 2010, a company named "Applidium" developed a VLC port for iOS under GPLv2 with the endorsement of the VLC project, which was accepted by Apple for their App Store. In January 2011, after VLC developer Rémi Denis-Courmont's complaint to Apple about the licensing conflict between the VLC's GPLv2 and the App store's policies, the VLC had been withdrawn from the Apple App Store by Apple. Subsequently, in October 2011 the VLC authors began to relicense the engine parts of VLC from the GPL-2.0-or-later to the LGPL-2.1-or-later to achieve better license compatibility, for instance with the Apple App Store. In July 2013 the VLC application could be resubmitted to the iOS App Store under the MPL-2.0. Version 2.0.0 of VLC media player was released on February 18, 2012. The version for the Windows Store was released on March 13, 2014. Support for Windows RT, Windows Phone and Xbox One were added later. As of 2016 VLC is the third in the sourceforge.net overall download count, and there have been more than 6 billion downloads.
Version 3.0 was in development for Windows, Linux and macOS since June 2016 and released in February 2018. It contains many new features including Chromecast output support (except subtitles), hardware-accelerated decoding enabled by default, 4K and 8K playback, 10-bit and HDR playback, 360° video and 3D audio, audio passthrough for HD audio codecs, BD-J menu support, and local network drive browsing.
In December 2017 the European Parliament approved a budget that funds a bug bounty program for VLC to improve the EU's IT infrastructure.

### Release history

Starting with version 1.1.0, VLC release codenames refer to characters from Terry Pratchett's Discworld novels; an exception is release 2.2.1, which came out shortly after Pratchett's death on March 12, 2015, and which was codenamed Terry Pratchett in honor of the author himself.
| Version | Codename | Release date |
| 1.0.0 | Goldeneye | 2009-07-07 |
| 1.0.1 | Goldeneye | 2009-07-28 |
| 1.0.2 | Goldeneye | 2009-09-22 |
| 1.0.3 | Goldeneye | 2009-10-31 |
| 1.0.4 | Goldeneye | 2009-12-10 |
| 1.0.5 | Goldeneye | 2010-01-31 |
| 1.0.6 | Goldeneye | 2010-04-21 |
| 1.1.0 | The Luggage | 2010-06-22 |
| 1.1.1 | The Luggage | 2010-07-21 |
| 1.1.2 | The Luggage | 2010-07-29 |
| 1.1.3 | The Luggage | 2010-08-18 |
| 1.1.4 | The Luggage | 2010-08-27 |
| 1.1.5 | The Luggage | 2010-11-13 |
| 1.1.6 | The Luggage | 2011-01-23 |
| 1.1.7 | The Luggage | 2011-02-01 |
| 1.1.8 | The Luggage | 2011-03-23 |
| 1.1.9 | The Luggage | 2011-04-12 |
| 1.1.10 | The Luggage | 2011-06-06 |
| 1.1.11 | The Luggage | 2011-07-15 |
| 1.1.12 | The Luggage | 2011-10-06 |
| 1.1.13 | The Luggage | 2011-12-20 |
| 2.0.0 | Twoflower | 2012-02-18 |
| 2.0.1 | Twoflower | 2012-03-19 |
| 2.0.2 | Twoflower | 2012-07-01 |
| 2.0.3 | Twoflower | 2012-07-19 |
| 2.0.4 | Twoflower | 2012-10-18 |
| 2.0.5 | Twoflower | 2012-12-15 |
| 2.0.6 | Twoflower | 2013-04-11 |
| 2.0.7 | Twoflower | 2013-06-10 |
| 2.0.8 | Twoflower | 2013-07-29 |
| 2.0.9 | Twoflower | 2013-11-05 |
| 2.0.10 | Twoflower | 2014-02-21 |
| 2.1.0 | Rincewind | 2013-09-26 |
| 2.1.1 | Rincewind | 2013-11-14 |
| 2.1.2 | Rincewind | 2013-12-10 |
| 2.1.3 | Rincewind | 2014-02-04 |
| 2.1.4 | Rincewind | 2014-02-21 |
| 2.1.5 | Rincewind | 2014-07-26 |
| 2.2.0 | Weatherwax | 2015-02-27 |
| 2.2.1 | Terry Pratchett | 2015-04-16 |
| 2.2.2 | Weatherwax | 2016-02-06 |
| 2.2.3 | Weatherwax | 2016-05-03 |
| 2.2.4 | Weatherwax | 2016-06-05 |
| 2.2.5.1 | Weatherwax | 2017-05-12 |
| 2.2.6 | Weatherwax | 2017-05-24 |
| 2.2.7 | Weatherwax | 2017-11-21 |
| 2.2.8 | Weatherwax | 2017-12-05 |
| 3.0.0 | Vetinari | 2018-02-09 |
| 3.0.1 | Vetinari | 2018-02-28 |
| 3.0.2 | Vetinari | 2018-04-23 |
| 3.0.3 | Vetinari | 2018-05-29 |
| 3.0.4 | Vetinari | 2018-08-31 |
| 3.0.5 | Vetinari | 2018-12-27 |
| 3.0.6 | Vetinari | 2019-01-10 |
| 3.0.7 | Vetinari | 2019-06-07 |
| 3.0.8 | Vetinari | 2019-08-19 |
| 3.0.10 | Vetinari | 2020-04-28 |
| 3.0.11 | Vetinari | 2020-06-16 |
| 3.0.11.1 | Vetinari | 2020-07-29 |
| 3.0.12 | Vetinari | 2021-01-18 |
| 3.0.13 | Vetinari | 2021-05-10 |
| 3.0.14 | Vetinari | 2021-05-11 |
| 3.0.16 | Vetinari | 2021-06-21 |
| 3.0.17 | Vetinari | 2022-04-19 |
| 3.0.18 | Vetinari | 2022-11-29 |
| 3.0.19 | Vetinari | 2023-09-30 |
| 3.0.20 | Vetinari | 2023-11-01 |
| 3.0.21 | Vetinari | 2024-06-05 |
| 4.0.x | Otto Chriek | |

## Design principles
### Modular design

VLC, like most multimedia frameworks, has a very modular design which makes it easier to include modules/plugins for new file formats, codecs, interfaces, or streaming methods. VLC 1.0.0 has more than 380 modules. The VLC core creates its own graph of modules dynamically, depending on the situation: input protocol, input file format, input codec, video card capabilities and other parameters. In VLC, almost everything is a module, like interfaces, video and audio outputs, controls, scalers, codecs, and audio/video filters.

### Interfaces

The default GUI is based on Be API on BeOS, Cocoa for macOS, and Qt 5 for Linux and Windows, but all give a similar standard interface. The old default GUI was based on wxWidgets on Linux and Windows. VLC supports highly customizable skins through the skins2 interface, and also supports Winamp 2 and XMMS skins. Skins are not supported in the macOS version. VLC has ncurses, remote control, and telnet console interfaces. There is also an HTTP interface, as well as interfaces for mouse gestures and keyboard hotkeys.

## Features
### Effects (desktop version)

The desktop version of VLC media player has some filters that can distort, rotate, split, deinterlace, and mirror videos as well as create display walls or add a logo overlay during playback. It can also output video as ASCII art.
An interactive zoom feature allows magnifying into video during playback. Still images can be extracted from video at original resolution, and individual frames can be stepped through, although only in forward direction.
Playback can be gamified by splitting the picture inside the viewport into draggable puzzle pieces, where the row and column count can be set as desired.
For audio playback, this feature includes an equalizer and other filters that help customize sound quality.

### Formats

Because VLC is a packet-based media player it plays almost all video content. Even some damaged, incomplete, or unfinished files can be played, such as those still downloading via a peer-to-peer (P2P) network. It also plays m2t MPEG transport streams (.TS) files while they are still being digitized from an HDV camera via a FireWire cable, making it possible to monitor the video as it is being recorded. The player can also use libcdio to access .iso files so that users can play files on a disk image, even if the user's operating system cannot work directly with .iso images.
VLC supports all audio and video formats supported by libavcodec and libavformat. This means that VLC can play back H.264 or MPEG-4 Part 2 video as well as support FLV or MXF file formats "out of the box" using FFmpeg's libraries. Alternatively, VLC has modules for codecs that are not based on FFmpeg's libraries. VLC is one of the free software DVD players that ignore DVD region coding on RPC-1 firmware drives, making it a region-free player. However, it does not do the same on RPC-2 firmware drives, as in these cases the region coding is enforced by the drive itself, however, it can still brute-force the CSS encryption to play a foreign-region DVD on an RPC-2 drive.
VLC media player can play high-definition recordings of D-VHS tapes duplicated to a computer using CapDVHS.exe. This offers another way to archive all D-VHS tapes with the DRM copy freely tag. Using a FireWire connection from cable boxes to computers, VLC can stream live, unencrypted content to a monitor or HDTV. VLC media player can display the playing video as the desktop wallpaper, like Windows DreamScene, by using DirectX, only available on Windows operating systems. VLC media player can record the desktop and save the stream as a file, allowing the user to create screencasts. On Microsoft Windows, VLC also supports the Direct Media Object (DMO) framework and can thus make use of some third-party DLLs (Dynamic-link library). On most platforms, VLC can tune into and view DVB-C, DVB-T, and DVB-S channels. On macOS the separate EyeTV plugin is required, on Windows it requires the card's BDA Drivers.
VLC can be installed or run directly from a USB flash drive or other external drive. VLC can be extended through scripting; it uses the Lua scripting language. VLC can play videos in the AVCHD format, a highly compressed format used in recent HD camcorders. VLC can generate a number of music visualization displays. The program is able to convert media files into various supported formats.
Both desktop and mobile releases are equipped with an audio equalizer.

### Christmas logo

A red Santa hat appears on top of VLC's traffic-cone logo during Christmas seasons.

### Keyboard shortcuts

The keyboard shortcuts are described in the VLC media player "Preferences". On a Microsoft Windows PC open the Preferences by pressing Ctrl + p. Then click on the "Hotkeys" menu (top right of the screen).
There are single-button shortcuts in VLC that don't require Ctrl or Alt button.
For example, pressing keys F and G while a video file is running in VLC shifts the file's audio/video sync for 50 millisecond per adjustment. This is useful to fix an issue with the sound being ahead or lagging behind the video.

## Operating system compatibility

VLC media player is cross-platform, with versions for Windows, macOS, Linux, iOS, Android, tvOS, ChromeOS, Windows Phone, various BSD-based systems, Solaris, BeOS, OS/2, and Syllable. However, forward and backward compatibility between versions of VLC media player and different versions of OSes are not maintained over more than a few generations. 64-bit builds are available for 64-bit Windows, starting with version 2.0.1.

### Windows 8 and 10 support

The VLC port for Windows 8 and Windows 10 is backed by a crowdfunding campaign on Kickstarter to add support for a new GUI based on Microsoft's Metro design language, that will run on the Windows Runtime. All the existing features including video filters, subtitle support, and an equalizer are present in Windows 8. A beta version of VLC for Windows 8 was released to the Microsoft Store on March 13, 2014. A universal app was created for Windows 8, 8.1, 10, Windows Phone 8, 8.1 and Windows 10 Mobile.

### Android support

In May 2012, the VLC team stated that a version of VLC for Android was being developed. The stable release version 1.0 was made available on Google Play on December 8, 2014.

## Use of VLC with other programs
### Bindings

Several APIs can connect to VLC and use its functionality:
* libVLC API – the VLC Core, for C and C++
* VLCKit – an Objective-C framework for macOS
* LibVLCSharp – Crossplatform .NET bindings to libVLC (C#/F#/VB)
* JavaScript API – the evolution of ActiveX API and Firefox integration
* D-Bus controls
* Go bindings
* Python controls
* Java API
* DirectShow filters
* Delphi/Pascal API: PasLibVlc by Robert Jędrzejczyk
* Free Pascal bindings and an OOP wrapper component, via the libvlc.pp and vlc.pp units. This comes standard with the Free Pascal Compiler as of November 6, 2012.
* The Phonon multimedia API for Qt and KDE applications can optionally use VLC as a backend.

### Applications that use libVLC

VLC can handle some incomplete files and in some cases can be used to preview files being downloaded. Several programs make use of this, including eMule and KCeasy. The free/open-source Internet television application Miro also uses VLC code. HandBrake, an open-source video encoder, used to load libdvdcss from VLC Media Player. Easy Subtitles Synchronizer, a freeware subtitle editing program for Windows, uses VLC to preview the video with the edited subtitles.

## Format support
### Input formats

VLC can read many formats, depending on the operating system it is running on, including:
* Container formats: 3GP, ASF, AVI, DVR-MS, FLV, Matroska (MKV), MIDI, QuickTime File Format, MP4, Ogg, OGM, WAV, MPEG-2 (ES, PS, TS, PVA, MP3), AIFF, Raw audio, Raw DV, MXF, VOB, RM, Blu-ray, DVD-Video, VCD, SVCD, CD-DA, DVB, HEIF, AVIF
* Audio coding formats: AAC, AC3, ALAC, AMR, DTS, DV Audio, XM, FLAC, It, MACE, MOD, Monkey's Audio, MP3, Opus, PLS, QCP, QDM2/QDMC, RealAudio, Speex, Screamtracker 3/S3M, TTA, Vorbis, WavPack, WMA (WMA 1/2, WMA 3 partially).
* Capture devices: Video4Linux (on Linux), DirectShow (on Windows), Desktop (screencast), Digital TV (DVB-C, DVB-S, DVB-T, DVB-S2, DVB-T2, ATSC, Clear QAM)
* Network protocols: FTP, HTTP, MMS, RSS/Atom, RTMP, RTP (unicast or multicast), RTSP, UDP, Sat-IP, Smooth Streaming
* Network streaming formats: Apple HLS, Flash RTMP, MPEG-DASH, MPEG Transport Stream, RTP/RTSP ISMA/3GPP PSS, Windows Media MMS
* Subtitles: Advanced SubStation Alpha, Closed Captions, DVB, DVD-Video, MPEG-4 Timed Text, MPL2, OGM, SubStation Alpha, SubRip, SVCD, Teletext, Text file, VobSub, WebVTT, TTML
* Video coding formats: Cinepak, Dirac, DV, H.263, H.264/MPEG-4 AVC, H.265/MPEG HEVC, AV1, HuffYUV, Indeo 3, MJPEG, MPEG-1, MPEG-2, MPEG-4 Part 2, RealVideo 3&4, Sorenson, Theora, VC-1, VP5, VP6, VP8, VP9, DNxHD, ProRes and some WMV.
* Digital Camcorder formats: MOD and TOD via USB.

### Output formats

VLC can transcode or stream audio and video into several formats depending on the operating system, including:
* Container formats: ASF, AVI, FLAC, FLV, Fraps, Matroska, MP4, MPJPEG, MPEG-2 (ES, MP3), Ogg, PS, PVA, QuickTime File Format, TS, WAV, WebM
* Audio coding formats: AAC, AC-3, DV Audio, FLAC, MP3, Speex, Vorbis
* Streaming protocols: HTTP, MMS, RTSP, RTP, UDP
* Video coding formats: Dirac, DV, H.263, H.264/MPEG-4 AVC, H.265/MPEG-H HEVC, MJPEG, MPEG-1, MPEG-2, MPEG-4 Part 2, Theora, VP5, VP6, VP8, VP9

## Legality

The VLC media player software installers for the macOS platform and the Windows platform include the libdvdcss DVD decryption library, even though this library may be legally restricted in certain jurisdictions.

### India

In May 2022, it was reported by MediaNama that VLC was banned in India and its website was inaccessible from India under the provisions of the Information Technology Act, 2000. Neither the developers nor the Indian government offered any explanation to the ban, according to India Today. The official VideoLAN Twitter account stated in August that the website was blocked in India from 13 February 2022. A report by Hindustan Times indicated that the ban could be due to links with China. India had in 2020 banned over 200 Chinese apps following the 2020–2022 China–India skirmishes.
Another Hindustan Times report from April quoting Symantec said that Chinese hackers were depending on VLC to launch malware they had previously installed on Windows machines. The technique they used is called DLL side-loading, in which an external library that a legitimate program loads at runtime is substituted with a modified version containing the malware.
VideoLan president and lead developer Jean-Baptiste Kempf said that the block was most likely a result of a misunderstanding of the Chinese security issue, although the Indian Government did not provide for a reason as to why it was blocked. In October 2022, VideoLan, with assistance from the Indian digital rights organization Internet Freedom Foundation sent a legal notice to the Indian government asking for an explanation for the block order, following which the Ministry of Electronics and Information Technology removed the ban in November 2022.

### United States

The VLC media player software is able to read audio and video data from DVDs that incorporate Content Scramble System (CSS) encryption, even though the VLC media player software lacks a CSS decryption license. The unauthorized decryption of CSS-encrypted DVD content or unauthorized distribution of CSS decryption tools may violate the US Digital Millennium Copyright Act.
Decryption of CSS-encrypted DVD content has been temporarily authorized for certain purposes (such as documentary filmmaking that uses short portions of DVD content for criticism or commentary) under the Digital Millennium Copyright Act anticircumvention exemptions that were issued by the US Copyright Office in 2010. However, these exemptions do not change the DMCA's ban on the distribution of CSS decryption tools; including those distributed with VLC.