Hello,
I have located a bug in pseudostreaming, that is the root all evil^H^H^H^H problems with timeline sync when scrubbing with mod_h264_streaming and pseudostreaming. After some email exchanges with the mod_h264_streaming developer we found out that the problem is somewhere in Flowplayer.
Here is my test case setup:
What I do:
I'm playing the video with the subtitles and when I scrub to time x, flowplayer.pseudostream finds the nearest keyframe x+n, and makes a request to x+n, however the time in the player stays x, and we have video playing from time x+n with drift n. Subsequent seeks makes the drift worse, usualy about 250 frames (maximum Pseudostreaming gives correct keyframe positions - x+n is at a keyframe. This is very annoying when watching closed captioned video, because subtitles are sync-ed to the x timeline.
I think the bug is trivial to fix, but hard to hit and probably causes some other problems.
Workaround (realy realy not recommended):
Until fixed, movies could be encoded with smaller max GOP size (default is 250 or around 10 sec in a 25 fps video), however this will lower the quality and enlarge the moov atom. Do this only as a last resort..
If additional information is needed, I'll be more than happy to provide it.
I have located a bug in pseudostreaming, that is the root all evil^H^H^H^H problems with timeline sync when scrubbing with mod_h264_streaming and pseudostreaming. After some email exchanges with the mod_h264_streaming developer we found out that the problem is somewhere in Flowplayer.
Here is my test case setup:
- A video with overlay-ed accurate timestamp and frame numbers.
- Subtitles with timestamp displayed every second.
- Flowplayer 3.0.7 with flowplayer.pseudostreaming-3.1.1
- mod_h264_streaming 2.0 with lighttpd 1.5
What I do:
I'm playing the video with the subtitles and when I scrub to time x, flowplayer.pseudostream finds the nearest keyframe x+n, and makes a request to x+n, however the time in the player stays x, and we have video playing from time x+n with drift n. Subsequent seeks makes the drift worse, usualy about 250 frames (maximum Pseudostreaming gives correct keyframe positions - x+n is at a keyframe. This is very annoying when watching closed captioned video, because subtitles are sync-ed to the x timeline.
I think the bug is trivial to fix, but hard to hit and probably causes some other problems.
Workaround (realy realy not recommended):
Until fixed, movies could be encoded with smaller max GOP size (default is 250 or around 10 sec in a 25 fps video), however this will lower the quality and enlarge the moov atom. Do this only as a last resort..
If additional information is needed, I'll be more than happy to provide it.