function screenshot(ts /* force timestamp in file name */) {
    var now = Date.now(),
      path;

    // check when was the last screenshot taken (exclude time it took to render the screenshot)
    if (now - lastScreenshot < SCREENSHOTS_MIN_INTERVAL) {
      //phantomas.log('Film strip: skipped');
      return;
    }

    // time offset excluding time it took to render screenshots
    ts = ts || now - start - timeTotal;
    path = util.format(
      "%s/%s-%s-%d.png",
      filmStripOutputDir,
      filmStripPrefix,
      startFormatted,
      ts
    );

    phantomas.render(path);
    lastScreenshot = Date.now();

    // verify that the screnshot was really taken
    if (fs.isReadable(path)) {
      phantomas.log(
        "Film strip: rendered to %s in %d ms",
        path,
        Date.now() - now
      );
      phantomas.emit("filmStrip", path, ts);

      screenshots.push({
        path: path,
        ts: ts,
      });

      // stats
      timeTotal += Date.now() - now;
    } else {
      phantomas.log("Film strip: rendering to %s failed!", path);
    }
  }
Please note that rendering each screenshot takes
several hundreds ms. Consider increasing default timeout.

Run phantomas with --film-strip option to use this module

--film-strip-dir folder path to output film strip (default is ./filmstrip directory)
--film-strip-prefix film strip files name prefix (defaults to 'screenshot')

You can pass a comma separated list of milliseconds when to trigger a screenshot.
The time will be calculated relative to "responseEnd" event (issue #174)