Why doesn't my Captivate video work in Drupal?

The directory that your files get uploaded into has some fairly strict security restrictions on it.  Executable files…files that perform some type of activity when clicked on/launched…can be used to inflict some damage both on your site as well as on your users.  So, the sites/default/files directory and any of it's subdirectories do not allow for file execution.  This presents a problem for flash video, which relies on an embedded javascript player to control the video.

The preferable way to handle video embeds is one of two ways:

Through a third-party service such as OSU Media Manager or YouTube

This is really the best way as it stores all of the resource intensive files in a location away from your site.  Additionally these services provide ways to better manage your video content with tools such as tagging, categorization, etc.

Depending on the audience you want for your video, this also increases the "distribution channels" your content can use to be spread around.

There two different ways you can work with embedded video on a Drupal site:

  1. You can easily insert the supplied embed code from a third party, such as YouTube or MediaSpace, directly into your text editor to display in a node or a block.  Make sure you have the Full HTML Input Format checked, click on the HTML button in the toolbar and paste the embed code in there.
  2. You can use the Embedded Media Field widget type in CCK.  This gives you a simple field that you just paste the embed code into.  You can configure the video player sizes through the configuration panel so that way video display is consistent on every node of that type.  This is, ultimately, my favorite method.

These are the most optimized methods of including video on your site. The only downside is that these services require a video format to be put in and an swf file isn't really a video format.  It's a Flash format.  So conversion to mp4 with an H.264 codec is best.

When it comes to converting swf files to mp4, there are a few ways you can go about this.

  1. Hire it to be done.  Our sister department, Digital Media Productions, can do it but it is a billable service.  Other groups on campus may also provide services.
  2. Get some software to convert it.  Many of the software applications that convert flash to mp4 are very user friendly and reasonably priced.  Many also offer free trials whereupon the converted video may have some type of company watermarking on it.  I've had a lot of luck with Moyea conversion software. Here's a link to them if you're interested: http://www.moyeamedia.com/swf-to-avi/.

Through an off-site directory with looser permissions

You can request an additional directory to be added to your site.  This directory would be outside of the default sites/default/files.  The downside to this is you won't be able to upload items using the Drupal uploader.  You will have to connect via an SFTP/SSH client to the backend and transfer your files that way.  You will also have to manually dig out the embed code needed for the player and paste it into your site's text editor.