[FFmpeg-devel] FLV playback/seeking over HTTP

Jason Barrett Prado jason.prado
Tue Mar 4 23:35:12 CET 2008

[cross-posted to libav-user and ffmpeg-devel because this is both for an app
and will hopefully result in a patch]
As part of an app I am including the ability to play FLVs sent over HTTP,
and I am trying to implement seeking through them in a nice way. I notice
that when the Flash player for YouTube seeks, it makes one HTTP request to
start at a calculated byte offset, and then it just goes. When I
call av_seek_frame in my libav-using app, many requests seem to be made as
the byte offset jumps about 150k at a time until it finds the right spot,
then play resumes. This happens both on YouTube-esque servers (I have
patched http.c to deal with their broken HTTP range requests) and on servers
that support the HTTP Range: header.

Is it the case that the Flash FLV player is capable of seeking directly to
byte offsets of keyframes, while ffmpeg's FLV code is not? Has anyone looked
into this issue, and how incredibly difficult would it be to implement
better seeking?

More information about the ffmpeg-devel mailing list