Skip to content

OpenMax accelerated video player for openFrameworks on the Raspberry Pi

License

Notifications You must be signed in to change notification settings

n1ckfg/ofxOMXPlayer

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

STATUS

Most code replaced 9/29/2018 (see bottom)

Use Releases unless you are contributing or looking for bleeding edge.

Releases contain tested versions that work for specific versions of openFrameworks.

CURRENT KNOWN MAJOR ISSUES:

Requires openFrameworks 10, Raspberry Pi 1-3
Videos with and audio track (even silent) work best and allow more accurate looping/frame tracking

DESCRIPTION:

This is an openFrameworks video player addon for the Raspberry Pi. The video player is hardware accelerated and can provide textures to openFrameworks to be used for shaders, etc.

REQUIREMENTS:

USAGE:

Clone into openFrameworks/addons

There 2 modes of Playback, Direct (aka Non-textured) or Textured.

Direct:

  • Renders directly to the screen, no texture access or pixels. This is most similar to what you will see in omxplayer
  • By default is played fullscreen video
  • OF is still able to run other processes in the background.
  • 1080p video playback is typically good

Textured:

Allows the use of

  • shaders
  • pixel access
  • drawing overlays
  • 720p video works best here

Audio:

  • Yes

Headphone jack may require this tweak:
https://gist.github.com/jvcleave/4972661

To use HDMI Audio you may need to add the below line to /boot/config.txt and reboot. See http://elinux.org/RPiconfig for more details

hdmi_drive=2

EXAMPLES:

example-basic:
Playback of video in texture mode (default)

example-texture-mode:

Playback of video in texture mode (default)

example-direct-mode:

Playback of video in direct mode (no textures/pixel access)

example-multiple-players:

Simultaneous playback 2 videos in non-texture mode

example-playlist:

Playback of a folder of videos in texture mode

example-pixels:

Example of pixel access that is needed for OpenCv operations/Saving images, etc

example-http-stream:

plays network streamed video

example-shader:

Use of shaders

example-playback-controls:

tried to keep these close to omxplayer

example-wrapper:

ofRPIVideoPlayer extends ofVideoPlayer in hopes to be a drop in replacement for ofVideoPlayer,

There may be other examples in Master branch but the above are most likely to remain

COMPRESSION RECOMMENDATIONS:

CREDITS:

Majority of the code is based off of https://github.com/popcornmix/omxplayer

See COPYING for license details inherited from omxplayer/xbmc

Test video files from: http://www.bigbuckbunny.org/index.php/download/

REHAUL NOTES:

I have basically rewritten the underlying engine in order to keep as close to omxplayer as possible. It seems to be about the same performance-wise. Noticeable changes are better looping and audio. This addon should play most files the same way as omxplayer. ofxOMXPlayerEngine is basically omxplayer.cpp with additions to support the openFrameworks model and textures.

This addon no longer has static/custom compiled versions of libav.

I closed all the previous issues as I won't be doing anything to the old code.

TODO: I still need to port back some of the direct mode display options and some stuff around the filters. There is also some functionality missing around switching the audio settings at runtime.

About

OpenMax accelerated video player for openFrameworks on the Raspberry Pi

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 87.7%
  • Makefile 9.2%
  • C 2.6%
  • Other 0.5%