VLC Media Player

VLC Media Player 3.0.1

A highly portable and popular multimedia player for multiple audio and video formats.

Freeware
Windows/macOS/Linux
38.3 MB
79,233
4.6 101 votes

VLC media player is a free and open source cross-platform multimedia player that plays most multimedia files as well as discs, devices, and network streaming.

It supports many new devices inputs, formats, metadata and improves most of the current ones, preparing for the next-gen codecs. For subtitles you can download VLSub.

What's New:

Core:

  • Fix use-after-free when cleaning playlists
  • Fix crash on exit on Windows

Video output:

  • Fix HLG tone mapping on some systems like macOS.
  • Fix screensaver inhibition on Windows XP
  • Fix various Direct3D11 crashes
  • Fix HDR tone mapping in Direct3d11
  • Fix pink screen on Windows

Decoder:

  • Fix potential stack buffer overflow with faad
  • Enable Cineform HD in avcodec

Hardware Decoder:

  • macOS: Improve HEVC 10bit performance with Videotoolbox
  • android: Add MPEG2 support via MediaCodec
  • Fix HEVC decoding with some files on Android/macOS/iOS
  • Improve Direct3D11 memory usage

Demux:

  • Improve MKV seeking speed
  • Fix xspf base URL handling
  • Fix reading mp4 trun with moof based offsets
  • Fix adaptive http redirections
  • Replace old API, fixing adaptive TLS leak
  • Use mime type as fallback for HLS segment type
  • Fix subtitle (srt,ssa..) seek when having a single entry
  • Flag non default HDMV subset video streams
  • Increase TS probing amount for 4K streams
  • Miscellaneous MKV, MP4 & AVI crash fixes

Packetizer:

  • Fix out of bounds read in mpeg4video

Stream Output:

  • Improve chromecast loading speed
  • Improve local/chromecast transition during playback
  • Fix chromecast loading with some versions of Windows
  • Fix chromecast loading with some chromecast devices (TVs and Android boxes)
  • Fix wrong first cover art when casting
  • Fix casting to VP9

macOS Interface:

  • Re-add option to disable the fullscreen controller panel
  • Auto-layout improvements
  • Remove misleading playback warning indicator
  • Fix crash with the interface for lua extensions (like VLSub)
  • Fix show sidebar setting being ignored on restart
  • Fix MKV files association
  • Fix chromecast audio detection

Qt Interface:

  • Improve scaling on HiDPI displays

Snap:

  • Improve interface look and feel

Platform support changes:

  • 3.0.x will be maintained as a LTS (best-effort basis, mostly for security) that will be the last working version for quite a few systems.
  • Indeed the 3.0.x branch will contain the last releases running on:
    • Windows XP, Vista, and the servers equivalent of those Windows versions
    • macOS 10.7, 10.8 & 10.9, iOS 7 & 8
    • Android 2.x, 3.x, 4.0.x & 4.1.x
    • Compilers before gcc 5.0 and clang 3.4, or equivalent

For the 3.0 branch, please note:

  • The Windows XP/2003/2003R2 support for VLC is now on a best-effort basis:
  • it should work, but not without limitations.
  • libVLC support for Windows XP is deprecated.
  • You _really_ should upgrade to a more modern Windows version!
  • Windows Vista (all versions) without Platform Upgrade is not supported.
  • 64bit version of VLC for Windows is recommended.
  • Linux support requires now a kernel newer than 2.6.26.
  • Mac OS X 10.6 support is now removed. You need OS X 10.7.

Core:

  • 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

Access:

  • New NFS access module using libnfs
  • New SMB access module using libdsm
    • Adaptive streaming:
    • 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=
  • 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

Hardware Decoder:

  • 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

Decoders:

  • 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
  • CEA-708 decoder
  • New MIDI decoder for macOS and iOS using the AudioToolbox framework, works without a soundfont or with SoundFont2 and DLS soundfonts

Demuxers:

  • 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:
    • HEVC support
    • 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

Stream filter:

  • 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

Demux filter:

  • Add a demuxer filter chain to filter or intercept control commands and demuxing
  • Add a demuxer filter to block seeking (--demux-filter noseek)

Audio output:

  • 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

Audio filters:

  • 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

Video ouput:

  • Linux/BSD default video output is now OpenGL, instead of Xvideo
  • OpenGL:
    • 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

Video filter:

  • 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

Text renderer:

  • 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

Stream Output:

  • Chromecast output module
  • RGB24 and YCbCr 4:2:0 RTP packetization

Encoder:

  • Support for Daala video in 4:2:0 and 4:4:4
  • VP8 and VP9 encoder using libvpx

Muxers:

  • Add fragmented/streamable MP4 muxer
  • Add support for muxing VC1 and WMAPro in MP4
  • Opus in MPEG Transport Stream
  • Daala in Ogg

Service Discovery:

  • 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

iOS:

  • Drop support for iOS 6.x

Qt interface:

  • Batch convert support
  • It is now possible to specify 'stop-time' in Convert/Save dialog

Skins2:

  • Support key accelerators

libVLC:

  • 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

Logging

  • 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

Misc

  • remove langfromtelx
  • 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

Removed modules

  • 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

Previous versions:

Apps similar to VLC Media Player 27