Hard Light Productions Forums
Modding, Mission Design, and Coding => FS2 Open Coding - The Source Code Project (SCP) => Cross-Platform Development => Topic started by: fizz on June 01, 2006, 03:54:14 am
-
Now that it looks like the Windows builds are slowly getting towards supporting MVE movies as well (they do, don't they?), maybe there's some additional interest in creating movies in MVE format, since they are going to work on all platforms (as opposed to AVI). For Windows users avi2mve has been around for quite a while.
I've been working on plugins for the GStreamer multimedia framework (http://gstreamer.freedesktop.org (http://gstreamer.freedesktop.org)) for a while now, and I'm finally happy enough to announce the preliminary result: http://www.lanipage.de/gst-mve-0.10.1.tar.bz2 (http://www.lanipage.de/gst-mve-0.10.1.tar.bz2)
The multiplexer/encoder still needs a bit of tuning, but both playing and encoding basically should work just fine. I'd be especially interested in some feedback by users on big-endian systems. (Note that the code currently in FS2O CVS only supports playback of 16-bit movies, while the encoder can also create 8-bit ones.)
Happy movie-making.
-
:jaw: :eek: :eek2: :jaw:
Dude! Holy Crap! I didn't think anyone was actually going to do this. Windows will support video for MVEs and audio so long as it's with OpenAL. If people actually started converting movies to MVE then we might actually be able to ditch that crappy AVI code! :D
-
Why do other platforms have trouble with avi?
The main reason no one has bothered with MVE format is not just that Windows couldn't play it but that Interplay used to be very fierce about guarding the format. Now that Interplay are moribund it might be possible to get away with it but it's worth keeping in mind that Interplay have acted more strongly to MVE making software than to piracy of their games.
In addition although playing MVEs is probably more stable than avi's they do have a much larger filesize on average.
-
How big a difference for example?
Hallfight.Avi=22.2mb
How bigs the mve equivalent?
-
Intro = 95 Megs for the avi but 200MB for the MVE.
Mono1 = 21MB vs 60MB
I doubt that the ratios with the FS1 movies is any better
-
Why do other platforms have trouble with avi?
The various codecs needed for AVI decoding are tons more guarded and protected than MVE is. The Windows version doesn't have to worry about this since it doesn't include any actual support for AVIs, it just passes it off to DirectShow which create an overlay to show the movie. All of the AVIs are in DivX format which makes it difficult to get Quicktime support for the same thing in OSX, Linux is much more difficult than that. The best option would be to use XviD and link it right to the game binary, but XviD is GPL so we can't use it. ffmpeg is the other option, provided we only used the LGPL portions of the code, but it's a legal mess in it's own right.
Believe it or not, MVE is the safest and easiest route to go.
How big a difference for example?
Hallfight.Avi=22.2mb
How bigs the mve equivalent?
73meg.
I don't hold size as much of an issue though. There aren't that many in-game movies that you would have so nearly all of the HD space would be taken up by regular game data. Most cutscenes are going to be in-game cinematics rather than actual movies anyway.
-
Is there any quality loss, I've got both games but they havent even graced my drive since source code project hit the Forums shelves. If the quality difference is indistinquishable then i'm happy with avi for the mo, Although the MVE's always seemed very crisp and fluid.
-
taylor, what about using X264 (GNU license) as the video codec and Ogg Vorbis (BSD license) as the audio codec?
-
All of the AVIs are in DivX format which makes it difficult to get Quicktime support for the same thing in OSX, Linux is much more difficult than that. The best option would be to use XviD and link it right to the game binary, but XviD is GPL so we can't use it.
All the movies with the exception of Hallfight and the FS1 intro are in Xvid in fact. The divx versions of the others are really old (and poor quality) versions I knocked up despite not actually being that good with VirtualDub. Hallfight and Intro are actually the original convertions Sandwich made when he first posted about MVE2AVI. I never saw any reason to replace them when I converted the others cause it saved me a whole bunch of time and they were at least as good as anything I could have made.
TurboNed's XVid versions of the FS2 movies are far superior to mine. It's a pity he disappeared before converting the FS1 movies too.
I don't hold size as much of an issue though. There aren't that many in-game movies that you would have so nearly all of the HD space would be taken up by regular game data. Most cutscenes are going to be in-game cinematics rather than actual movies anyway.
Between the FS1 and FS2 movies we're talking about over a gigabyte of data. As opposed to half that for the avi versions. And it's not HD space that I take issue with. It's download bandwidth. Even when compressed with WinRAR on maximum settings the MVEs are still bigger than the uncompressed avi versions.
I fully understand that the current movie code is a PITA. I only need to look at how often it's been broken and fixed by you to see that but if there is a solution that doesn't involve dropping it I'd be much happier. And that's before we consider the fact that campaigns which use the current avi system would have to re-encode.
-
Between the FS1 and FS2 movies we're talking about over a gigabyte of data. As opposed to half that for the avi versions. And it's not HD space that I take issue with. It's download bandwidth. Even when compressed with WinRAR on maximum settings the MVEs are still bigger than the uncompressed avi versions.
X264 can encode video better than DivX or XviD can, so it should be possible to encode the FS1/FS2 cutscenes at least as small as Divx/XviD if not smaller.
http://www.doom9.org/index.html?/codecs-final-105-1.htm
-
As long as no one expects me to do it :D
-
Is there any quality loss, I've got both games but they havent even graced my drive since source code project hit the Forums shelves.
Well, as long as the AVIs have been made from the MVEs, MVE is bound to be better quality (though whether the difference is noticable is an entirely different matter). Additionally, MVE does lossless encoding but isn't terribly well suited for high-color images, while the usual AVI suspects like DivX and XviD are lossy codecs but deal better with many colors (ie. compression is much better).
EDIT: FWIW, the movies created with my encoder are usually smaller than the FS2 originals, but not enough to really make a difference, I guess
-
The main reason no one has bothered with MVE format is not just that Windows couldn't play it but that Interplay used to be very fierce about guarding the format. Now that Interplay are moribund it might be possible to get away with it but it's worth keeping in mind that Interplay have acted more strongly to MVE making software than to piracy of their games.
There's a number of projects that have included MVE support for years, apparently without problems (eg. the entire legion of Descent descendents, ffmpeg). Plus, I don't see MVE as much of a contender for future video formats. The format is basically unsuited for HD multimedia content. As such, I don't see much reason for Interplay to guard the format. Then again, it is admittedly not always a good idea to expect companies to act reasonably...
-
Interplay/volition (RIP :v: !!) must have invested at least some time and money in developing the format. To just cast that to the wind, means they are experiencing an investment loss, As any CEO will tell anyone, "Why should i lose money through my own actions." I sp'ose Interplanks think if they hold out they might get some money at some point from somewhere in the footure :blah:
-
h.264 is deffinitely preferable to DivX/XviD given it's high level of compression and superior quality. It works with Quicktime7 which means it wouldn't be difficult to code up for OS X support (we could decode the video frames directly to OpenGL for instance). Windows would just need a compatible DirectShow filter (though we'd still have to deal with the piece-of-**** DShow code). Linux would still have to use ffmpeg which gives us the legal issues again on that side, unless we never distribute binaries that are linked to ffmpeg, and never use ffmpeg libs which contain the GPLd code (liba52 and libpostproc). The main problem with all of that is it's 3 totally different portions of code which have to be written/rewritten and maintained, each with their own quirks.
The only source code that I know for x264 is GPL, which we can't use, so I don't know of a way to just have that one codec built right into the game source (like MVE is). That means that we would have to rely on an external system to decode movies and that's where we are running into issues with the current code.
As fizz points out, Interplay is unlikely to do anything at this point. MVE is antiquated and totally unsuited to current games, much less future ones. Plus the source code and format docs for MVE have been publicly available since at least early-2002/late-2001. :v: isn't going to do anything about us using MVEs, since it's not their tech, and Interplay is bankrupt, the fate of their IP is unknown. Suing over this isn't going to pay off for them since there is no way to get a good monetary settlement out of it. Off the top of my head I can think of at least a dozen open source projects which have MVE support (and have had it for years) and Interplay has done absolutely nothing about it. File size and color quality is a problem I agree, but it's something that we can deal with 100% in the game code. We don't have to rely on an external source to decode a/v. That also gives us 100% control to optimize and bug-fix the movie player.
There is just going to be no win-win here. MVE suffers from hi-color dumbness and large file size. Anything-else is going to greatly increase support issues and require much greater coder work to not only write the code, but also to keep it working. Downloading issues are a problem, but many people already have the game which means they already have MVEs. MVEs (since they use CFILE to load and use) can easily be used off of a CD or DVD and you can save the HD space. If :v: decides to get serious about protecting it's copyrights on the game data then everyone currently distributing the game over the internet is going to have trouble on their hands at which point downloading no longer becomes an issue. With every possibility you can run off a page of negatives about it.
-
Downloading issues are a problem, but many people already have the game which means they already have MVEs.
That goes for retail game cutscenes, but what about mods and total conversions? Webspace isn't quite free either if bandwidth isn't an issue.
-
Downloading issues are a problem, but many people already have the game which means they already have MVEs.
That goes for retail game cutscenes, but what about mods and total conversions? Webspace isn't quite free either if bandwidth isn't an issue.
How many mods/TCs are actually using AVI cutscenes? (I ask that seriously, I don't keep up with everything). I tend to see just an intro video, if that. Plus MVEs are a bit more compressable by something like ZIP over DivX AVIs, so you can recover some of that space (though not a lot) when in server storage/transport.
It's seamingly up to me to get all of that working, or keep it working, and I don't really care whether AVIs work or not. Going with h264 (or any other codec that we can't integrate directly in the game source) doesn't solve that problem. Most of the bugs in the AVI playing code for Windows have been fixed by me, and I don't even use it. I don't really have the time (nor the inclination) to keep fixing those issues either. If AVIs broke under Windows tomorrow and no longer played, I honestly wouldn't care. AVI playing code for OS X and Linux still needs to be written or finalized, but I don't really want to work out all of the various issues for that either since it's still 100% up to me, and even when I do get it coded it's all on me to keep it working.
I'm not against AVIs because I know that mods use them. But I'm not for them since I will never come out ahead on that particular feature. If someone else were to handle the code (or the majority of it) then I wouldn't have a problem. If movies worked better under Windows then this would be less of an issue, but it is an issue, and one that's not going away.
-
Transcend used an XVID movie as a near end scene, ==spoiller==
The bit where time goes back REAALLLLLY quiuckly.
.AVI extension i'm sure.
-
How many mods/TCs are actually using AVI cutscenes?
No idea, I don't keep on top of most mod/tc developments. Probably not many considering only a minority of such mods that would use cutscenes have been released. :rolleyes:
-
I can tell you for certain that I know that BSG, MindGames, WCP, BHX and Transcend use them.
Based on what I've heard TVWP, B5:Heat em Up and Machina Terra also have them.
-
Raider Wars has a DivX outro, and madaboutgames is working on a campaign with several videos between missions.
WCS will have an intro and other cutscenes IIRC, don't know about the other MODs.
So, avi is used, although not heavily (yet). Re-encoding the videos to mve would be some work, but nothing too serious. I'm more concerned about the quality of the mve movies. But if it could be improved, that would be great, because as of now, DivX/XviD offers superior quality at smaller file sizes.
On the other hand, I can see the beauty of an in-code player for movies, that would work on all platforms without relying on OS handled video playback.
-
Can i just check what formats the scp supports, AVI im sure, but what other formats and parameters are needed?
-
Windows supports anything that DirectShow can play (which is basically anything Windows Media Player can play). Not certain about Linux and MacOS though.
-
Erk, FS2 is build on Direct X, how could i be so stupid..........
What you're saying is i could have any media video, any res (as long as my vid-card supports it) and FS2 will play it as long as its in the movies folder and i reference it in the campaign editor?
-
Raider Wars has a DivX outro, and madaboutgames is working on a campaign with several videos between missions.
WCS will have an intro and other cutscenes IIRC, don't know about the other MODs.
So, avi is used, although not heavily (yet). Re-encoding the videos to mve would be some work, but nothing too serious. I'm more concerned about the quality of the mve movies. But if it could be improved, that would be great, because as of now, DivX/XviD offers superior quality at smaller file sizes.
I'm not sure what quality the gstreamer plugin has, but no doubt it could be improved if needed. The main problem with MVE is that is at most 16-bit color. That will give you gradient problems and what not.
The other issue is that, all of the mods using DivX, can only do so as long as the AVI code works. There are no DirectX people active in the project any longer, and we are moving away from most DirectX code. Direct3D is stale and will likely get removed before too long, DirectSound is getting replaced with OpenAL since no one here knows anything about DirectSound (and I'm doing most of the sound work which means OpenAL only), DirectInput will likely get replaced with SDL since that makes the code much cleaner and easier to work with (and since the input upgrades are coming from me and I know SDL only). If the AVI playback breaks then there may be no one to fix it. That's why I want to try and get away from a platform specific movie player if at all possible. ffmpeg would work on Linux, Windows, and OS X, but with the many possible legal issues I'm hesitant to actually finalize the code and commit it to CVS.
The best thing would be to pick one, and only one, movie format. We support that one and exclude all others. If that one isn't MVE then we can support two formats, since the MVE code is already taken care of. Whether it's a Theora/Ogg combo or h.264, or something else entirely, doesn't really matter as long as we can get around the legal issues, and everyone makes their movies in that format.
What you're saying is i could have any media video, any res (as long as my vid-card supports it) and FS2 will play it as long as its in the movies folder and i reference it in the campaign editor?
Yes, but that would only work under Windows, which excludes about half of your available audience.
-
I'm not a fan of Penguins or apples really, They both demonic icons :lol:
Cheers for the heads up, "dons his 3ds max cap"
-
*snip*
Whether it's a Theora/Ogg combo or h.264, or something else entirely, doesn't really matter as long as we can get around the legal issues, and everyone makes their movies in that format.
What are the legal issues with GPL ? I thought open source is open source.
-
It's complicated, but basically Volition imposed restrictions that the GPL doesn't. Thus they're incompatible.
LGPL is closely related to GPL, but it's different enough to allow flexibility for licenses like Volition's in certain situations.
-
IIRC, the FreeBSD license is even better that LGPL in this case, I think. You can use FreeBSD stuff to make closed source stuff, even for profit. So anything that was developed for FreeBSD is probably a good idea. It allows the most flexibility I've seen outside of a creative commons license.
-
IIRC, the FreeBSD license is even better that LGPL in this case, I think. You can use FreeBSD stuff to make closed source stuff, even for profit. So anything that was developed for FreeBSD is probably a good idea. It allows the most flexibility I've seen outside of a creative commons license.
It's just the BSD license, or a BSD-style license, like what OGG Vorbis is released under. The problem of course is that you actually need the code that you need in that particular license. As far as I know there isn't an AVI player that is under a BSD type license so it doesn't really matter which license is better than the next.
A lot of people don't release things like that under a BSD license since you are completely giving your work away. With GPL/LGPL the code still holds tangible value to the creators since a 3rd party can't just take the code and do whatever they want with it. With the code under a BSD license someone can take your work, use it however they want, and never you the least bit of credit for it. They don't even have to tell you that they are using it. If you work for a year or more on a great bit of code, then someone, legally, takes it and makes 10 million dollars off of it, never giving you so much as a mention... you would be pissed. If you ever found out about it anyway. That's why you see code that is GPL and LGPL. And that's why something like the OGG Vorbis license, which is a BSD-style, requires that you actually give notice that the code is used in the binary (check out the credits screen in FS2_Open for instance, we have to give notice that it's using OGG and JPEG code).
-
I updated the link in the initial post to a much improved version I basically consider feature-complete now. One remaining issue is that encoding is rather slow. Suggestions on how to improve the situation are very welcome.
If there is interest (and someone can point me at where to get some) I can also offer to take a look at exisiting (AVI) movies and try to transcode them into MVE to get a feeling for how notable the difference (in both quality and size) would be. Due to the aforementioned fact that the encoder is still pretty slow (and my machine isn't quite the speediest, either) I'd like to concentrate on shorter scenes for now. Suggestions?
-
You can get all the FS2 movies in avi format from here (http://fsfiles.nukelol.com/FS2_Cutscenes.rar). Bastion is the smallest if I remember correctly.
-
You can get all the FS2 movies in avi format from here (http://fsfiles.nukelol.com/FS2_Cutscenes.rar). Bastion is the smallest if I remember correctly.
Thanks, but reencoding the original movies is a little pointless, isn't it?
-
Thanks, but reencoding the original movies is a little pointless, isn't it?
Only slightly. :)
Try Transcend (http://www.hard-light.net/forums/index.php/topic,34098.0.html), as it has an end movie in XviD format (I think, does in my mod dir anyway).
-
Thanks, but reencoding the original movies is a little pointless, isn't it?
No better test of quality than a side by side comparison :)
-
But we pretty much know the result already. The original movies have characteristics that are obviously well-suited for MVE.
I already had a look at the Transcend end movie. Apart from the fact that it is very long, it's also pretty large resolution-wise and most unsuited for MVE because scenes change so damn fast there's not much to gain by comparing to the previous frame. So, that's bascially best case and worst case. I'd like to have an example of something in between. :p
-
Tolwyn brought this topic up as he happened to ask me about mve tools. We all know MVE is poor format compared to newer ones but is the easiest to implement. I think internal MVE support is a good idea to give projects a trouble-free solution for movies that are unsuitable as in-game cutscenes.
But a higher quality alternative would be nice, how much work and trouble it would be to let the operating system and any installed decoders handle movie decoding? This way projects could use whatever video and audio format they want because decoding is done by external decoders that are installed, such as ffdshow and ffmpeg.
-
But a higher quality alternative would be nice, how much work and trouble it would be to let the operating system and any installed decoders handle movie decoding?
A lot. Otherwise I would have added code for this already. Using DirectShow under Windows is a crappy way to do it (as should be obvious by all of the problems everyone has), but it's about the only choice. We can use QuickTime under OSX (a pretty good solution in fact, can run through OpenGL), but QuickTime doesn't support DivX/XviD natively and the plugins for it cost $$ and generally don't work all that well. There is no solution like that for Linux, you have to use the decoder directly, and that would most likely be ffmpeg since it's the best overall solution.
ffmpeg has a problem though, it contains tons of unlicensed IP (mp3, mpeg2/4, etc), and there is absolutely no guarantee that the companies who own that IP would leave us alone forever. Also, ffmpeg contains both LGPL and GPL code, but we can only make use of the LGPL parts since the FS2 source isn't compatible with the GPL. This means that, at least for the builds which are distributed, we have to use a cut-down lib. It's not the end of the world, but it's extra work and extra concern to bother with. And if we stripped out the parts of ffmpeg which give us trouble then it's a lot less useful.
But all of that is really besides the point. As stated already, we should not even allow people to use any video format they want. There should be a well defined list, containing at most 2 video codecs (one being MVE), with specific audio format requirements (not mp3), that can be used with the game. If I was in a pain-in-the-ass mood I'd just rip out DirectShow support, add a mpeg1 decoder that supported all platforms, and be done with it. And if I was really in a strange mood then I might use RoQ instead, just for kicks.
-
RoQ, shouldn't it have better quality than MVE? :)
-
RoQ, shouldn't it have better quality than MVE? :)
Quite a bit I imagine. As fizz pointed out, MVE is a good format, if the movie is right for it. RoQ is sort of the same thing but more up to date and considerably more advanced, as it should be. idSoftware made it for the Quake3 series and has kept using it for Doom3 based games too. I'm not sure how it actually compares to DivX or the like though. There is a decoder for it (which is basically BSD licensed, though not officially) and several encoders, one from idSoftware and an open source one too.
-
MVE would be great, if it would support 24 bit images, as xvid does.
As you said earlier, some users experience problems with xvid playback. On the other hand MVE produces nasty artefacts and I can't even convert our movies to the mve format for no apparent reason. So I have no idea what to do next :(
-
MVE would be great, if it would support 24 bit images, as xvid does.
While extending the format in that direction is not impossible, I don't think it would improve the situation much. The real limitation in MVE is not the maximum of 16-bit, it's the maximum of 64k per frame (including audio). You won't be able to leverage the advantages of 24-bit.
On the other hand MVE produces nasty artefacts and I can't even convert our movies to the mve format for no apparent reason. So I have no idea what to do next :(
What are you using to convert your movies? avi2mve or my gstreamer plugin? If it's my plugin I'd like to know what's going wrong so I can fix it. If it's not, please give it a try. I'm willing to help if you need some. I am very much interested in making it work, even if some of the artifacts probably can't be helped.
-
well, I am using avi2mve (+gui). I would love to try our plugin, but I am not much of a pinguin lover :(
-
You don't have to be (would help, certainly, but whatever). A bit of googling turned up the Ixion media player (http://gstreamer.xeris.cz/ixion/ixion.html (http://gstreamer.xeris.cz/ixion/ixion.html)) which apparently includes GStreamer binaries. Now you just have to find someone who can compile the MVE plugin for you...
-
Isn't it possible to upgrade the format, if the encoding/decoding code is publically (if a bit illegitimately) available?
-
Sure, but if you lift the size constraints, the "MVE" movies are going to get even bigger. If you're going to change the format anyway, you're better off using a different codec like Theora or something.
-
If you're going to change the format anyway, you're better off using a different codec like Theora or something.
Don't suppose you'd like to do up a Theora player for us? :D
Since we are already using libogg and libvorbis, it would be logical to just add libtheora for video as the alternative to MVE. No license issues, no patent issues, not a ton of new libs to rely on, and a good quality codec. If I had the time this is deffinitely something that I would work on myself.
-
If you're going to change the format anyway, you're better off using a different codec like Theora or something.
If I got it right, apparently Theora would have compatible license but there is no media player with a compatible license.
-
If I got it right, apparently Theora would have compatible license but there is no media player with a compatible license.
We just write a player to integrate directly in the game, like the MVE player does. There is probably an example player in the libtheora source so it could be used as a base.
I think that every video player for Linux already supports Theora. VLC supports it under Linux, Windows and OS X. And there are DirectShow filters for Theora as well. None of that really matters though, it's stupid to rely on a media player for movie playback in a game anyway, there are just too many things that can mess up with that arrangement.
-
I assume Fury meant for if you want to play the movies without running the game. If there are filters for DS then it's not really a problem :)
-
I did mean an integrated movie player, as taylor(?) did mention somewhere there is no license compatible media player.
-
Don't suppose you'd like to do up a Theora player for us? :D
Probably not anytime soon, I'm afraid.
-
I hadn't time or the possibility to test the Theora format but from what I read it sounds a lot better then MVE.
Do you know of a simple encoder..maybe even a plugin/possibility to make it work together with VirtualDub or other programs?
-
Wikipedia's Theora page (http://en.wikipedia.org/wiki/Theora#Encoding_Theora_videos) lists several options for encoding.
-
I hadn't time or the possibility to test the Theora format but from what I read it sounds a lot better then MVE.
Do you know of a simple encoder..maybe even a plugin/possibility to make it work together with VirtualDub or other programs?
I posted yesterday a link in our internal to the command line tool to encode theora movies. It is the only available win32 encoder. And anyway, I do not believe that Theora will be implemented any time soon :(
-
I posted yesterday a link in our internal to the command line tool to encode theora movies. It is the only available win32 encoder.
With ffdshow installed you can use VirtualDub to encode Theora movies.
And I don't know when Theora support will hit game code, but with the newest rash of people complaining about the AVI movies having trouble, I'm encouraged to start coding on it just so we can finally drop AVI support. The main problem is that we would be dropping support for all AVI movies that currently exist and going with a single movie format (excluding MVE from that statement). Making sure that we can do that in a way that doesn't totally piss everyone off is part of the change. How much time and effort goes into getting Theora support in the game depends on support from the mods since they are the ones that will have to deal with the transition from AVI. If everyone agrees that it (Theora) is the best choice, and the change needs to happen as soon as possible, then there won't be the risk that working on the decoder would be a waste of time and effort.
-
If everyone agrees that it (Theora) is the best choice, and the change needs to happen as soon as possible, then there won't be the risk that working on the decoder would be a waste of time and effort.
Well, Saga suffers from the buggy avi support. Movies fail to play on multiple systems (even if the correct codec is installed). Of course, MVE might be a temporary solution. Then again, converting to mve is not that easy. avi2mve files do not work in FS2. So, is there any good to try and convert our avis to mve or wait for the theora support?
-
How much time and effort goes into getting Theora support in the game depends on support from the mods since they are the ones that will have to deal with the transition from AVI.
The only mods that use AVI movies that are actually released are Lightning Marshall and Transcend, AFAIK. Everything else is still in development. For LM and Transcend, we'd have to get in touch with the original developers, but for the rest, it's quite likely they still have the raw movies around. If we were to say, in a sticky thread or something, "Here are the options for encoding movies, and here are the codecs to use", then the changeover should be doable without much difficulty IMHO.
-
Well then... :)
-
And for those who have the right Directshow filters installed (...both of you :p), I just committed a very small change that lets the game recognize .ogg files as movies. So now Theora files are viewable. Granted it still is using Directshow to actually SHOW the Theora files, but eh. :nervous: At least this way we can start messing with encoding settings outside the game and actually see results in the game for starters...
My most recent CVS build (http://www.wcsaga.com/~team/Backslash/fs2_open_r.exe)
ffdshow (http://www.free-codecs.com/download/FFDShow.htm)
ogg directshow filters (http://www.illiminable.com/ogg/) (if still necessary)
-
Make sure you add that to the 3.6.9 branch too.
-
And for those who have the right Directshow filters installed (...both of you :p), I just committed a very small change that lets the game recognize .ogg files as movies. So now Theora files are viewable. Granted it still is using Directshow to actually SHOW the Theora files, but eh. :nervous: At least this way we can start messing with encoding settings outside the game and actually see results in the game for starters...
That's not going to show the true results though. The video and audio will have to run through the game subsystems for a true player. Video will be decoded and accelerated through OGL/D3D, and the audio will run through OpenAL. That's possibly a pretty big difference in visual quality (it will have resize filters applied through OGL for instance) and audio capability compared to what DirectShow will give you. So about all you've really done is add another way for it to mess up, like AVI does. :)
And it's still using DirectShow to play the media, which means it isn't nearly as strict as to the format of the container as the real player will be. It's going to be pretty easy to make Theora files which aren't true ogg streams (such as .ogm files, which aren't actually ogg) and not even realize it since DirectShow will display it regardless. And then when the real player code gets introduced all of those files would be invalid. For everyone who intends to play with this until the real player is ready, it's best to be careful.
-
So about all you've really done is add another way for it to mess up, like AVI does. :)
Yep. I knew you'd like this 'solution' :p
And it's still using DirectShow to play the media, which means it isn't nearly as strict as to the format of the container as the real player will be.
Yeah. Plus those few of us messing around with this aren't exactly familiar with what the format of the container SHOULD be yet, being so new. About all I've done so far is play around with the ffmpeg2theora settings.
I realize the visible results of this change has a very limited lifespan, which is why I wasn't sure about putting it in 3.6.9 branch or not. Just figured it'd be nice to view the files I and others make during our experiments. Don't worry, we won't 'rely' on this. (Though I assume the change I made to cfile is the same sort of change that will be needed when the player is implemented, right? Or is cfile another of those things getting the taylor chrome electroplating treatment? ;))
I wish I had the coding skill to help properly bring the player support in...
-
:D
I do actually think it's a good idea as an interim solution, but as I said, everyone has to be pretty careful about the files they create until the real player is available. That is my only real concern. This is going to be Theora files according to the official spec, not some bastard variation like the ogm container. And the CFILE changes are 100% correct, so no big deal there (though I am working on the big CFILE upgrade for CVPs :)).
I have the example Theora players sitting on my desktop, so I do plan to go ahead and try to work on it this week. I don't know that I'll have time to get anything done, but this is something that I would really like to squeeze in for 3.6.9, since it would officially squash the issues we have with how movies currently work.
-
It would also allow us to do a (semi-)official release of the movies with 3.6.9 rather than some half-assed change over between 3.6.9 and 3.7.
I can already see the support nightmare that having 3.6.9 support avi and CVS support Theora would cause even if standard players aren't supposed to be using CVS any more.
Of course if I can pursuade someone to let me upload the mve versions of the movies that would work with everything :)
-
Hmm, any guidelines for the encoding? (i.e. bitrate, etc) My fingers are itching to try it out :D
-
The only mods that use AVI movies that are actually released are Lightning Marshall and Transcend, AFAIK. Everything else is still in development. For LM and Transcend, we'd have to get in touch with the original developers, but for the rest, it's quite likely they still have the raw movies around. If we were to say, in a sticky thread or something, "Here are the options for encoding movies, and here are the codecs to use", then the changeover should be doable without much difficulty IMHO.
*cough cough*
The "Raider Wars" wars campaign from TBP uses an avi movie for the credits, it's not a disaster if that would stop working though. Some of the WIP campaigns are using avi movies too, but that's just a matter of re-encoding.
Having read up on Theora, I agree that it's the best choice to go, and the sooner it's implemented the better.
-
If I can get the Theora player coded up this/next week then I'll go ahead and get it in for 3.6.9. I'll leave the current DirectShow support in there for the time being though (and it will remain in for 3.6.9). So, the load order would be Theora->MVE->DirectShow. That way no one has to change anything movie wise for 3.6.9, but the code will support them if they do decide to release Theora movies.
-
I've been working on plugins for the GStreamer multimedia framework (http://gstreamer.freedesktop.org (http://gstreamer.freedesktop.org)) for a while now, and I'm finally happy enough to announce the preliminary result: http://www.lanipage.de/gst-mve-0.10.1.tar.bz2 (http://www.lanipage.de/gst-mve-0.10.1.tar.bz2)
Hmm. Does anyone happen to have the package? The link above is down.
-
Hmm. Does anyone happen to have the package? The link above is down.
Works fine for me...
-
looks like the server was down for a couple of hours.
-
I wonder, have you ever considered using Bink codec? Or are there any licensing issues I am not aware of?
http://www.radgametools.com/default.htm
-
The file size is a bit large isnt it?
-
I wonder, have you ever considered using Bink codec? Or are there any licensing issues I am not aware of?
Bink is commercial. I think it's like $5,000-$6,000 per OS for the SDK. I you want to fork over the $18,000 needed for just one developer to do the Bink code, then you can send the check my way. :p :D
I think we'll just stay with Theora though, it's file sizes are a good bit smaller than even DivX. Plus, I've got video almost working in the player now. I just need to get the YUV->RGB conversion working better, and much faster. Then it's on to audio, and after that it's done. :)