Hello all,

I've been looking at SDL_ffmpeg and ffmpeg.

There are some considerations for choosing each. SDL_ffmpeg is fairly simple
to interact with, load, play, pause a movie. You can interact with each
frame, and so on. However, SDL_ffmpeg converts every frame from YUV to RGB,
to make it easier on the programmers to use image manipulation functions and
so on. This is a performance hit, for sure. Considering Python's reputation
already for being slow, having a movie module take that kind of hit will
result in a further stain to the reputation, when sometimes, rarely, movies
stutter or pause when they shouldn't. It can take a long time to recover
from a negative reputation.

For ffmpeg, it offers much the same capability, but without the SDL
conveniences. It does offer far more capability with movie files than
SDL_ffmpeg does though. I think, but I'm not sure, that the pygame surfaces
do not need to have the frames of the movie be in YUV format? Or its a quick
operation to convert the surface for YUV then back to RGB. Something like
that, correct me if I'm wrong. So we don't need every frame to be converted
to RGB, except when we do need it.

If I went with ffmpeg, I was considering a design where we explicitly
convert the movie from YUV to RGB, with a simple convert function. From the
point its called, to the point it is called again, the movie is in RGB
format. It fits with the python philosophy that "Explicit is better than
implicit." (-The Zen of Python, by Tim Peters)

Personally, I would prefer to work with ffmpeg, because of the greater
functionality, and the lack of conversion performance hit.

-Tyler

-- 
Visit my blog at http://oddco.ca/zeroth/zblog

Reply via email to