SwiftVLC icon
SwiftVLC icon

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
0likes
0comments
0articles

Features

SwiftVLC News & Activities

Highlights All activities

Recent activities

SwiftVLC information

  • Developed by

    NL flagHarf Labs
  • Licensing

    Open Source (MIT) and Free product.
  • Written in

  • Alternatives

    47 alternatives listed
  • Supported Languages

    • English

GitHub repository

  •  557 Stars
  •  30 Forks
  •  3 Open Issues
  •   Updated  
View on GitHub

Popular alternatives

    View all
    SwiftVLC was added to AlternativeTo by Darlene Sonalder on and this page was last updated .
    No comments or reviews, maybe you want to be first?

    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+