{"record":{"id":"10b6a86dafc97d7f","repo":"remotion-dev/remotion","slug":"streams-with-unix-timestamps-are-not-currently-sup-10b6a8","errorCode":null,"errorMessage":"Streams with UNIX timestamps are not currently supported by Remotion. Sorry! Source: ${this.src}","messagePattern":"Streams with UNIX timestamps are not currently supported by Remotion\\. Sorry! Source: (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/media/src/media-player.ts","lineNumber":316,"sourceCode":"\t\t\t\tvideoTrack,\n\t\t\t\taudioTracks,\n\t\t\t\taudioStreamIndex: this.audioStreamIndex,\n\t\t\t});\n\n\t\t\tif (!videoTrack && !audioTrack) {\n\t\t\t\treturn {type: 'no-tracks'};\n\t\t\t}\n\n\t\t\tif (videoTrack && this.tagType === 'video') {\n\t\t\t\tif (await videoTrack.isLive()) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t'Live streams are not currently supported by Remotion. Sorry! Source: ' +\n\t\t\t\t\t\t\tthis.src,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (await videoTrack.isRelativeToUnixEpoch()) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t'Streams with UNIX timestamps are not currently supported by Remotion. Sorry! Source: ' +\n\t\t\t\t\t\t\tthis.src,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst canDecode = await videoTrack.canDecode();\n\n\t\t\t\tif (!canDecode) {\n\t\t\t\t\tif (videoTrack.codec === 'prores') {\n\t\t\t\t\t\treturn {type: 'cannot-decode-prores'};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {type: 'cannot-decode'};\n\t\t\t\t}\n\n\t\t\t\tif (this.isDisposalError()) {\n\t\t\t\t\treturn {type: 'disposed'};\n\t\t\t\t}","sourceCodeStart":298,"sourceCodeEnd":334,"githubUrl":"https://github.com/remotion-dev/remotion/blob/78fe4bb3fdb5a2cd68724393d63cb223db333fa7/packages/media/src/media-player.ts#L298-L334","documentation":"Thrown by MediaPlayer in @remotion/media when the resolved video track reports timestamps relative to the Unix epoch. Remotion assumes media starts at time zero and seeks by offset; Unix-epoch-anchored streams (common in some broadcast/RTMP captures) break that assumption, so decoding is rejected. Fires at media-player.ts:316 during the video track decode path.","triggerScenarios":"A media source whose container embeds absolute Unix-epoch timestamps (e.g. certain MPEG-TS captures from RTMP/ATSC streams). The track's isRelativeToUnixEpoch() promise resolves true.","commonSituations":"Feeding Remotion a raw transport stream recorded from a live broadcast, or an HLS segment captured with wall-clock timestamps. Common when ingesting unprocessed broadcast or IPTV captures.","solutions":["Re-mux or transcode the source so timestamps start at zero (e.g. ffmpeg -fflags +genpts -avoid_negative_ts make_zero).","Use ffmpeg to normalize: ffmpeg -i input.ts -use_wallclock_as_timestamps 0 -copyts -reset_timestamps 1 out.mp4.","Source a clean MP4/WebM instead of a raw broadcast capture."],"exampleFix":"# before: raw TS capture fed directly\nremotion render --props='{\"src\":\"capture.ts\"}'\n\n# after: normalize timestamps first\nffmpeg -i capture.ts -fflags +genpts -avoid_negative_ts make_zero out.mp4\nremotion render --props='{\"src\":\"out.mp4\"}'","handlingStrategy":"validation","validationCode":"null","typeGuard":null,"tryCatchPattern":"// Pre-process the file rather than catching at runtime:\n// ffmpeg -fflags +genpts -avoid_negative_ts make_zero\n// No robust runtime fallback exists.","preventionTips":["Normalize timestamps of any broadcast/TS source with ffmpeg before ingestion.","Reject raw transport-stream uploads at the input boundary.","Prefer MP4/WebM sources with zero-based PTS."],"tags":["video","unix-timestamp","mpeg-ts","media","unsupported"],"backgroundTag":null,"analyzedSha":"78fe4bb3fdb5a2cd68724393d63cb223db333fa7","analyzedAt":"2026-08-12T17:18:50.444Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}