diff --git a/src/spritesheet.rs b/src/spritesheet.rs
index 8ced57620a9a58409488bf2e9ee69574fa82422d..713c9a4809672b6be9a34d3c6ae2b1e63c52dd2f 100644
--- a/src/spritesheet.rs
+++ b/src/spritesheet.rs
@@ -2,9 +2,8 @@ use std::fs::File;
 use std::io::BufWriter;
 use std::path::PathBuf;
 
-use anyhow::{bail, format_err, Error};
+use anyhow::{bail, Error, format_err};
 use image::{DynamicImage, ImageOutputFormat, RgbImage};
-
 use media_time::MediaTime;
 use webvtt::{WebVTTCue, WebVTTFile};
 
@@ -150,16 +149,22 @@ impl SpritesheetManager {
     }
 
     pub fn end_frame(&mut self, timestamp: MediaTime) {
+        let prev_image = if self.current_image > 0 {
+            self.current_image - 1
+        } else {
+            0
+        };
+
         self.metadata.add(WebVTTCue::new(
             self.last_timestamp,
             timestamp,
             format!(
                 "{}_{}.{}#xywh={},{},{},{}",
                 self.name,
-                self.spritesheet_index(self.current_image - 1),
+                self.spritesheet_index(prev_image),
                 self.ending(),
-                self.x(self.current_image - 1),
-                self.y(self.current_image - 1),
+                self.x(prev_image),
+                self.y(prev_image),
                 self.sprite_width,
                 self.sprite_height
             ),