forgehub. A small, independent toolbox

Cue Offset Bench

What does Cue Offset Bench's +1500 ms example prove?

The +1500 ms example moves a cue from 00:00:01,250 to 00:00:02,750, and its end from 00:00:02,750 to 00:00:04,250. Both boundaries move later by 1.5 seconds, so its duration stays 1.5 seconds. Cue Offset Bench currently displays only this bundled example: it cannot yet accept your subtitles or download a shifted file, and it cannot verify synchronization against a recording.

Open Cue Offset Bench

Start with the current preview's scope

Cue Offset Bench currently opens as a development preview, labeled session 1 of 3. It shows Original cue, Shifted +1500 ms and a Timing proof table. Use these surfaces to understand the transformation before expecting an editing workflow. There is no working paste form or download control in this version.

The distinction matters if you arrived with a subtitle file to repair. The underlying timing engine is implemented, but the page runs it only on its bundled cue. The intended interactive workflow in the documentation is future work. You cannot use the current page to process your own SRT file.

Read the two boundaries before the duration

The original example starts at 00:00:01,250 and ends at 00:00:02,750. The comma separates seconds from three millisecond digits. Adding 1500 milliseconds changes the start to 00:00:02,750 and the end to 00:00:04,250. Read each before-and-after pair across the Timing proof row rather than comparing only the two start times.

The original duration is 2750 minus 1250, or 1500 milliseconds. The shifted duration is 4250 minus 2750, also 1500 milliseconds. That is why the result can say duration unchanged even though every timestamp looks different. Moving both boundaries by the same amount changes when the caption appears without changing how long it remains.

Keep direction separate from synchronization

A positive offset moves captions later; a negative offset moves them earlier. In the displayed example, +1500 means 1.5 seconds later, not 1500 seconds. If captions appeared too early by a known 1.5 seconds, this is the direction of translation you would need. The preview demonstrates that arithmetic without judging whether that offset fits any video.

The page cannot load audio or video, measure the discrepancy or verify the final synchronization. It also does not correct drift. A constant translation adds the same amount everywhere; it cannot give the beginning one adjustment and the ending another. Establish the needed correction outside this app rather than treating a valid timing table as proof of alignment with speech.

Check what stays unchanged

The example includes two subtitle text lines, with spaces, Unicode characters and literal markup in the first. The preview places the original and shifted strings into the page with textContent. Those markup characters are displayed as text rather than interpreted as subtitle styling.

The engine retains cue identifiers and order, and copies the subtitle text lines while translating their start and end values. This is not text cleanup or renumbering. Preservation also does not mean byte-for-byte file identity: the serializer uses LF line endings, blank lines between cues and a final newline. Those formatting choices are separate from preserving the words.

Understand why an earlier shift can fail

The implemented engine rejects a shift if a start would fall below zero or an end would exceed 99:59:59,999. For the bundled cue, subtracting 1250 milliseconds would put its start exactly at 00:00:00,000 and its end at 00:00:01,500. Subtracting 1251 would put the start one millisecond before zero, so the engine would reject the operation.

This is an engine behavior, not an alternate offset you can enter in the current preview. The calculation does not clip the start to zero, shorten the cue or return a partial transformed file. When reviewing what this tool demonstrates, distinguish safe arithmetic from available page controls, and both from actual synchronization with a recording.

AI-assisted ForgeHub editorial. App capabilities were checked against its implementation; this guide is not an independent review.

Frequently asked questions

Can I paste my own subtitles into this version?

No. The current page is a read-only bundled example. The README and handoff identify the user form and download workflow as unfinished.

Does +1500 make the caption stay on screen longer?

No. Both its start and end move later by 1500 milliseconds. In the example, the cue remains 1500 milliseconds long.

Does the timing proof confirm that captions match my video?

No. It demonstrates timestamp translation only. The app cannot inspect a recording or determine the required offset.

Can a negative shift trim captions that would start before zero?

The implemented engine rejects that whole operation instead of trimming. A boundary outside the supported timestamp range prevents a transformed result.