VLC Media Player is the most popular and robust multi-format, free media player available. The VLC Media Player was publically released in 2001 by non-profit organization VideoLAN Project. VLC Media Player quickly became very popular thanks to its versatile multi-format playback capabilities. It was aided by compatibility and codec issues which rendered competitor media players like QuickTime, Windows and Real Media Player useless to many popular video and music file formats. The easy, basic UI and huge array of customization options have enforced VLC Media Player’s position at the top of the free media players.
VLC Media Player plays almost any video or music file format you can find. At its launch this was a revolution compared to the default media players most people were using that often crashed or displayed “codecs missing” error messages when trying to play media files. VLC Media Player can play MPEG, AVI, RMBV, FLV, QuickTime, WMV, MP4 and a shed load of other video and audio media file formats. Not only can VLC Media Player handle loads of different formats, VLC Media Player can also playback partial or incomplete audio and video media files so you can preview downloads before they finish.
Easy to Use
VLC Media Player’s UI is definitely a case of function over beauty. The basic look does, however, make the media player extremely easy to use. Simply drag and drop files to play or open them using files and folders then use the classic media navigation buttons to play, pause, stop, skip, edit playback speed, change the volume, brightness, etc. A huge variety of skins and customization options mean the standard appearance shouldn’t be enough to prevent you from choosing VLC as your default media player.
Don’t let VLC Media Player’s simple interface fool you, within the playback, audio, video, tools, and view tabs are a huge variety of player options. You can play with synchronization settings including a graphic equalizer with multiple pre-sets, overlays, special effects, AtmoLight video effects, audio spatializer, and customizable range compression settings. You can even add subtitles to videos by adding the SRT file to the video’s folder.
VLC Media Player is quite simply the most versatile, stable and high-quality free media player available. It has rightly dominated the free media player market for over 10 years now and looks like it may for another 10 years thanks to the constant development and improvement by VideoLAN Org.
Support network browsing for distant filesystems (SMB, FTP, SFTP, NFS...) and rewrite the parsing of the media files and inputs.
Support keystores: fetch and store passwords securely (sic!) for common protocols (HTTP, SMB, SFTP, FTP, RTSP ...).
Autodetect external audio tracks (ac3, m4a, aac, dts...) similar to subtitles.
Support HDMI passthrough for Audio HD codecs, like E-AC3, TrueHD or DTS-HD.
Support for 12bits codec and extended colorspaces (HDR).
Support output renderers, like ChromeCast.
VLC now assumes vlcrc config file is in UTF-8.
Support portable version of Windows build (create a "portable/" folder).
Support wayland surface type.
Allow to start the video paused on the first frame.
Refactor preparsing input.
EPG rework: table and single event updates, now using network time.
Refactor and fix subtitles es selection. Demuxers can now override es category single only or multiple es behavior.
Support for 360 video and audio, including viewpoint modification.
Support for ambisonic audio and more than 8 audio channels.
Support subtitles size live adjustments.
New NFS access module using libnfs.
New SMB access module using libdsm.
Rewrite MPEG-DASH (Dynamic Adaptive Streaming over HTTP) support, including MPEG2TS and ISOBMFF profiles.
Support HDS (Http Dynamic Streaming) from Adobe (f4m, f4v, etc.).
Large rework of the Smooth Streaming module.
Replaced httplive stream filter with new HLS demuxer, replaced smooth stream filter with new Smooth demuxer, both using unified adaptive module.
Support HLSv4-7, including MP4 and raw muxing and ID3 tags.
Support decompression and extraction through libarchive (tar, zip, rar...).
New HTTP/TLS access module for HTTP 2.0 support.
Improvements of cookie handling (share cookies between playlist items, domain / path matching, Secure cookies).
Support DVB-T2 on Windows BDA.
Support depayloading Opus from RTP.
New UPnP access module, to list directories without infinite recursions.
SMB/FTP/SFTP accesses can list directories.
Support sftp username and passwords options in URL, and key authentication.
New WASAPI audio capture module on Windows.
New "concat" access module for concatenating byte streams.
Named pipes and device nodes are no longer included in directory listings by default. Use --list-special-files to include them back.
Support for timeout in UDP input --udp-timeout=<seconds>.
New SAT>IP access module, to receive DVB-S via IP networks.
Improvements on DVB scanning.
BluRay module can open ISO over network and has full BD-J support.
Support for DVD ISO over network.
New SRT access module using libsrt.
Support HEVC hardware decoding on Windows, using DxVA2 and D3D11.
Support hardware decoding using Direct3D11, including GPU-zerocopy mode, and hardware filtering, for deinterlace and adjust.
DxVA2 GPU-zerocopy for hardware decoding and displaying on Windows, and support for hardware filtering, for deinterlace and adjust.
Support HEVC hardware decoding using OMX and MediaCodec (Android).
Use MediaCodec via NDK native API after Android Lollipop.
Support MPEG-2, VC1/WMV3 on Android using MediaCodec.
OMX GPU-zerocopy support for decoding and display on Android using OpenMax IL.
Support 4:4:4 and 4:2:2 chroma samplings with VDPAU hw acceleration.
Important VAAPI improvements for 10bits, HEVC, direct-rendering support.
Support VP9 and WMV3 decoding using OMX and performance improvements.
Important improvements for the MMAL decoder and output for rPI and rPI2.
New hardware accelerated decoder for OS X and and iOS based on Video Toolbox supporting H.263, H.264/MPEG-4 AVC, H.265/HEVC, MPEG-4 Part 2, and DV.
Support for experimental AV1 video.
Support for ARIB STD-B24 subtitles.
Support for experimental Daala video.
New MPEG-1 & 2 audio layer I, II, III + MPEG 2.5 decoder based on libmpg123.
New BPG decoder based on libbpg.
Fix uncompressed DVD-Audio (AOB) LPCM decoding.
Rewrite WPL playlists and add ZPL playlists support (Zune).
Support TDSC, Canopus HQX, Cineform, SpeedHQ, Pixlet, QDMC and FMVC codecs.
TTML subtitles support, including EBU-TT-D variant.
Rewrite of webVTT subtitles support, including CSS style support.
Support 9-bit and 10-bit GBR planar formats.
Support for the OggSpots video codec.
HEVC packetization is mostly fixed.
H264 packetizer can now generate timestamps.
Packetizers have support for captions in SEI.
DTS packetizer handle DTS extensions (like DTS-HD): decoders like avcodec can now decode up to 8 channels.
JPEG images correctly oriented using embedded orientation tag, if present.
Support VPX high bit depth support.
Extend MicroDVD support with color, fontname, size, position extensions.
BluRay text subtitles (HDMV) are now decoded.
Improve Closed Captions detection, notably inside the video streams.
New MIDI decoder for macOS and iOS using the AudioToolbox framework, works without a soundfont or with SoundFont2 and DLS soundfonts.
Important rework of the MP4 demuxer, including:
Support for fragmented MP4.
Support EIA-608/708 subtitles in MP4/mov.
Support WMV and WMAV in MP4/mov, aka Flip4Mac files.
Support bitmap audio channel reordering in MP4/mov.
Support for RTP Reception Hint Track with H.264, GSM and Speex payloads.
Support for XiphQT(MP4) vorbis and Flac.
Support for VP8/VP9/VP10/AV1 in MP4.
Support GoPro HiLight chapters.
Support for TTML and WebVTT in ISOBMFF/MP4 and DASH.
Add new metadata fields.
Important rework of the TS demuxer, including:
Support Opus in MPEG Transport Stream.
Fix program selection with recorded TS (TopField, DreamBox and others).
Fix TS playback with PAT/PMT less recordings.
Basic support for MPEG4-SL in TS and T-DMB.
Support SCTE-18 / EAS inside TS.
Support for new descriptors and ETT tables.
Support for ARIB channel logos, as attachements, ARIB TR-B21/TR-B14-1.
Improve broken-PCR probing and fixing.
Improvements for scrambled state detection.
Support HD-DVD .evo (H.264, VC-1, MPEG-2, PCM, AC-3, E-AC3, MLP, DTS).
Important rework of the PS demuxer, including:
Fix large number of samples, notably with PSM-less H264.
Partial support of PSMF.
Fix broken SCR samples.
Fix CDXA mpeg-1 support.
Improvements on MKV:
Rewrite MKV seeking.
Support FFv1 inside MKV.
Improve ADTS and LATM inside MKV.
Improve DVD-menus support.
Support for lame's replaygain extension in mpeg files.
Support Daala in Ogg.
Improve Chained-Ogg support.
Fixes for DTS detection in WAV and MKV files.
Support for Creative ADPCM/alaw/ulaw/S16L in VOC files.
Support for Creative ADPCM in AVI.
Support WMV extended content metadata.
Directory Demux can now sort items, ignore extensions and hidden files.
Support AlbumArtist and DiscNumber metadata.
Support raw H265/HEVC files.
Support multi-channel WAV without channel-maps.
Support SBV subtitles.
Support for Scenarist Closed Caption.
Fix Quicktime Mp4 inside MKV and unpacketized VC1.
Support for isofLaC.
Improve fLaC seeking.
Replace --demux dvb-open option with --stream-filter dvb to parse channels.conf digital TV channel list files.
Add an ADF stream filter.
Add a ARIB STD-B25 TS streams decoder.
Add a stream prebuffering plugin.
Rewrite libarchive module as a stream_extractor.
Remove HTTP Live streaming stream filter.
Add a zlib (a.k.a. deflate) decompression filter.
Add a skiptags module to help demuxers skip ID3/APE tags.
Add a demuxer filter chain to filter or intercept control commands and demuxing.
Add a demuxer filter to block seeking (--demux-filter noseek).
Complete rewrite of the AudioTrack Android module, it is now the default module for Android. It now supports HDMI/SPDIF passthrough for AC3/DTS/EAC3, 5.1/7.1 channels and float output, depending on the Android version.
Add Tizen audio module.
HDMI/SPDIF pass-through support for WASAPI (AC3/DTS/DTSHD/EAC3/TRUEHD).
Support EAC3 and TRUEHD pass-through for PulseAudio.
Important rework of the AudioUnit modules to share more code between iOS and macOS.
Support Ambisonics audio with viewpoint changes.
Add SoX Resampler library audio filter module (converter and resampler).
a52tospdif and dtstospdif audio converters are merged into tospdif, this new converter can convert AC3, DTS, EAC3 and TRUEHD to a IEC61937 frame.
Add a Spatialaudio module with 2 submodules:
An Ambisonics audio renderer, supporting up to 3rd order.
An Binauralizer audio filter, working with Ambisonics or 5.1/7.1 streams.
Add Headphones option in Stereo Mode: use the spatialaudio module for headphones effects.
Add a pitch shifting module.
Linux/BSD default video output is now OpenGL, instead of Xvideo.
New OpenGL provider for Windows.
Drop OpenGL 1.x and OpenGL ES 1 support.
Direct rendering with OpenGL (starting OpenGL 4.4).
Hardware direct displaying with VA-API interop.
Hardware direct displaying with VDPAU interop.
Hardware direct displaying with DxVA2/D3D9Ex interop.
Hardware direct displaying with VideoToolbox interop (iOS and macOS).
HDR tonemapping support through libplacebo.
Wayland shell surface window provider.
Wayland shared memory video output.
Large rework of the Android video outputs: there is now Surface (2.1, 2.2) NativeWindow (2.3+, supports hw rotation, subpicture blending, opaque).
Support rotation in Android NativeWindow output and hardware decoders.
Rename the Direct3D output module to Direct3D9.
Add a Direct3D11 video output supporting both Windows desktop and WinRT modes, supporting subpicture blending and hardware acceleration.
Support HDR10 in Direct3D11 with Windows 10 Fall Creator Update.
EFL Evas video output with Tizen TBM Surface support.
Hardware deinterlacing on the rPI, using MMAL.
New video filter to convert between fps rates.
Add 9-bit and 10-bit support to image adjust filter.
New edge detection filter uses the Sobel operator to detect edges.
Hardware accelerated deinterlacing/adjust/sharpen/chroma with VA-API.
Hardware accelerated adjust/invert/posterize/sepia/sharpen with CoreImage.
Hardware accelerated deinterlacing/adjust/chroma with D3D9 and D3D11.
CTL support through Harfbuzz in the Freetype module.
New font fallback algorithm on most platforms.
More conforming EIA608 captions layout and aspect ratio.
More styles support for TTML, WebVTT and 708.
Chromecast output module.
RGB24 and YCbCr 4:2:0 RTP packetization.
Support for Daala video in 4:2:0 and 4:4:4.
VP8 and VP9 encoder using libvpx.
Add fragmented/streamable MP4 muxer.
Add support for muxing VC1 and WMAPro in MP4.
Opus in MPEG Transport Stream.
Daala in Ogg.
New NetBios service discovery using libdsm.
New mDNS services discovery using libmicrodns.
New mDNS services discovery using Bonjour (Mac OS X, tvOS, iOS).
Rewrite of the UPnP service discovery.
Mac OS X Interface
Drop support for Mac OS X 10.6 Snow Leopard.
Support right-to-left user interface layout for right-to-left languages.
New resizable fullscreen controller with improved design.
Add status bar icon which displays metadata and play controls.
Add support for keyboard blacklight dimming during fullscreen video playback.
Improve and simplify preferences window.
Huge performance improvements in playlist handling and other areas.
New AppleScript API giving access to audio desynchronization.
Expand AppleScript API for menu detection and navigation.
Support for building with disabled sparkle update mechanism.
Remove deprecated transcoding wizard, use convert and save dialog instead.
Drop support for iOS 6.x.
Batch convert support.
It is now possible to specify 'stop-time' in Convert/Save dialog.
Support key accelerators.
Add libvlc_media_new_callbacks for custom input byte streams.
Add libvlc_audio_output_device_enum to enumerate devices of current aout.
Split of libvlc_media_discoverer_new_from_name into libvlc_media_discoverer_new, libvlc_media_discoverer_start and libvlc_media_discoverer_stop This allows to attach media events between create and start.
Add libvlc_media_get_codec_description to get a human readable description of a codec.
Add libvlc_MediaListEndReached Event to get notified when a media list reached the end.
Add libvlc_media_list_player_get_media_player to get the media player instance of a list player.
Add libvlc_media_parse_with_options that uses a flag to specify parse options.
Add libvlc_audio_output_device_get to get the currently selected audio output device identifier (if there is one available).
Add libvlc_media_get_type to get the type of the media.
Add libvlc_media_player_get_full_title_descriptions to get full title info of the media and +libvlc_title_descriptions_release to match it.
Add libvlc_media_player_get_full_chapter_descriptions to get full chapter info of the media and libvlc_chapter_descriptions_release to match it.
Deprecate libvlc_video_get_title_description, libvlc_video_get_chapter_description, libvlc_media_player_get_agl, libvlc_media_player_set_agl.
Add libvlc_media_player_set_android_context to integrate in an Android surface.
Add a new libvlc dialog API to forward dialogs requests to the applications: libvlc_dialog_set_context, libvlc_dialog_get_context, libvlc_dialog_set_callbacks, libvlc_dialog_dismiss, libvlc_dialog_post_action, libvlc_dialog_post_login.
Add libvlc_media_discoverer_list_get|release to list the media discoverers.
Add libvlc_media_slaves_add, libvlc_media_slaves_clear libvlc_media_slaves_get, libvlc_media_slaves_release to add and get slaves from a libvlc_media.
Add libvlc_media_player_(get|set)_role to set the media role.
Add libvlc_media_player_add_slave to replace libvlc_video_set_subtitle_file, working with MRL and supporting also audio slaves.
Add vlc_epg_event_(New|Delete|Duplicate), vlc_epg_AddEvent, vlc_epg_Duplicate and removes vlc_epg_Merge.
Support for the SystemD Journal.
Use --syslog and --syslog-debug command line options to include debug messages in syslog. With --syslog, errors and warnings will be sent only.
New Android module for logging.
Remove ZPL playlist format.
Update libVLC doxygen modules.
Add a text-to-speech renderer for subtitles on OS X/iOS.
Add a text-to-speech renderer for subtitles on Windows.
Add Gnome libsecret-based crypto keystore.
Add KDE Kwallet-based crypto keystore.
Add a memory keystore.
Add a file keystore that can use a submodule to crypt secrets.
Add Keychain based crypto keystore for iOS, Mac OS X and tvOS.
Atmo video filter.
QTCapture access module (use AVCapture instead).
httplive (use adaptive instead).
smooth (use adaptive instead).
Gnome-VFS access module (i.e. Gnome 2.x).
QuartzText text renderer module (use Freetype instead).
Win32 GDI text renderer module (use Freetype instead).
Growl notification (replaced by osx_notifications).
VCDX "extended" Video CD access module (use the normal VCD module).
Mac OS X Dialog Provider (use VLCKit instead).
iOS Dialog Provider (use MobileVLCKit / TVVLCKit instead).
QuickTime decoder module (use native codecs).
BD access module (use libbluray).
Direct2D module (use Direct3D11).
EyeTV access module.
Rar access and stream filter: use libarchive.
VDA decoder: use VT.
Audioqueue: use audiounit.
SDL video output module.
DirectFB video output module.
RAOP stream output module.