Jump to content

  • Log In with Google      Sign In   
  • Create Account


Video in game


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
9 replies to this topic

#1 cody.sorrell   Members   -  Reputation: 117

Like
0Likes
Like

Posted 19 August 2013 - 08:38 PM

Hello, I am making a 2d game, and I am using sdl and c++. I am the only coder at the moment. I am wanting to including a few videos (cutscenes), and was wondering how to go about this. I have heard of people coding a player in sdl to run that, but I am not sure how to go about that. Another option I have heard is to get a codec, but know very little about them and how to use them. Any guidance would be helpful. Tell me if I need to give more information or be more specific.



Sponsor:

#2 Norman Barrows   Crossbones+   -  Reputation: 1849

Like
0Likes
Like

Posted 20 August 2013 - 10:05 AM

basically, video is like any other content. you'll have data on disk, and code to display it.   the tricky part is that the code to display/playback is non-trivial.  so you'll want to go with some type of turn-key library solution if possible. otherwise, its time to get out the white papers (the specs) and roll your own. another possibility is converting video to some animation format, and using an animation playback library. worst comes to worst, you can also screen capture frames and play them back as an animated texture - obviating the need for any playback library whatsoever.


Norm Barrows

Rockland Software Productions

"Building PC games since 1988"

 

rocklandsoftware.net

 


#3 Cornstalks   Crossbones+   -  Reputation: 6966

Like
0Likes
Like

Posted 20 August 2013 - 10:19 AM

One of the most common things to do is to use something like FFmpeg to decode the video/audio and then feed it into SDL to display/play. Be aware that FFmpeg has a bit of a steep learning curve.

 

Video is unfortunately pretty complicated, so getting something to play (without using a commercial library like Bink), so this may not be as trivial as you're hoping it to be.


[ I was ninja'd 71 times before I stopped counting a long time ago ] [ f.k.a. MikeTacular ] [ My Blog ] [ SWFer: Gaplessly looped MP3s in your Flash games ]

#4 Radikalizm   Crossbones+   -  Reputation: 2776

Like
0Likes
Like

Posted 20 August 2013 - 11:39 AM

From what I've gathered from researching video libraries and codecs there are also quite some nasty legal issues with using most popular video formats (patents and such). I know a lot of open source video playback applications have had legal problems because of this, so you'll probably want to research this very carefully or choose a commercial library.

 

I'm not an expert on video playback, nor am I a lawyer, but it's something you might want to keep in mind.


I gets all your texture budgets!


#5 Cornstalks   Crossbones+   -  Reputation: 6966

Like
0Likes
Like

Posted 20 August 2013 - 12:56 PM

Yeah, patents can be problematic. I'd recommend using WebM/VPX (VP8/VP9 video codec, Vorbis/Opus audio codec). You can also use the WebM/VPX library instead of FFmpeg, if you want (FFmpeg is LGPL, which some people don't like/can't use, whereas the WebM project is BSD licensed). I've used FFmpeg, but I've never used the WebM/VPX libraries directly, so I can't comment on learning curve. While there's still a patent mine field to navigate, the WebM stuff is about as safe as you can get without forking over a bunch of money for patent licensing.


Edited by Cornstalks, 20 August 2013 - 12:59 PM.

[ I was ninja'd 71 times before I stopped counting a long time ago ] [ f.k.a. MikeTacular ] [ My Blog ] [ SWFer: Gaplessly looped MP3s in your Flash games ]

#6 cody.sorrell   Members   -  Reputation: 117

Like
0Likes
Like

Posted 20 August 2013 - 07:37 PM

Thank you everyone for your feedback it helps. Does anyone know what video formats I could use that are not patented? I have no trouble researching it, but I am trying to save time.  SInce this is a huge task for 1 coder.


Edited by cody.sorrell, 20 August 2013 - 07:38 PM.


#7 SimonForsman   Crossbones+   -  Reputation: 5806

Like
0Likes
Like

Posted 21 August 2013 - 12:08 AM

Thank you everyone for your feedback it helps. Does anyone know what video formats I could use that are not patented? I have no trouble researching it, but I am trying to save time.  SInce this is a huge task for 1 coder.

 

Patents don't cover specific formats, they cover specific techniques, one codec can be protected by multiple patents and one of those patents might also cover parts of a completely different codec or even completely unrelated software.

 

Google won't sue you if you use their VP8 codec and the Ogg people won't sue you for using Theora so those codecs are reasonably safe but there is no guarantee that those codecs doesn't accidentally infringe on a patent held by some other company(Who might choose to sue you rather than the codec developer). (it happens quite often, especially in the US as their patent system is fubar)


I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

#8 cody.sorrell   Members   -  Reputation: 117

Like
0Likes
Like

Posted 21 August 2013 - 02:36 PM

Thanks. It's looking like taking all the frames and using SDL_Delay is going to be the easiest thing to do.



#9 MarekKnows.com   Members   -  Reputation: 437

Like
0Likes
Like

Posted 21 August 2013 - 03:00 PM

I'm pretty sure OpenCV should be able to do what you want: http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/index.html

 

You could also look at VLC which is open source to see how they do it: http://www.videolan.org/


Edited by MarekKnows.com, 21 August 2013 - 03:01 PM.

---
Free C++, OpenGL, and Game Development Video Tutorials @
www.MarekKnows.com
Play my free games: Ghost Toast, Zing, Jewel Thief


#10 Cornstalks   Crossbones+   -  Reputation: 6966

Like
0Likes
Like

Posted 21 August 2013 - 03:39 PM

I'm pretty sure OpenCV should be able to do what you want: http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/index.html

OpenCV doesn't do video decoding. It can make use of FFmpeg, but it alone doesn't do the actual decoding.


[ I was ninja'd 71 times before I stopped counting a long time ago ] [ f.k.a. MikeTacular ] [ My Blog ] [ SWFer: Gaplessly looped MP3s in your Flash games ]




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS