Playing a .mov for Windows C++ builds

Hi guys,

I’ve looked in to this and can’t really seem to get a definitive answer. Is there a way to play .mov video files for targeting windows and mac native? (i.e not flash and not mobile). If so - how do we do it?

Thanks!
Jay

The issue is with decoder licenses, generally. I know someone working on VP9 codec support, that could be viable. The problem with most formats is it would require us or you to pay big $$ to use it. Do you think VP8/VP9 could work?

I was working on a lime fork that lets you play video files with Windows Media Foundation(WMF), which would work on Vista and later. ANGLE is also required.

With WMF, you can use video decoder which is built into target system, so decoder licence is not an issure here, but I’m not sure if this will be merged with official lime.

I guess I’m not so hot on my video decoders so I’m not totally sure.

I’m looking to play pre-rendered cutscenes in the game, so the content is entirely ours. We could probably export to a different format.

How would I go about playing VP8/VP9 vids? I’ve converted my Mov to MKV but openfl-webm wasn’t working for me.

Are we talking about openfl.media.video or something else? This would be for Windows/mac/linux native c++ builds?

Yeah, the idea would be using openfl.media.Video, built-in, on desktop builds.

@vroad WMF is interesting, would that break support for older Windows builds? I guess we would need Mac and Linux solutions, so that’s a positive aspect of using VP9 (though that isn’t hardware)

Is there anything I can do in the meantime? I need to show videos in my game and the completion date is fast approaching.

Thanks :slight_smile:

Bink video support should work already, but that costs for a license. I think @mrcdk also had some VP9 support working?

Sorry to be so dense about this. How should I go about playing a video? Is it the usual netstream? How do I activate a license within the programme? Which are the formats I can use with or without a license - and how do I get openfl to recognise that it is OK to play the various formats?

Thanks!

When you target HTML5, we have video support built-in. In order to support other platforms officially, we need to settle on a format/library that has a good license, and that would not be unreasonable to include by default (file size wise, dependency wise, etc).

Of these choices, VP8/VP9 might be a good choice. @mrcdk Would you be interested in publishing some of your progress up somewhere?

If you make a library to decode/playback, usually it does not require a license physically to work, but permissively, if that makes sense. That’s why I removed MP3 support, we all used MP3 without realizing we were really liable for $$$$ of license fees. I don’t want to do the same with video :smile:

If you are okay with waiting or helping, perhaps Justo’s work on VP8/VP9 may be a good starting point for us to check out. If you need something more turn-key, the HTML5 target supports video already, or BinkVideo has an extension for OpenFL, but it costs $$$$ per platform.

Thanks so much for the comprehensive answer- it sort of makes a lot more sense now.

Right ok, so @mrcdk I think I’d also love to hear about your progress as well :smile:

Thats totally reasonable and actually great for all of our sakes that unlicensed playback has been disabled for OpenFl. Although its not something I realised at the beginning of the project and video is a pretty important part of it. If I was to buy one of the required licenses - how would I go about re-enabling the appropriate playback? Is this something that I could even do?

Partially due to the MP3 thing, video has never been formally supported in OpenFL (outside of HTML), so if we push on a direction, something like VP8/VP9 seems more desirable to me than ffmpeg, because we KNOW we can use it, and the size and number of dependencies is probably low?

Ah~ this is why you shouldn’t make public your weekend projects, I haven’t had time to work on it more. I’ll upload what I have to github once I get it back to work because I broke it :sweat_smile:

1 Like

I think we’d be happy to look at picking up the torch and carrying it, no harm in imperfection :wink:

Here, https://github.com/mrcdk/linc_libvpx

So I’ve been trying to get this to work but its left me pretty baffled. Is this a linux only solution?
I’ve tried getting hold of cygwin but that hasn’t helped.

I’ve only got a few weeks left before this projects need to be handed in. Is there no easier way? @singmajesty

Thanks guys

@mrcdk I know you specifically state ‘don’t expect any support for it’ in the docs but… Is there anyway you could give me a quick run down on how to set this up with my project? It uses .sh - is it linux only? Just a little bit of guidance would be hugely appreciated - thanks!

Yes, it’s only for linux. There is no much else to add to the instructions, download libvpx 1.4.0 into the folder that the readme points at, build it and check the test to know how to use it.

OK thanks for replying, sorry to hassle you- it was the ‘linux’ only bit I needed to confirm. Thanks, I’m unfortunately PC + Mac at the moment. The search for video continues…

I believe this library is cross-platform, we’ll just have to make it build for others