January 21, 2013 at 5:06 am #17382sheridanisParticipant
I do a lot of stuff involving the playback of movies in QC across multiple computers and video playback control and syncing are always an issue. Whilst the v002 movie player is great I don’t get the best playback performance and stability and have found the inbuilt movie player better for syncing. Controlling it though (pause, jump etc) can be a pain though apart from when using an external time base which also effect syncing.
I was thinking of implementing a movie player app (that has similar controls to the v002 movie player for QC) that outputs its video via syphon and is controlled via OSC. The goal would be a bare bones system for playing a folder of movies with the least latency and overhead.
Would anyone care to comment on this approach in terms of if it would work any better or not (in terms of stability, latency, performance/overhead) than doing things in QC?
Would it be better to start from scratch with this or base it on the v002 Media Tools?
P.S – Also is the maximum resolution supported by syphon dependent on the GPU or fixed? and am I right in assuming that the size shouldn’t affect the latency and performance (pre working with the image in the syphon client)?January 21, 2013 at 7:58 am #17386bangnoiseKeymaster
The current “release” v002 Movie Player 2 has terrible performance. Neither of us have the time to fix it right now.
A Syphon-serving movie app is a sound idea. The v002 Movie Player 2 spawns another process and uses the same mechanism as Syphon (IOSurface) to send the video to QC. Apple’s QC player does that too.
If you are able to use codecs supported by AVFoundation – H.264, ProRes and Photo-JPEG I think are the current list – then that is by far the simplest route to take, and very fast.
The maximum frame dimensions Syphon supports is dependent on the GPU. If you’re careful about how you feed your frames to Syphon it needn’t add any further performance hit.
If you let us know if you can work with AVFoundation or not we can probably give you pointers to the most efficient route to send frames through Syphon (if you need them).January 21, 2013 at 9:16 pm #17395sheridanisParticipant
Were looking to the future with this, so AVFoundation is a possible choice although I’m not familiar with it. My current thought was to try and do it with openframeworks (which I’m also not familiar with but am assuming their movie playback is reasonably mature by now) such that its as cross platform as it can be.
This would allow us to substitute the syphon component for wyphon (if it ever gets off the ground)…. but this would only be if we are forced to use windows again – for things like access to an SDK for camera based automatic alignment system for multi projector curved screens, access to better GPU’s, if Apple discontinues the mac pro etc.
The plan was to also do something similar with the blackmagic API to enable low latency capture and dynamic framerate/res selection. Kineme are about to release a plugin for this though so we will see how that goes first.
For now I’ll probably look into doing some tests with avfoundation and openframeworks to test performance. Once I’ve got some code and data I will get back to you to see if there a better way of doing things if that’s ok? although feel free to add in any suggestions now.
Cheers – JamesJanuary 22, 2013 at 3:40 am #17440bangnoiseKeymaster
Just to note that the OpenFrameworks movie code was recently rewritten to use 64-bit APIs and is not mature – but it’s widely used so it should shape up fast.January 22, 2013 at 2:09 pm #17457vadeKeymaster
Additionally, OpenFrameworks uses OpenGL, not Direct X, so “Wyphon” is out of the question until they support OpenGL (and gain a ofxWyphon add on).
Secondly, Movie playback on OpenFrameworks has some subtle issues as well.
- You must be logged in to reply to this topic.