SDL, .mov video files and alpha channels
Good afternoon everyone,
I've been using C++ and SDL to write a basic 2D game. I've come to a point where I want to put in some nice looking explosion animations. My theory on this was that I could take a video file, split it into it's constituent frames, so I had an array of image files, then load these image files into my game and use some looping to cycle through them.
I managed to source a nice explosion video that came in .mov (Quicktime?) format and also had an alpha channel, which, correct me if I'm wrong, but I assumed to mean was an explosion on a transparent background. I realised that I could use VirtualDub to split my video into it's constituent frames. However, I found that I was unable to open a .mov in VirtualDub. I worked around this by converting the .mov to a .avi using WinFF. I was then able to open the file in VirtualDub and split the video into individual .png (transparency support) frames.
After doing this, I loaded my .png image files into GIMP and noticed that the explosion was on a black background, not transparent, which I found a little bit disapointing. I think I read somewhere that .avi does not support transparency and therefore I concluded that I had probably lost the alpha channel when converting the video from .mov to .avi using WinFF?
Now, I realise that I can use SDL's SetColorKey function to render the black background as transparent at runtime. However, I wondered whether I was going about things in the right way... Do games developers working with SDL generally deliver the transparency at runtime using SetColorKey, or is there a better way / programs to use to convert the video in the first place? How do other developers using SDL go about incorporating videos into their games in this kind of context?
Any comments and advice would be greatly appreciated!