VLC Media Player

videolan.org/vlc
VLC Media Player

Free, cross-platform media player from the non-profit VideoLAN project. Plays almost any audio or video format locally, with no ads, trackers or telemetry. VLC has many powerful features and settings, but the UI can initially be hard to use.

Open Source

VLC Media Player Source Code

Author

videolan

Description

VLC media player - plays everything, runs anywhere. Code here: https://code.videolan.org/videolan/vlc

#c#framework#gplv2#lgpl#multimedia#open-source#vlc

Homepage

http://www.videolan.org/vlc

License

GPL-2.0

Created

29 Jan 12

Last Updated

12 Jul 26

Latest version

svn-trunk

Primary Language

C

Size

671,096 KB

Stars

18,981

Forks

6,051

Watchers

18,981

Language Usage

Language Usage

Star History

Star History

Top Contributors

Recent Commits

  • Claudio Cambra (09 Jul 26)

    macosx: Improve fallback string for header view in abstract grouping data sources Signed-off-by: Claudio Cambra <[email protected]>

  • Claudio Cambra (09 Jul 26)

    macosx: Add fallback display string for section headers Signed-off-by: Claudio Cambra <[email protected]>

  • Serhii Bykov (26 May 26)

    macosx: fix crash when right-clicking empty space in library table view

  • Saifelden Mohamed Ismail (08 Jul 26)

    decoder: don't drain the audio output again before a flush

  • Thomas Guillem (10 Jul 26)

    core: input_item: hide libvlc_owner in input_item_owner

  • Thomas Guillem (10 Jul 26)

    lib: media_player: don't hold media and next_media Not needed since the last commit (libvlc_media_t and input_item_t share the same ref count). This allows to fix a discrepancy between lib and core for libvlc_media_player_get_media (cf. updated comment).

  • Thomas Guillem (09 Jul 26)

    lib: media: share the input item reference count A media had its own reference count, linked to its item by the unretained item->libvlc_owner pointer, never cleared on destruction. The libvlc player callbacks could resolve medias via libvlc_owner after its destruction. The media is now destroyed with its input item, via the new libvlc_owner_release callback. There is now a one to one relation between `libvlc_media_t` and `input_item_t` (not possible anymore to have several media referencing a single item). Fixes the following ASan report, triggered by the new test_media_player_switch_media test without this fix: ``` xeon ~/work/git/vlc/build-asan $ ./test/test_libvlc_media_player testapi: Testing set_media testapi: Waiting for playing testapi: Testing media switch while playing testapi: Waiting for playing testapi: Waiting for the media change ================================================================= ==953845==ERROR: AddressSanitizer: heap-use-after-free on address 0x504000054c70 at pc 0x7f83b5f47330 bp 0x7f83a88fcfb0 sp 0x7f83a88fcfa8 WRITE of size 4 at 0x504000054c70 thread T4 (vlc-input) #0 0x7f83b5f4732f in on_media_meta_changed ../../lib/media_player.c:417 #1 0x7f83b5588a29 in input_thread_Events ../../src/player/input.c:1130 #2 0x7f83b552e47d in input_SendEvent ../../src/input/event.h:36 #3 0x7f83b552ed2e in input_SendEventMetaInfo ../../src/input/event.h:167 #4 0x7f83b553dc57 in EsOutDeleteInfoEs ../../src/input/es_out.c:4911 #5 0x7f83b5544a73 in EsOutDelLocked ../../src/input/es_out.c:3303 #6 0x7f83b5545c1f in EsOutDel ../../src/input/es_out.c:3354 #7 0x7f83b555475c in es_out_Del ../../include/vlc_es_out.h:153 #8 0x7f83b555475c in CmdExecuteDel ../../src/input/es_out_timeshift.c:1600 #9 0x7f83b5554afb in Del ../../src/input/es_out_timeshift.c:447 #10 0x7f83aa338e7a in es_out_Del ../../include/vlc_es_out.h:151 #11 0x7f83aa338e7a in DeleteTrack ../../modules/demux/mock.c:902 #12 0x7f83aa338f4d in Close ../../modules/demux/mock.c:1544 #13 0x7f83b54dba60 in module_unneed ../../src/modules/modules.c:291 #14 0x7f83b550d06b in vlc_access_Destroy ../../src/input/access.c:53 #15 0x7f83b559cb2e in vlc_stream_Delete ../../src/input/stream.c:150 #16 0x7f83b555f47c in demux_Delete ../../include/vlc_demux.h:298 #17 0x7f83b555f47c in InputSourceDestroy ../../src/input/input.c:3037 #18 0x7f83b5562cf5 in End ../../src/input/input.c:1442 #19 0x7f83b556d443 in Run ../../src/input/input.c:421 #20 0x7f83b585b1d5 in asan_thread_start ../../../../src/libsanitizer/asan/asan_interceptors.cpp:234 #21 0x7f83b529eb7a in start_thread nptl/pthread_create.c:448 #22 0x7f83b531c7f7 in __clone3 ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78 0x504000054c70 is located 32 bytes inside of 48-byte region [0x504000054c50,0x504000054c80) freed by thread T0 here: #0 0x7f83b58f38f8 in free ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:52 #1 0x7f83b5f421fe in libvlc_media_release ../../lib/media.c:379 #2 0x7f83b5f49578 in libvlc_media_player_set_media ../../lib/media_player.c:983 #3 0x55dce6183996 in test_media_player_switch_media ../../test/libvlc/media_player.c:200 #4 0x55dce6187017 in main ../../test/libvlc/media_player.c:759 #5 0x7f83b5235ca7 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 previously allocated by thread T0 here: #0 0x7f83b58f4610 in calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:77 #1 0x7f83b5f41c21 in libvlc_media_new_from_input_item ../../lib/media.c:236 #2 0x7f83b5f41e2e in libvlc_media_new_location ../../lib/media.c:278 #3 0x55dce6183902 in test_media_player_switch_media ../../test/libvlc/media_player.c:184 #4 0x55dce6187017 in main ../../test/libvlc/media_player.c:759 #5 0x7f83b5235ca7 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 Thread T4 (vlc-input) created by T0 here: #0 0x7f83b58ecae1 in pthread_create ../../../../src/libsanitizer/asan/asan_interceptors.cpp:245 #1 0x7f83b5645891 in vlc_clone_attr ../../src/posix/thread.c:179 #2 0x7f83b5645d75 in vlc_clone ../../src/posix/thread.c:190 #3 0x7f83b5563f04 in input_Start ../../src/input/input.c:134 #4 0x7f83b5584138 in vlc_player_input_Start ../../src/player/input.c:101 #5 0x7f83b55772e4 in vlc_player_Start ../../src/player/player.c:1255 #6 0x7f83b5f498a5 in libvlc_media_player_play ../../lib/media_player.c:1051 #7 0x55dce6183932 in test_media_player_switch_media ../../test/libvlc/media_player.c:192 #8 0x55dce6187017 in main ../../test/libvlc/media_player.c:759 #9 0x7f83b5235ca7 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 SUMMARY: AddressSanitizer: heap-use-after-free ../../lib/media_player.c:417 in on_media_meta_changed Shadow bytes around the buggy address: 0x504000054980: fa fa 00 00 00 00 00 fa fa fa 00 00 00 00 00 fa 0x504000054a00: fa fa 00 00 00 00 00 00 fa fa fd fd fd fd fd fa 0x504000054a80: fa fa fd fd fd fd fd fa fa fa 00 00 00 00 00 00 0x504000054b00: fa fa 00 00 00 00 00 00 fa fa 00 00 00 00 00 04 0x504000054b80: fa fa fd fd fd fd fd fd fa fa fd fd fd fd fd fa =>0x504000054c00: fa fa 00 00 00 00 00 04 fa fa fd fd fd fd[fd]fd 0x504000054c80: fa fa 00 00 00 00 00 00 fa fa fd fd fd fd fd fd 0x504000054d00: fa fa 00 00 00 00 00 01 fa fa 00 00 00 00 00 00 0x504000054d80: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x504000054e00: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x504000054e80: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 Container overflow: fc Array cookie: ac Intra object redzone: bb ASan internal: fe Left alloca redzone: ca Right alloca redzone: cb ==953845==ABORTING ``` Refs https://code.videolan.org/videolan/VLCKit/-/merge_requests/391

  • Thomas Guillem (09 Jul 26)

    input: add libvlc_owner_release Called when the input item is destroyed, to release libvlc_owner. This will allow the libvlc media to share the reference count of its input item and to be destroyed with it.

  • Thomas Guillem (09 Jul 26)

    core: es_out: document input_item_node_t lifecycle

  • Thomas Guillem (09 Jul 26)

    core: services_discovery: document input_item_node_t lifecycle

  • Alexandre Janniaux (10 Jul 26)

    audio_output: apply the output delay first The output delay was applied after the block's play_date had already been converted, so the reconversion when play_date == VLC_TICK_INVALID was skipped and the first block kept its play_date that didn't account for the delay. On a slave clock the delay is folded into play_date by vlc_clock_slave_to_system(), so the output start_date wasn't accounting for the delay while every later block carried the delay, producing a drift equal to the configured delay, triggering the resampler right after startup. The audio filters were likewise fed the first block with the stale delay, since aout_FiltersSetClockDelay() ran after aout_FiltersPlay(). The delay update was introduced after the filters in commit a3e4cb4a907f5fdbface2c4a1012461fc4382f92, back when the single clock conversion also happened at the end of the function, after the delay update, so the delay was correctly reflected in play_date. This is a regression from 7dc7847c343a7fe27e78a5b100cf773ca8eddbcc, i.e. "aout: convert pts before filtering the input block", since the conversion moved before filtering to detect discontinuities, but left the delay update where it was.

  • Serhii Bykov (08 Jul 26)

    macosx: enable multi-selection in playlist items table

  • jianfeng.zheng (08 Jul 26)

    direct3d11: add Mthreads based video super resolution Signed-off-by: jianfeng.zheng <[email protected]>

  • jianfeng.zheng (08 Jul 26)

    dxgi_fmt: add the Mthreads manufacturer ID Signed-off-by: jianfeng.zheng <[email protected]>

  • Damien Erambert (08 Jul 26)

    macosx: update 26 icons - fix the gradient direction of even stripes in mono mode for dev icon - disable refractivity feature on dev icon and regular icon

  • Steve Lhomme (10 Jul 26)

    package/win32: add skins to MSI package if it's built with it

  • Steve Lhomme (10 Jul 26)

    package/win32: remove translations from MSI package if it's not built

  • Steve Lhomme (09 Jul 26)

    configure: allow generating installer with no translation Simply honor the --disable-nls flag.

  • Steve Lhomme (09 Jul 26)

    package/win32: do not create NSIS "Web plugins" section if activeX is disabled

  • Steve Lhomme (09 Jul 26)

    qt: remove dead outdated code

  • Steve Lhomme (09 Jul 26)

    package/win32: remove irrelevant package-wince target

  • Steve Lhomme (12 May 20)

    configure: remove unused PKGDIR Unused since 6ae2da5f04b182f5c13339f759c1cf877f55f049.

  • Steve Lhomme (06 May 20)

    NSIS: don't uninstall the ActiveX if it wasn't installed

  • Steve Lhomme (05 May 20)

    NSIS: use more values from the defines

  • Leon Vitanos (26 Jun 26)

    qml: navigation now checks for whether item is navigable indirectly solves focus going to invisible "See All" button

  • Leon Vitanos (17 Jun 26)

    qml: navigation fixes in multiple views

  • Leon Vitanos (16 Jun 26)

    qml: navigation fixes for BrowseTreeDisplay

  • Leon Vitanos (16 Jun 26)

    qml: navigation fixes for BrowseHomeDisplay

  • Leon Vitanos (15 Jun 26)

    qml: navigation fix when going Up from VideoAll list avoids stack overflow due to infinite recursion

  • Leon Vitanos (20 May 26)

    qml: swap sidebar and back button order

VLC Media Player Security

4.5/10

Repo Security Summary

Updated 29 Jun 26 Fuzz tested

  • Dangerous-Workflow N/A
  • Token-Permissions N/A
  • Code-Review 0/10
  • Maintained 10/10
  • Packaging N/A
  • CII-Best-Practices 0/10
  • Security-Policy 0/10
  • SAST 0/10
  • License 10/10
  • Signed-Releases N/A
  • Branch-Protection 0/10
  • Binary-Artifacts 10/10
  • Fuzzing 10/10
  • Pinned-Dependencies N/A

VLC Media Player Website

Website

Official download of VLC media player, the best Open Source player - VideoLAN

Official download of VLC media player, the best Open Source player

Redirects

Does not redirect

Security Checks

All 65 security checks passed

Server Details

  • IP Address 213.36.253.2
  • Hostname goldeneye.videolan.org
  • Location Paris, Ile-de-France, France, EU
  • ISP Scaleway SAS
  • ASN AS12322

Associated Countries

  • FR FR

Safety Score

Website marked as safe

100%

Blacklist Check

www.videolan.org was found on 0 blacklists

  • AntiSocial Blacklist
  • Artists Against 419
  • Badbitcoin
  • Bambenek Consulting
  • CERT Polska
  • CoinBlockerLists
  • CRDF
  • CryptoScamDB
  • EtherAddressLookup
  • EtherScamDB
  • Fake Website Buster
  • MetaMask EthPhishing
  • NABP Not Recommended Sites
  • OpenPhish
  • PetScams
  • PhishFeed
  • PhishFort
  • Phishing.Database
  • PhishStats
  • PhishTank
  • Phishunt
  • RPiList Not Serious
  • Scam.Directory
  • SecureReload Phishing List
  • Spam404
  • StopGunScams
  • Suspicious Hosting IP
  • ThreatFox
  • ThreatLog
  • TweetFeed
  • URLhaus
  • ViriBack C2 Tracker

Website Preview

Website preview

VLC Media Player Android App

APK Info

De-Googled Compatibility

Native 3.98 / 4 61 ratings
microG 4.00 / 4 29 ratings
  • GrapheneOS Native 4.0 / 4 (40)
  • LineageOS Native 4.0 / 4 (14)
  • e OS microG 4.0 / 4 (8)
  • CalyxOS microG 4.0 / 4 (8)
  • LineageOS microG 4.0 / 4 (5)
  • iodeOS microG 4.0 / 4 (3)

Tested on Android 6–16 · Updated 24 Jun 26 · View on Plexus →

Trackers

No trackers found

Permissions

  • Access Network State
  • Bluetooth
  • Internet
  • Modify Audio Settings
  • Receive Boot Completed
  • System Alert Window
  • Vibrate
  • Wake Lock
  • Write External Storage
  • Write Settings
  • Bind Data Consumer
  • Read Extension Data

VLC Media Player iOS App

App Info

VLC media player

VLC is a free and open source cross-platform multimedia player. It can play all your movies, shows and music in most formats directly without conversion. It allows file synchronization with Dropbox, GDrive, OneDrive, Box, iCloud Drive, iTunes, direct downloads and through Wi-Fi sharing as well as streaming from SMB, FTP, SFTP, NFS, UPnP/DLNA media servers and the web. VLC offers support for advanced subtitles including full SSA compatibility, multi-track audio, playback speed control and rendering through Chromecast. VLC is completely free and open source.

Rating

Rated 3.7 out of 5 stars by 5,717 users

Version Info

  • Current Version 3.7.3
  • Last Updated 24 Apr 26
  • First Released 19 Jul 13
  • Minimum iOS Version 9.0
  • Device Models Supported 139

App Details

  • IPA Size 186.22 Mb
  • Price Free (USD)
  • Age Advisory 4+
  • Supported Languages 48
  • Developer VideoLAN
  • Bundle ID org.videolan.vlc-ios

Screenshots

  • App screenshot
  • App screenshot
  • App screenshot
  • App screenshot

VLC Media Player Reviews

More Video Players

⚠️ This section is still a work in progress ⚠️
Check back soon, or help us complete it by submiting a pull request on GitHub.
Or submit an entry here

About the Data: VLC Media Player

Change History

API

You can access VLC Media Player's data programmatically via our API. Simply make a GET request to:

https://api.awesome-privacy.xyz/v1/services/vlc-media-player

The REST API is free, no-auth and CORS-enabled. To learn more, view the API Docs or read the API Usage Guide.

Share VLC Media Player

Help your friends compare Video Players, and pick privacy-respecting software and services.
Share VLC Media Player and Awesome Privacy with your network!

View Video Players (1)