Completed

OpenGL + VLC wrapper library

This project was successfully completed by BonzaiThePenguin for $3000 USD in 14 days.

Get free quotes for a project like this
Project Budget
$3000 - $5000 USD
Completed In
14 days
Total Bids
13
Project Description

I am writing a media player in Java and currently have to pull data from the video library into the JVM and then write it back out to a texture id in OpenGL. This obviously creates a performance issue and is wasteful. What I want is a JNI library that I can pass the texture id for the OpenGL texture (the OpenGL context created from LWJGL) and it updates the texture for that frame (currently playing video in libvlc) into the OpenGL texture.

The library will also need to have other accessibility to work with loading, controlling, etc. of a video into libvlc from Java. Very similar to VLCJ (unfortunately VLCJ is GPL and additionally requires data to be pulled into the JVM before written back to OpenGL) as far as functionality.

Please feel free to contact me directly to discuss this in more detail.

Project Specification:

Video

- read video details after load

- load file or URL

- play, pause, stop, jump to position

- read video position during play

- render(textureId) -

public interface Media {

public void load(File file);

public void addLoadedListener(MediaLoadedListener listener);

public void addActionListener(MediaActionListener listener);

public void addProgressListener(MediaProgressListener listener);

public void play();

public void pause();

public void stop();

public void position(long frame);

public long currentFrame();

public long currentTime();

public MediaInfo info();

public void render(int openGLTextureId);

}

public interface MediaLoadedListener {

public void received(MediaInfo info);

}

public interface MediaActionListener {

public void received(MediaAction evt);

}

public interface MediaProgressListener {

public void received(MediaProgress evt);

}

public class MediaInfo {

long durationInMilliseconds;

long bitRateInBytes;

VideoInfo video;

AudioInfo audio;

MetaData meta;

}

public class VideoInfo {

String codec;

int width;

int height;

double fps;

MetaData meta;

}

public class AudioInfo {

String codec;

long range;

MetaData meta;

}

This is a quick write-up of how I'd like to interact with the system, but I'm pretty flexible about the design as long as I can access the information VLC has along with the ability to render a playing video to OpenGL.

To sum up, I want a C / C++ library created that interfaces with libvlc and provides the ability to update an OpenGL texture (by id) from the current playing video frame (rendering the video to the texture). Then I need a JNI wrapper for the library so that I can access it in Java.

Completed by:

Looking to make some money?

  • Set your budget and the timeframe
  • Outline your proposal
  • Get paid for your work

Hire Freelancers who also bid on this project

    • Forbes
    • The New York Times
    • Time
    • Wall Street Journal
    • Times Online