diff --git a/modules/video_storage/video_storage.info b/modules/video_storage/video_storage.info
new file mode 100644
index 0000000..c317327
--- /dev/null
+++ b/modules/video_storage/video_storage.info
@@ -0,0 +1,5 @@
+name = "Video Storage"
+description = "Provides functionality to add output locations for the Zencoder API."
+package = "Media"
+dependencies[] = video
+core = 7.x
diff --git a/modules/video_storage/video_storage.module b/modules/video_storage/video_storage.module
new file mode 100755
index 0000000..2aa7d9c
--- /dev/null
+++ b/modules/video_storage/video_storage.module
@@ -0,0 +1,45 @@
+<?php
+/**
+ * Implements hook_video_storage_output_locations().
+ */
+function video_storage_video_storage_output_locations() {
+  $locations = array();
+
+  $locations[] = array(
+    'type'        => 'ftp',
+    'description' => t('ftp location for the video output'),
+  );
+
+  return $locations;
+}
+
+function video_storage_get_output_options() {
+  $output_locations = video_storage_get_output_locations();
+  $options = array();
+
+  foreach ($output_locations as $output_location) {
+    $options['video_output_' . $output_location['type']] = $output_location['description'];
+  }
+
+  return $options;
+}
+
+function video_storage_get_output_inputs() {
+  $output_locations = video_storage_get_output_locations();
+  $inputs = array();
+
+  foreach ($output_locations as $output_location) {
+    $inputs['video_output_' . $output_location['type']] = array(
+      '#type'          => 'textfield',
+      '#title'         => t('Location info for %type', array('%type' => $output_location['type'])),
+      '#default_value' => variable_get('video_output_' . $output_location['type'], ''),
+    );
+  }
+
+  return $inputs;
+}
+
+function video_storage_get_output_locations() {
+  return module_invoke_all('video_storage_output_locations');
+}
+
diff --git a/transcoders/TranscoderAbstractionFactoryZencoder.inc b/transcoders/TranscoderAbstractionFactoryZencoder.inc
index 68050cc..f5cadb9 100644
--- a/transcoders/TranscoderAbstractionFactoryZencoder.inc
+++ b/transcoders/TranscoderAbstractionFactoryZencoder.inc
@@ -144,7 +144,9 @@ class TranscoderAbstractionFactoryZencoder extends TranscoderAbstractionFactory
         $baseurl = $scheme . '://' . rawurlencode($username) . ':' . rawurlencode($key) . '@' . $container . '/';
       }
     }
-
+    elseif (variable_get($this->outputdestination, NULL)){
+      $baseurl = variable_get($this->outputdestination, NULL);
+    }
     if ($baseurl != NULL) {
       $this->options['output']['base_url'] = $baseurl . file_uri_target($output_directory) . '/';
 
@@ -367,6 +369,7 @@ class TranscoderAbstractionFactoryZencoder extends TranscoderAbstractionFactory
         '#collapsible' => TRUE,
         '#collapsed' => TRUE,
       );
+
       $form['zencoder_info']['testing']['video_zencoder_testing_mode'] = array(
         '#type' => 'checkbox',
         '#title' => t('Test mode'),
@@ -382,6 +385,23 @@ class TranscoderAbstractionFactoryZencoder extends TranscoderAbstractionFactory
         '#default_value' => variable_get('video_zencoder_test_file_path', 'http://example.com/video.mp4'),
       );
 
+      //output locations
+      if (module_exists('video_storage')) {
+
+        $output_locations = video_storage_get_output_inputs();
+
+        if (!empty($output_locations)) {
+          $form['zencoder_info']['output'] = array(
+            '#type'        => 'fieldset',
+            '#title'       => t('Zencoder output locations'),
+            '#collapsible' => TRUE,
+            '#collapsed'   => TRUE,
+          );
+
+          $form['zencoder_info']['output']['output_locations'] = $output_locations;
+        }
+      }
+
       // advanced
       $form['zencoder_info']['advanced'] = array(
         '#type' => 'fieldset',
@@ -399,6 +419,9 @@ class TranscoderAbstractionFactoryZencoder extends TranscoderAbstractionFactory
       if (module_exists('cloud_files') && variable_get('rackspace_cloud_container', FALSE)) {
         $tempdestinations['rcf'] = t('Rackspace Cloud Files container %container', array('%container' => variable_get('rackspace_cloud_container')));
       }
+      if(module_exists('video_storage')){
+        $tempdestinations += video_storage_get_output_options();
+      }
 
       if (count($tempdestinations) > 1) {
         $form['zencoder_info']['advanced']['video_zencoder_output_destination'] = array(
