TwelvestoneFlash

FLV seek/fast forward/rewind dead zone oddness


Sign in

  • Waiting for Godot ( 720 k posts )
    Just conversation.
  • Thunder Dome ( 23 k posts )
    Photoshop Tennis and Collabs.
  • Photography ( 4.8 k posts )
    For all you shutterbugs, sh...
  • Flash ( 18 k posts )
    ActionScripting to tweens, ...
  • Front End ( 5.8 k posts )
    general front end design an...
  • Back End ( 9.6 k posts )
    serverside scripting, progr...
  • Projects and Theory ( 12 k posts )
    This forum is for discussio...
  • FAQ ( 269 posts )
    All those nagging questions...
  • Design ( 17 k posts )
    graphics & all aspects of g...
  • Purgatory ( 3.6 k posts )
    12stone Jail, feel free to ...
es!
 
2009-02-25

So I got this bundle of FLVs from a client, and I put them together in an app which works wonderfully, except for some odd behavior which, it turns out, is something about the FLVs themselves, and not my hack-ish coding.

Ecce: When playing from start to finish, the videos - which are pre-loaded, NOT streaming - play just fine. Play and pause work just fine. When I try to fast-forward or rewind to specific seconds, or when clicking on the timeline to jump to specific locations, I can't always ff/rr/click to precise seconds. That particular mechanism, with these FLVs, seems to have odd "dead zones" where direct access is not possible.

I can click to seek to 4:00,4:02,4:30,4:47, etc., but if I try clicking the timeline to go to something between 4:15 and 4:20, the timeline skips ahead to 4:20. Likewise if I try to programmatically seek() to between 255 and 260 seconds, it automatically skips/starts at 260 seconds. And no matter where I click on the timline from 4:15 to 4:20, it will only go to 4:20. Earlier is no problem. Later is no problem. It is only precisely in the middle that is the problem.

This issue occurs in the Flash IDE, the Flash player (v.10) and - oddly enough - the VLC Media Player.

To re-iterate, when the videos play straight through, there is no noticeable problem anywhere. They play just fine. Even in the "dead zones".

So: Is there something wrong with these FLVs, or is this a Know Issue/feature of which I was not previously aware?

I have notified the client that this is an issue with the video files, but I know...KNOW... I will be called on to fix it.

Thanks for yer help.

Storm
 
2009-02-25

is there any way to find out the differences when encoding? Were they all made by the same person on the same machine with the same settings?

The only thing I can think of (and it's kind of a stretch right now) is that it's only jumping to encoded keyframes so there may be less keyframes (or a higher keyframe rate) than the others but that's reaching for sure. I can't say anything about cue points because those should have no effect at all.

Can you ask the client the history of those FLVs? It's weird for sure, but some might just simply be different codecs (sorenson v vp6) and how the keyframes are within each file. Weird that it's inconsistent though.

Sorry for no solid real answer. Just thinking out loud.

es!
 
2009-02-25

I sent the issue back to the person who created the movies - who is also the client for whom I build the application - and he is looking into the issue. It is most likely a keyframe issue - set to one every 45 frames, at 12 frames a second - which is breaking things. Solution: One keyframe a second.

Hopefully.

Thanks for the feedback!

Arsis
 
2009-02-25

Yep, when seeking on a flv or stream it will always look for the nearest keyframe prior to the seek point. Not much you can do about it.

Your best case scenario is to use the stream metadata and hope that it offers some reasonable keyframe information (time array). http://yamdi.sourceforge.net/ is a very god option for injection.

pyrogen
 
2009-02-26

keyframes for encoding if it's progressive.

what arsis said

JLM
 
2009-02-26

The concept as I understand it is a Keyframe is a real image, and the preceeding frames are sum of differences from that keyframe stored fractally. So playing forwards works but at same speed backwards doesn't, and the other issues you describe. You can have a Keyframe per flash frame and put on timeline allowing smooth play backwards by playing timeline backwards at a huge filesize cost.

However more control should be possible by storing bitmaps in an array when playing, so if you make users wait you can give better accuracy by going to previous keyframe and playing off stage, or playing through once off stage and then just playing the bitmaps, obviously a better solution is to run a second video ver with the cacheing offscreen a few seconds ahead of current, this could be used to allow replay and other features around the current play head position, throwing away further away bitmaps as array size gets too large.

A good source of flash video info is adobe's flash player engineers...http://www.kaourantin.net/ !

Sorry, you must be a member to post to a conversation. Either log in or sign up to get involved.
TwelvestoneFlash

FLV seek/fast forward/rewind dead zone oddness