People have been complaining about poor encodes behaving like this since the first WD device came out.
What program did you create the M2TS file with?
If the sequence headers in the stream are spaced that far apart, then that’s all you get.
Random-access into the stream is only available by the sequence headers. Some files only have one sequence header for the entire stream of GOPs, and can’t be fast-forwarded, rewound, or resumed anywhere – they can only play straight through.
If there isn’t a header at the point you want playback to resume from, after your FF, playback can not start from that point – it will start from the nearest header, whether that’s ahead of or behind the point you’re aiming for, because the stream can’t support playback from any point other than a sequence header.
On an actual DVD, the headers are about every half-second with only one GOP per sequence, so you can start up at any second you wish (but you _ can’t _ start from any _ frame _ you wish). But some non-commercial GOPs are 300 seconds, or longer, and there can be more than one GOP in a sequence.
Thus, different encodings space the headers differently. Some are several seconds apart, some are several minutes apart.
The spacing of the sequence headers are, by definition, the smallest unit of random aceess into the stream, whether it’s FF, Rev, Pause/Resume, or a time jump.
MPEG.org Video Data Specifications:
“MP@ML has no GOP size restriction. In fact, the GOP() is considered to be an insignificant layer in MPEG-2. Instead the sequence() layer serves as the most important boundary in the generic MPEG sense.”
Within each sequence, the frame rate, picture size, aspect ratio, bitrate and buffer size must all be identical. Therefore a VBR stream will start a new sequence every time the bitrate changes and will often have shorter sequences than a CBR stream due to this.
But the playback has to know whether the picture size, aspect ratio, frame rate, bitrate etc… has or hasn’t changed since the last sequence it was playing… so it won’t just start up in the middle of a sequence. It will read the header to get all that data, and then start from there.
If the program you’re using isn’t making short enough sequences to be “useful” to you, then all you can do is either see if you can change the sequence length in that program’s settings and re-encode from the original, or re-encode the stream from the original using a different program that gives shorter sequences.