diff --git a/src/thumbnail/spritesheet.rs b/src/thumbnail/spritesheet.rs
index 1065df69f07e2a8824de9d294621f0e216816bb6..0b822b5b0252f1bc90ec77ada574f96ae671de71 100644
--- a/src/thumbnail/spritesheet.rs
+++ b/src/thumbnail/spritesheet.rs
@@ -111,13 +111,13 @@ impl SpritesheetManager {
             self.end_frame(timestamp);
         }
 
+        if self.sprite_index(self.current_image + 1) == 0 {
+            self.save_spritesheet()?;
+        }
+
         self.last_timestamp = timestamp;
         self.current_image += 1;
 
-        if self.sprite_index(self.current_image) == 0 {
-            self.save()?;
-        }
-
         Ok(())
     }
 
@@ -138,7 +138,7 @@ impl SpritesheetManager {
 
     fn save_spritesheet(&mut self) -> Result<(), failure::Error> {
         self.spritesheet.save(
-            format!("{}/spritesheet_{}.png", self.output_path, self.spritesheet_index(self.current_image))
+            format!("{}/spritesheet_{}.jpg", self.output_path, self.spritesheet_index(self.current_image))
         ).map_err(|error| {
             format_err!("Could not write spritesheet: {}", error)
         })?;
@@ -148,7 +148,7 @@ impl SpritesheetManager {
 
     pub fn save(&mut self) -> Result<(), failure::Error> {
         self.save_spritesheet()?;
-        self.metadata.save(format!("{}/spritesheet.vtt", self.output_path)).map_err(|error| {
+        self.metadata.save(format!("{}/spritesheets.vtt", self.output_path)).map_err(|error| {
             format_err!("Could not write spritesheet metadata: {}", error)
         })?;
         Ok(())