Hello,
I've just upgraded our server from 0.7.0 to 0.9.1 and have encountered
a major problem recording incoming video streams. The problem is quite
strange, the file appears to record normally, but when I try to play
it back (either as a stream from Red5 or directly with VLC) it always
jumps forward by a number of seconds. The jump forward different for
every recorded video.
The really odd thing is that i've noticed a strange correlation
between the amount which the video jumps forward and the length of
time it takes me to click on the authorisation dialogue in flash
asking for permission to access the camera/mic. eg if I wait for 10
seconds, then the jump forward will be about 10 seconds. If I
deliberately wait longer and then record a video which is shorter than
the time I waited to click the 'allow' button, then the resulting
video file is unplayable.
I've also noticed when looking at the .meta files created when playing
back though the Red5 server, for videos recorded using 0.7.0, the
first keyframe always has a timestamp of 0, while for the videos
recorded with 0.9.x, the timestamp of the first keyframe is never 0
and always matches up with the point to which the video jumps when
played. My guess is that for some reason the initial keyframe is
either not being recorded or the meta data is being recorded
incorrectly so that the player thinks it is missing.
This problem is demonstrable with both my own software and the simple
recorder demo.
I did find the following older post, which seems to relate to a
similar problem :
http://old.nabble.com/Unable-to-get-a-keyframe-on-the-first-frame-when-recording--stream-to-server-td27463151.html
However, in my case i'm already using ns.publish(pubName, "record");
to send my video to the server, so the solution which worked in this
case won't help.