VideoLAN, a project and a non-profit organization.

VLCKit

VLCKit is a generic multimedia library for any audio or video playback needs on macOS, iOS and tvOS.

Features

  • Wrapper of libVLC, the engine of the popular media player VLC.
  • Supports playback, active streaming, and media to file conversions on the Mac.
  • Open-source software licensed under LGPLv2.1 or later, available in source code and binary form from VideoLAN’s website.
  • Easily integratable via CocoaPods.

Use-case

When will you need VLCKit?

Frankly, you will need it whenever you need to play media not supported by QuickTime / AVFoundation or if you require more flexibility.

Here are some other common use-cases:

  • Playing something else besides H264/AAC files or HLS streams.
  • Need subtitles beyond QuickTime’s basic support for Closed Captions.
  • Your media source is neither your mobile device nor a basic HTTP server, but a live stream hailing from some weird media server or even a raw DVB signal broadcasted on a local network.
  • and more!

Requirements

  • iOS 8.4 + / macOS 10.9+ / tvOS 10.2+
  • Xcode 9.0+
  • Cocoapods 1.4+
  • Python 3.7 (compile time only)

Installation

Cocoapods

CocoaPods is a dependency manager for Cocoa projects. You can install it with:

gem install cocoapods

To integrate the latest VLCKit into your project, specify it in your Podfile:

source 'https://github.com/CocoaPods/Specs.git'

target '<macOS Target>' do
    platform :macos, '10.9'
    pod 'VLCKit', '~>3.3.0'
end

target '<iOS Target>' do
    platform :ios, '8.4'
    pod 'MobileVLCKit', '~>3.3.0'
end

target '<tvOS Target>' do
    platform :tvos, '10.2'
    pod 'TVVLCKit', '~>3.3.0'
end

Then run pod install.

Carthage

Carthage can also pull in VLCKit. Install it with brew install carthage, then add the appropriate binary line to your Cartfile:

  • iOS: binary "https://code.videolan.org/videolan/VLCKit/raw/master/Packaging/MobileVLCKit.json" ~> 3.3.0
  • macOS: binary "https://code.videolan.org/videolan/VLCKit/raw/master/Packaging/VLCKit.json" ~> 3.3.0
  • tvOS: binary "https://code.videolan.org/videolan/VLCKit/raw/master/Packaging/TVVLCKit.json" ~> 3.3.0

Then run carthage update.

Documentation

API documentation of VLCKit is available online and within both the source code as well as binary downloads. Except as indicated, all the APIs are the same on macOS, iOS and tvOS.

You can find more documentation on the VideoLAN wiki.

License

VLCKit is under the LGPLv2.1 license. See COPYING for more license info.

FAQ — about LGPL

The LGPLv2.1 allows our software to be included in proprietary apps, as long as you follow the license. Some key points:

  • Make sure to publish any potential changes you do to our software.
  • Make sure that the end-user is aware that VLCKit is embedded within your greater work.
  • Make sure that the end-user is aware of the gained rights and is granted access to our code as well as to your additions.

For further details, please read the license and consult your lawyer with any questions you might have.

Contribute

VLCKit is an open-source project hosted by VideoLAN, and we happily welcome all kinds of contributions.

Pull requests are more than welcome — please use a descriptive title and description. You can also look through the currently open issues on GitLab and pick one that interests you. If you prefer the classic approach, you can submit patches; see the wiki page on how to send patches.

Communication

If you ever need help, the forum is always there for you.

Did you find a bug? Create an issue on GitLab or on the bug tracker.

For matters related to the VLCKit and LibVLC APIs, join the LibVLC bindings community on Discord.