A method of presenting video frames of a video segment at a non-standard speed on a video output device, comprising: presenting each selected video frame via a video output device for a length of time, and presenting the video segment at a rate of presentation which is some multiple of a normal presentation rate; characterized in that, the method comprises: receiving the data size of the video segment and the time length of the video segment when presented at the normal presentation rate; setting a frame count for a first video frame to be presented at the non-standard speed to an initial value; and for each video frame to be presented at the non-standard speed: generating a time offset relative to a starting time within the video segment, wherein the time offset comprises a value equal to the frame count multiplied by the length of time for which each selected video frame is to be presented and by the multiple of the presentation rate; determining a data position within the video segment corresponding to the data size multiplied by the ratio of the sum of the starting time and time offset and the time length; selecting a video frame within the video segment corresponding to the data position within the video segment; outputting the selected video frame for presentation for said length of time; and incrementing the frame count. presenting each selected video frame via a video output device for a length of time, and presenting the video segment at a rate of presentation which is some multiple of a normal presentation rate; characterized in that, the method comprises: receiving the data size of the video segment and the time length of the video segment when presented at the normal presentation rate; setting a frame count for a first video frame to be presented at the non-standard speed to an initial value; and for each video frame to be presented at the non-standard speed: generating a time offset relative to a starting time within the video segment, wherein the time offset comprises a value equal to the frame count multiplied by the length of time for which each selected video frame is to be presented and by the multiple of the presentation rate; determining a data position within the video segment corresponding to the data size multiplied by the ratio of the sum of the starting time and time offset and the time length; selecting a video frame within the video segment corresponding to the data position within the video segment; outputting the selected video frame for presentation for said length of time; and incrementing the frame count. receiving the data size of the video segment and the time length of the video segment when presented at the normal presentation rate; setting a frame count for a first video frame to be presented at the non-standard speed to an initial value; and for each video frame to be presented at the non-standard speed: generating a time offset relative to a starting time within the video segment, wherein the time offset comprises a value equal to the frame count multiplied by the length of time for which each selected video frame is to be presented and by the multiple of the presentation rate; determining a data position within the video segment corresponding to the data size multiplied by the ratio of the sum of the starting time and time offset and the time length; selecting a video frame within the video segment corresponding to the data position within the video segment; outputting the selected video frame for presentation for said length of time; and incrementing the frame count. generating a time offset relative to a starting time within the video segment, wherein the time offset comprises a value equal to the frame count multiplied by the length of time for which each selected video frame is to be presented and by the multiple of the presentation rate; determining a data position within the video segment corresponding to the data size multiplied by the ratio of the sum of the starting time and time offset and the time length; selecting a video frame within the video segment corresponding to the data position within the video segment; outputting the selected video frame for presentation for said length of time; and incrementing the frame count.