diff --git a/offline_ray_tracer/source/main.cpp b/offline_ray_tracer/source/main.cpp
index c0e2cd42145d841fbbb3229e91039e29ded4bb85..5c8020fa5e961eedae7d15f0498c30717000a36b 100644
--- a/offline_ray_tracer/source/main.cpp
+++ b/offline_ray_tracer/source/main.cpp
@@ -1,6 +1,7 @@
 #include <algorithm>
 #include <cstdint>
 
+#include <vtkAVIWriter.h>
 #include <vtkOSPRayPass.h>
 #include <vtkPNGWriter.h>
 #include <vtkPolyDataMapper.h>
@@ -41,18 +42,23 @@ std::int32_t main(std::int32_t argc, char** argv)
   renderer ->AddActor (pd_actor );
   renderer ->AddVolume(ug_volume);
 
-  std::cout << "Setting up image writer.\n";
+  std::cout << "Setting up image and video writers.\n";
   auto window_to_image = vtkSmartPointer<vtkWindowToImageFilter>::New();
   auto image_writer    = vtkSmartPointer<vtkPNGWriter>          ::New();
+  auto video_writer    = vtkSmartPointer<vtkAVIWriter>          ::New();
   window_to_image->SetInput          (window);
   image_writer   ->SetInputConnection(window_to_image->GetOutputPort());
-  // TODO: Video writer.
+  video_writer   ->SetInputConnection(window_to_image->GetOutputPort());
+  video_writer   ->SetFileName       ("video.avi");
+  video_writer   ->SetQuality        (2);
+  video_writer   ->SetRate           (settings.update_rate); // 24
+  video_writer   ->Start             ();
 
   std::cout << "Starting render.\n";
   auto current_time = 0.0f;
   auto counter      = 0;
   auto last_slice   = -1;
-  while (current_time < settings.key_frames.back().time)
+  while (current_time < settings.key_frames.back().time && counter < 10)
   {
     std::cout << "Rendering frame " << counter << ".\n";
 
@@ -77,11 +83,13 @@ std::int32_t main(std::int32_t argc, char** argv)
     window      ->Render     ();
     image_writer->SetFileName((std::string("frame_") + std::to_string(counter) + std::string(".png")).c_str());
     image_writer->Write      ();
+    video_writer->Write      ();
 
     current_time += settings.update_rate;
     counter      ++;
   }
   std::cout << "Finished render.\n";
+  video_writer->End();
 
   return 0;
 }
\ No newline at end of file