A method for receiving, storing, and presenting digital multimedia programming in a broadcast Motion Picture Expert Group (MPEG) stream with a digital video recorder device, the method comprising: a) receiving the MPEG stream into an input buffer of the digital video recorder device; b) storing the received MPEG stream from the input buffer onto a storage device of the digital video recorder device without, prior to storage, analyzing data in the received MPEG stream to generate indexing information; c) receiving a user seek input indicating selection of a non-contiguous presentation mode in which programming data is loaded from the storage non-contiguously; d) determining a data read size for the stored MPEG stream by calculating the value of the data read size that minimises a service time function indicating the time to locate a complete I-frame, wherein the service time function is defined as a time required to perform a read operation added to the product of the time required to perform a read operation and of a probability of not loading a complete MPEG intra-coded frame when loading a portion of the stored MPEG stream equal to the data read size, wherein said probability is a statistic included in video frame statistics data of the video data encoded in the stored MPEG stream and provided prior to determining the data read size e) determining a starting seek position relative to a current read position in the stored MPEG stream based on the presentation mode; f) loading (650, 660) a portion of the stored MPEG stream from the storage device, wherein: i) the size of the loaded portion is determined based on the data read size; and ii) the position of the loaded portion is based on the starting seek position; g) analyzing the loaded portion to determine if the loaded portion Includes a complete MPEG intra-coded frame; and h) if the loaded portion includes a complete frame, decoding the complete frame to provide a video frame for presentation on a presentation device. a) receiving the MPEG stream into an input buffer of the digital video recorder device; b) storing the received MPEG stream from the input buffer onto a storage device of the digital video recorder device without, prior to storage, analyzing data in the received MPEG stream to generate indexing information; c) receiving a user seek input indicating selection of a non-contiguous presentation mode in which programming data is loaded from the storage non-contiguously; d) determining a data read size for the stored MPEG stream by calculating the value of the data read size that minimises a service time function indicating the time to locate a complete I-frame, wherein the service time function is defined as a time required to perform a read operation added to the product of the time required to perform a read operation and of a probability of not loading a complete MPEG intra-coded frame when loading a portion of the stored MPEG stream equal to the data read size, wherein said probability is a statistic included in video frame statistics data of the video data encoded in the stored MPEG stream and provided prior to determining the data read size e) determining a starting seek position relative to a current read position in the stored MPEG stream based on the presentation mode; f) loading (650, 660) a portion of the stored MPEG stream from the storage device, wherein: i) the size of the loaded portion is determined based on the data read size; and ii) the position of the loaded portion is based on the starting seek position; i) the size of the loaded portion is determined based on the data read size; and ii) the position of the loaded portion is based on the starting seek position; g) analyzing the loaded portion to determine if the loaded portion Includes a complete MPEG intra-coded frame; and h) if the loaded portion includes a complete frame, decoding the complete frame to provide a video frame for presentation on a presentation device.