libvlc bindings for OS X, iOS and tvOS in Objective-C, official mirror
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Tests: Update CircleCI with TVVLCKitTests Jul 2, 2018
Examples examples/drop-in player: raise deployment target and switch to DWARF … Nov 21, 2018
Headers VLCCustomDialogProvider: Fix typo in updateProgressWithReference Dec 5, 2018
MobileVLCKit.xcodeproj Bump MobileVLCKit and TVVLCKIT to 8.4 and 10.2 minimum deployment target Nov 30, 2018
Packaging Bump MobileVLCKit and TVVLCKIT to 8.4 and 10.2 minimum deployment target Nov 30, 2018
Resources Bump patchset Nov 28, 2018
Sources creating a player can fail, add missing sanity checks (fixes #229) Dec 9, 2018
Tests Tests: VLCMediaThumbnailer Aug 27, 2018
VLCKit.xcodeproj Tests: VLCMediaThumbnailer Aug 27, 2018
doc/html Update docs Feb 3, 2018
.gitignore gitignore: Add Tests/Assets Jul 30, 2018
.mailmap Update mailmap Feb 3, 2018
CONTRIBUTING.md Add contribution guide Dec 6, 2015
COPYING VLCKit: add proper licensing file Oct 18, 2012
Gemfile Tests: Add code coverage Jun 6, 2018
Gemfile.lock Tests: Add code coverage Jun 6, 2018
Makefile Add packaging script for VLCKit and MobileVLCKit (close #9099) Mar 9, 2014
NEWS Update News for 3.2 Dec 5, 2018
README.md Update Carthage 3.1.4 Aug 31, 2018
Rakefile Tests: Remove bitcode option Jul 2, 2018
compileAndBuildVLCKit.sh compileAndBuildVLCKit: Remove libmux from blacklist Dec 6, 2018
documentation.html Add symlink to make documentation accessible Aug 15, 2016
doxygen.conf Add doxygen configuration Aug 15, 2016

README.md

VLCKit logo

Platform Master Cocoapods
VLCKit Platform CircleCI VLCKit is CocoaPods Compatible
MobileVLCKit Platform CircleCI MobileVLCKit is CocoaPods Compatible
TVVLCKit Platform CircleCI TVVLCKit is CocoaPods Compatible

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

Features

  • Based on libVLC, the engine of the popular media player VLC
  • Supports playback, active streaming, and media to file conversations 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.0 + / macOS 10.9+ / tvOS 10.2+
  • Xcode 9.0+
  • Cocoapods 1.4+

Installation

Cocoapods

CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command,

$ gem install cocoapods

To integrate 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.1.2'
end

target '<iOS Target>' do
    platform :ios, '8.0'
    pod 'MobileVLCKit', '3.1.2'
end

target '<tvOS Target>' do
    platform :tvos, '9.0'
    pod 'TVVLCKit', '3.1.2'
end

Then, run the following command,

$ pod install

Carthage

Carthage is a way to add frameworks to your Cocoa application. You can install it with the following command,

brew install carthage

To integrate VLCKit into your project, specify it in your Cartfile. The URL depends on your target OS.

iOS:

binary "https://code.videolan.org/videolan/VLCKit/raw/master/Packaging/MobileVLCKit.json" ~> 3.1.4

macOS:

binary "https://code.videolan.org/videolan/VLCKit/raw/master/Packaging/VLCKit.json" ~> 3.1.4

tvOS:

binary "https://code.videolan.org/videolan/VLCKit/raw/master/Packaging/TVVLCKit.json" ~> 3.1.4

Then, run the following command,

carthage update

Note that the following system dependencies are required and need to be linked into the project:

  • AudioToolbox.framework
  • AVFoundation.framework
  • CFNetwork.framework
  • CoreFoundation.framework
  • CoreGraphics.framework
  • CoreMedia.framework
  • CoreText.framework
  • CoreVideo.framework
  • Foundation.framework
  • libbz2.tbd
  • libiconv.tbd
  • OpenGLES.framework
  • QuartzCore.framework
  • Security.framework
  • VideoToolbox.framework

On iOS and tvOS, you also need to link:

  • UIKit.framework

Build

Default

Run compileAndBuildVLCKit.sh with the -a ${ARCH} option to specify the target architecture.

More information can be found under ./compileAndBuildVLCKit.sh -h

Build with your own VLC repository

  1. Put a vlc repository inside libvlc/vlc

    mkdir libvlc && cd libvlc && ln -s ${MYVLCGIT}

  2. Apply VLC patches needed for VLCKit

    cd vlc

    git am ../../Resources/MobileVLCKit/patches/*

  3. run compileAndBuildVLCKit.sh with the -n and the -a ${ARCH} option

Contribute

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

Pull Request

Pull requests are more than welcome! If you do submit one, please make sure to use a descriptive title and description.

GitLab Issues

You can look through the currently open issues on GitLab and choose the one that interests you the most.

Patches

If you like the more classic apporach, you can submit patches!

For detailed explanation on how to do so, please read our wiki page on how to send patches.

FAQ

Q. Since this isn't under the MIT license, is there something special I should know?

The LGPLv2.1 allows our software to be included in proprietary apps, as long as you follow the license. Here are some key points you should be aware of.

  • 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 to our work

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

Communication

Forum

If you ever need help, feel free to reach out. The web forum is always there for you.

Issues

Did you find a bug and want to report it to us? You can create an issue on GitLab or on our bug tracker.

IRC

Do you have a pressing question or just want to talk? Reach out to us via our IRC channel on the freenode network's #videolan channel.

If you don't have an IRC client at hand, use the freenode webchat.

License

VLCKit is under the LGPLv2.1 license.

See COPYING for more license info.

Further reading

You can find more documentation on the VideoLAN wiki.