#"No frame at position" error

1 messages · Page 1 of 1 (latest)

warm gust
#

Hi! We're currently facing an issue with some of our renders where we get the error: "Compositor error: No frame found at position 1164800 for source /tmp/remotion-v4.0.314-assets5c0rfxlcvl/remotion-assets-dir/08226177957840264.mp4". We use offthreadvideo and tried all of the fixes in https://www.remotion.dev/docs/troubleshooting/no-frame-found-at-position. Is there a way to silence this error? Also happy to give reproducible code snippets

nocturne ermine
warm gust
#

What could cause the fatal error and how could we temporarily get around it? Is it lambda specific or?

#

I ask because this bug isn't really rare for us at this point and are wondering if we could fallback to something to prevent failures

nocturne ermine
warm gust
#

ahh ok gotcha

warm gust
#

I can't seem to send the video to https://remotion.dev/report. Looks like the video exceeds 1GB. I have a public url that I have the video hosted at. Would it be possible to report using that?

nocturne ermine
nocturne ermine
warm gust
#

I'll get around to a reproducible test soon. Just have been busy

warm gust
#

Actually a question: does remotion lambda render OffthreadVideo partially pull video files across different lambdas? Or does it pull the whole video in each separate lambda?

nocturne ermine
native forum
#

We're hitting this pretty routinely, particularly when there are two videos in the composition (eg, webcam & screen recording). We've given the offthread video cache 1GB of memory, but still run into it. I can provide some reproducible examples.

We're on an older version, i will try seeing if i can reproduce on the latest.

nocturne ermine
native forum
#

a gap will be created if nothing on the screen moves
Oh i learned this the hard way with SCStream + AVAssetWriter 😅

I've been trying to isolate my debugging down solely to the compositor and simulate its behavior in the rendering environment, but it always seems to run smooth with 1GB cache. I only get it to fail when I use small cache sizes. Weird part is that's the same configuration we use in our lambda (even on a 10GB resoruced lambda)

async function simulateCompositor(srcs: string[], duration = 60, fps = 30) {
  const compositor = startCompositor({
    type: 'StartLongRunningProcess',
    payload: {
      concurrency: 2,
      maximum_frame_cache_size_in_bytes: 1024 * 1024 * 1024,
      verbose: true,
    },
    logLevel: 'info',
    // logLevel: 'verbose',
    indent: false,
    binariesDirectory: null,
  });

  const videos = await Promise.all(
    srcs.map(async (originalSrc) => {
      const downloadMap = makeDownloadMap();
      const localSrc = await downloadAsset({
        src: originalSrc,
        downloadMap,
        indent: false,
        logLevel: 'verbose',
      });
      return {src: localSrc, originalSrc};
    }),
  );

  for (let i = 0; i < duration; i += 1 / fps) {
    console.log('getting frame', i);
    await Promise.all(
      videos.map(async ({src, originalSrc}) =>
        compositor.executeCommand('ExtractFrame', {
          src,
          original_src: originalSrc,
          time: i,
          transparent: false,
          tone_mapped: false,
        }),
      ),
    );
  }
  await compositor.finishCommands();
}
nocturne ermine
native forum
#

Ah, to clarify: my isolation test above runs smooth, but when rendering on a Lambda I will still encounter No frame at position errors on the same videos, using the same cache size.

I will first be doing some updates to the latest version of remotion, and if I'm still hitting the issue on our Lambdas, I will provide you a reproducible example 💯

nocturne ermine
#

sounds good!

yes there might be more factors at play like in a render the frames might be requested out of order

native forum
#

And just a quick santity check for my own understanding: each chunk is running its own compositor right? It's not a single instance exposed by the launcher

nocturne ermine