Video timestamps: PTS, DTS, time bases and frame counts
Presentation timestamps tell a player when to show a picture; decoding timestamps concern the order in which encoded data is reconstructed. Read those values with their time base. A frame-rate label, packet count and timecode display describe different things, so none should be substituted blindly for the recording’s actual timeline.
Open the relevant downloader · Platform tools and access limits
Inspect the right layer of the retained movie
Begin with an authorized local file and identify the stream you intend to measure. In a local FFprobe installation, use its stream report to inspect time_base and the available rate fields. Packet inspection shows encoded delivery units; frame inspection examines decoded media. Select the wanted video stream so audio packets or cover images do not distort your comparison.
One packet is not a universal synonym for one visible frame. Codec packaging, decoder output and the type of stream matter. When diagnosing a missing picture, review decoded frames and actual playback rather than announcing that a smaller packet count proves captured scenes were deleted.
A missing container frame-count field is not itself a count of missing pictures. For a known local interval, FFprobe can count decoded frames with -count_frames; record whether you examined the entire file or only a bounded range. An interpreted frame count and a packet/block count answer different questions, including when a codec or container groups several frames.
Convert timestamp units before comparing fields
An integer timestamp must be interpreted using its stream’s time base. For example, with a time base of 1/90000 second, a timestamp difference of 90000 represents one second. Do not compare that integer directly with another stream whose tick has a different duration. Use reported time values or document the conversion.
Nominal frame rate describes a cadence convention, while time base supplies timestamp units. A variable-cadence recording need not advance by one identical interval for every decoded picture. Timecode labels can be useful for editorial navigation, but a displayed label alone does not establish the timestamp scale, elapsed duration or total frame count.
Native MOV timescales and Matroska timestamp-scale metadata must be interpreted according to their own representation, not a guessed universal millisecond tick. Matroska defines native scale information in nanoseconds; a parser’s FFprobe time_base can present the interpreted stream in another rational unit. Leading negative decode timestamps likewise require presentation context rather than an assumption that the opening picture was deleted.
Verify playback and reordered pictures
Pictures may be stored in an order that permits decoding dependencies before their presentation. A difference between PTS and DTS can therefore be expected rather than evidence of an audio-sync failure. Inspect a short known interval, then compare recognizable picture and sound events near its beginning and end.
The site’s Video Information tool provides a bounded summary, not a full packet-level timing laboratory. Use local inspection when your task requires those detailed fields. If a derivative changes timing, retain both versions and measure each explicitly. Avoid repairing timestamps based only on a filename, one initial value or an unrelated stream’s scale.
Worked example
A stream uses ticks of 1/90000 second and two presented pictures have timestamps 90000 ticks apart. That interval is one second; it is not ninety thousand frames. A reviewer separately checks the frame report and playback, then records the relevant rate field instead of treating the timestamp integer as a frame counter.
Related guidance
Sources and verification
Reviewed 2026-10-12. Product behavior is limited to available source formats and provider access; it is not a promise that every public link works.