I recently upgraded from CS5 to CC, and I'm have a devil of a time with cue points. With the videos I produce, I set various cue points that are used as chapter markers. On the video's player I include simple buttons that, when clicked, advance to the corresponding cue point. Pretty straight forward. I should also note that I convert and set the video's cue points using Media Encoder.
So, when I went through my same routine using Media Encoder CC and Flash Professional CC I came across an issue in which the cue points were not in line with the timecodes I set up. A typical cue point would be along the lines of 13:13;17, but it appears that when Flash is rounding the time code up to the nearest second (13:13;17 would be listed as 13:14;00 in Flash). So, then I tried setting up cue points on exact seconds thinking it would correct the issue, but it hasn't. If I set the cue point at 13:13;00, it rounds up to 13:14;00 more often than not.
Has anyone else encountered this issue, and if so, knows how it can be corrected? Thank you
Knowing you can't seek to anything but a keyframe in progressive playback it seems like the encoder may not be properly setting a keyframe on a cue point (it's supposed to).
When you receive the metadata have you run a loop on the received cue points and trace()d them out to see if they're correct?
I'm wondering if the cue point time rounding is some byproduct of cuepoints creating a keyframe. You can't seek to a point in a video unless it has a keyframe embedded at that exact time. Otherwise it seeks to the nearest keyframe.
When making cuepoints using Adobe Media Encoder, it should be setting a keyframe at every cue point you enter. I've had Adobe Media Encoder fail to set the cuepoint exactly where I set it before. It doesn't happen when I encode using Sorenson Squeeze, or programmatically set the AS cuepoints though.
Is programmatically setting the AS cuepoints a possibility for you?
On the second part I mentioned, NetStream needs the client property set so it knows where to look for the public functions it expects to find. One of those functions is "onMetaData". When that function is fired you're given information about the video. One part of that data is all the cuepoints the video contains. You can loop through them, printing out their name and exact time they're set to. You should see what your cuepoints are set to.
// trace cue point name:time values
for (key in infoObject.cuePoints)
trace(infoObject.cuePoints[key]['name'] + ' = ' + infoObject.cuePoints[key]['time']);
It should trace something like this:
cuePointName1 = 0.142
someOtherCuePoint = 25.17
etcCuePoint = 38.259
Check to see what the cuepoints times actually are in code.
Here's more info on the subject: