SwiftVLC
AVFoundation is excellent for Apple's native media stack, but its container, codec, subtitle, and network-protocol support is limited to what Apple ships. Apps that need MKV, SSA/ASS subtitles, RTSP, SMB, UPnP, or other VLC-backed formats and protocols need a broader engine.
Cost / License
- Free
- Open Source (MIT)
Platforms
- Mac
- iPhone
- iPad
- Apple TV
- Apple Swift
- visionOS
Features
- VLC
- Swift App
SwiftVLC News & Activities
Recent activities
justarandom added SwiftVLC as alternative to Nova Video Player
justarandom added SwiftVLC as alternative to Submarine Player, Clapper, Switch Player and Showtime Player- justarandom added SwiftVLC as alternative to GNOME Videos, jetAudio, Just (Video) Player and MPlayerX
- justarandom added SwiftVLC
- POX updated SwiftVLC
SwiftVLC information
What is SwiftVLC?
AVFoundation is excellent for Apple's native media stack, but its container, codec, subtitle, and network-protocol support is limited to what Apple ships. Apps that need MKV, SSA/ASS subtitles, RTSP, SMB, UPnP, or other VLC-backed formats and protocols need a broader engine.
VLC's engine, libVLC, supports a broad set of codecs, containers, subtitles, and network protocols through embeddable C APIs.
VideoLAN's Apple wrapper, VLCKit, is written primarily in Objective-C. It uses delegates, KVO, NSNotificationCenter, and manual thread management, which is a faithful reflection of the era it was designed in.
SwiftVLC wraps libVLC 4.0 directly in Swift, with no Objective-C layer in between. It is built for @Observable, async/await, and VideoView(player).
Features
@Observable player: state, current time, duration, tracks, and volume drive SwiftUI directly. VideoView(player) handles the rendering lifecycle in a single SwiftUI view. Library failures use typed throws(VLCError) instead of error codes. Asynchronous media parsing: try await media.parse() with cancellation support. 10-band equalizer with libVLC's built-in presets. A-B looping, playback rate control, and subtitle and audio delay. Picture-in-Picture on iOS with full playback controls; macOS native PiP is available only through an explicit private-API SPI opt-in. Media discovery and renderer discovery through services exposed by the bundled libVLC plugins. 360° video with full viewpoint control over yaw, pitch, roll, and field of view. Asynchronous thumbnail generation at arbitrary timestamps. MediaListPlayer for playlist playback with loop and repeat modes.
Requirements Swift 6.3+ / Xcode 26.4+ iOS 18+ / macOS 15+ / tvOS 18+ / visionOS 2+ / Mac Catalyst 18+
