From VideoLAN Wiki
Jump to navigation Jump to search

This page provides a brief overview on the LibVLC binding for Objective-C.


VLCKit is an Objective-C wrapper for libvlc's external interface, on Mac OS X and iOS.

It includes basic classes for playback, playlists, streaming and transcoding. Doing simple media players (comparable to QuickTime Player or MPlayer OS X) is as hard as doing a QuickTime-based one; thus, it is really easy. MobileVLCKit is a subset specifically targeting the iOS platform, enabling a full playback experience with playlists, metadata handling and network streaming. If you require a media database, MediaLibraryKit will get you going within minutes.

Building the framework for OS X

This will automatically fetch and build libvlc as well as accompanying classes.

Building the framework for iOS

  • Clone git://git.videolan.org/vlc-bindings/VLCKit.git
  • open your favorite terminal application such as Terminal.app or iTerm 2 and navigate to your checkout.
  • execute ./buildMobileVLCKit.sh
  • check -h for available options such as -s to compile for the simulator

This will automatically fetch and build libvlc as well as its dependencies and accompanying classes.

If you want to build a library that will work for both the simulator and devices:

  • execute ./buildMobileVLCKit.sh, then ./buildMobileVLCKit.sh -s
  • use xcode command line tools to build a universal library: lipo -create Release-iphoneos/libMobileVLCKit.a Release-iphonesimulator/libMobileVLCKit.a -o libMobileVLCKit.a

Basic usage in your application

The code should speak by itself

  // Set up a videoView by hand. You can also do that in the nib file
   videoView = [[VLCVideoView alloc] initWithFrame:[[window contentView] bounds]];
   [[window contentView] addSubview:videoView];
   [videoView setAutoresizingMask: NSViewHeightSizable|NSViewWidthSizable];
   // Init the player object
   player = [[VLCMediaPlayer alloc] initWithVideoView:videoView];
   [player setMedia:[VLCMedia mediaWithPath:@"/to/my/movie"]];
   [player play];

Sample code

We offer sample code both for iOS and OS X.

Examples_OSX includes 3 different projects.

  • BasicPlayerWithPlaylist: this sum's it up pretty well. drag and drop files, hit play / pause, see them play in the same window in the order you want them to.
Basic Player with Playlist
  • FlashVideoDownloader: this exemplifies the basics on how to deploy VLC's URL parsing mechanisms to gain access to the actually played media and how to store it.
Flash Video Downloader
  • iPodConverter: VLCKit includes streaming and transcoding features including a few pre-defined profiles. In this sample, you see how to use them. Drop a file in the designated area. Hit convert. See the file being converted including a progress bar.

Examples_iOS includes 2 different projects developed using Xcode 5 and with iOS 7 in mind. With minor modifications, they will also work on iOS 5 and 6.

  • SimplePlayback: it's as simple as it sounds. Launch the app to watch a file being streamed live over http from one of our servers to your iOS Simulator or device.
Simple Playback
  • DropIn-Player: this is a more advanced sample project implementing a basic view controller, which could be embedded in your own app. It allows any kind of media playback, subtitles handling, multiple audio track handling, aspect ratio customizations, playback position manipulation and display, volume. All of that, implemented in a self-contained class and a single xib file.
Drop-In player

Are there apps actually deploying VLCKit on OS X and iOS?

This is a selection of apps we are aware of.

Feel free to add your application above in alphabetical order. Note that we don't list apps violating VLCKit's licensing terms - regrettably, there are quite a few.


External Links