New Website

Feb 17, 2010 by Jeremiah

For the past couple of months I have been working on a new website. I like to call it my “Dream” site, as it incorporates many features I’ve always dreamed of having.

Photo uploads are majorly streamlined and work in a way that will let me effortlessly update the site’s design. The website takes care of any relevant image resizing. Simply uploading the existing images (~24) and associating them with the proper entries took a significant amount of time. The goal is that I will never have to do this again. Ever.

In the past it was a significant undertaking to add audio and video files, especially to blog posts. I already have the audio part figured out, and am hammering away the video details.

*Disclaimer: If you are put off by technical details, my feelings won’t be hurt in the slightest if you choose to skip the rest of this entry, though it’s not as if I will have any way of knowing anyway!

The “holy grail” of website design has been, to me, having my own custom video system very similar to Youtube. I want to be able to upload a video file, associate it with my blog entry, and let my server take care of any relevant conversions. For all of you Unix nerds out there, the best command line tool to do this is called Ffmpeg, and it is a royal pain to install and get running, due to a huge number of dependencies. I’ve tried several times (unsuccessfully) to get Ffmpeg installed on my server. I am with a hosting company called Dreamhost and as it so happens, they go ahead and install a default version of Ffmpeg for use.

I’ve tried their built in version in the past without success, but that was a couple of years ago. After a failed attempt to install a custom version this evening, I figured what the heck and gave the built in version a go. To my amazement it knew exactly what to do with my X264 & AAC encoded video file.

This leaves one very difficult step: creating a shell script, scheduled via cron, to automatically convert video files when they are uploaded.

I have come up with the following system:

1) User goes into control panel of website and creates a new video “entry”. They can either upload their video file there, or choose a file they have previously uploaded to the server via FTP or SFTP.

2) The user posts this entry, which includes any information they deem interesting/necessary about the video file. A “Flag” is set automatically that categorizes the entry as Queued.

3) A shell script that I mentioned previously runs every x minutes (I am thinking 1 or 2). This script checks the database and sees the Queued flag. Since the file is associated with the entry, it knows exactly where to find it, and it is assumed the file is complete (As in fully uploaded).

4) The shell script runs the file through Ffmpeg as many times as necessary. I am thinking I will have a High Quality, original resolution version (up to 856x480), a compressed version with the high resolution, and then a lower resolution version. That will require three conversions. I might also in the future offer a couple of download versions, but for the immediate future, 3 conversions should be more than enough.

5) Once these conversions have completed successfully, the shell script updates the entries’ status to Open. This will tell the CMS that it is ready for use. I am hoping to use related entries to hold up the publication of any blog entries associated with the video until all relevant processing is complete as well, but I still need to think through this step.

So that’s what I have been hard at work accomplishing in my spare time. The next steps will be to finish the video feature , build out a couple other small areas of the site, and then begin finalizing the design aspect. If anyone has had experience in the video conversion field, don’t hesitate to get in touch, I am sure I will greatly benefit from any help you might be able to provide!

The goal of this redesign is to make it much easier for fans/users/people to stay up to date with what is going on with me. I’ve often passed up opportunities to post media to the site simply because I didn’t have a very good system in place. I am very excited to see how this new website will help foster community and how it will stand the test of time!


 

<< Newer entry   | |   Older entry >>


Log in to leave a comment



Auto-login on future visits

Forgot your password?

Commenting is not available in this channel entry.
Jeremiah On Twitter

Tags