Fork me on GitHub
Discover the new generation of video players
Get real time video controls

Stingray is a video playback engine that gives you complete control over your reading speed : Want fluid fast forward or reverse? It's made to give you analog control over how your video is playing.

Want to know what you can build with it? Head to our usage Gallery.

Fast

Stringray provides an optimized 2 way buffer that allows uninterrupted playback direction commuting.

Extensible

The simple C++ plugin ABI allows anyone to code plugins to control Stingray. Use a joystick, an arduino, your mouse, etc... Popular plugins are already released.

Free

As in "free speech". Stingray is licensed under the GNU-GPL V3. To give users maximum freedom, plugins are allowed to be licensed under any License as specified in the GPl FAQ.

Portable

Built with autotools, Stingray is designed with portability in mind. It uses libav for video decoding and SDL for display and should benefit from hardware acceleration on nearly any platform.

Usage

Create a video

Stingray is currently really picky about it's videos. It must be encoded using something along those lines :

avconv -r 25 -y -i "input_video.mp4" -g 1 -keyint_min 0 -c:v mjpeg -an -q:v 2 -pix_fmt yuvj420p "output.mov"

A shell script is provided in the repo as `stingray-converter.sh` for linux users:

./stingray-converter.sh input_video.mp4 output.mov

Controls

The default install includes only keyboard controls. You can go forward with Right Arrow and backward with Left Arrow. Exit with Escape or Alt+F4.

Use plugins

Stingray is still in the early stage, a plugin list should be made available shortly.

Contribute

Make plugins

The easiest way to contribute is to make plugins. Interface Stingray with your controller of choice and publish it. Or keep it private, it's up to you. Head over to the plugin ABI page and start upgrading your Stingray.

Request Features

See any way to make Stingray better? Request a feature on github.

Improve code

Here at holusion, we're no C++ ninjas. Any code review / contribution are welcomed! head to the git and fork!

Show what you do

You have used Stingray to do something? Tell us and we'll feature your story here.

What's Next?

With Stingray, we proved it's now posible to offer real time experience with video decoding. We now want to advance the technology further. We have 3 main improvement points :

Better control options

We need to offer tailor made playback control with more plugins and an improved, deeper ABI

Improved encoding

We're studying modern encoding options. While support is often lacking, they could provide a sweetest spot between a large file size – I/O congestion – and max ecompression – lower decode speed.

MJPEG-2000 and h.264 AVC with intra mode are promising great improvements in file sizes with no decode speed penalty, but they need further testing and carefull selection of decoding libraries.

We are also planning to further improve our buffering strategy to provide adaptive decoding that scales well with every system.

Extended personalisation options

We think Stingray meets many use cases and as such we are planning to add a lot of knobs and levers to fine tune it to every particular need. A lot of compile-time or runtime options should be added to test the sweetest functionalitites.