Before you start
This series was written with the developer in mind. You should be comfortable working with PHP and Web applications. You don't need to be an expert to go through this series, but not a lot of time will be spent explaining PHP syntax and Web application concepts. If you're unfamiliar with either, but keen to learn, feel free to dive right in. It wouldn't hurt to have some basic understanding of digital video, but we'll explain most of what you need to know.
Part 1 covers the putting together of the pieces, installing the components, dealing with video conversion, and preparing for the application. We lay out lot of groundwork here. There's a lot to learn about digital video, and we'll need to get set up for doing all the coding here in Part 2.
Here, you build a basic application to manage the uploaded files and the tagging. You'll be using a PHP framework — CakePHP — to help jump-start this process. The application won't be another video-sharing site. The focus will be on managing your own files and getting them up there for people to see.
In Part 3, you add some advanced features and create a slick user interface. We'll smooth out the UI and look at using APIs from popular video-sharing sites to disseminate your videos. If Part 1 is about getting up to speed, and Part 2 is about making it all work, then Part 3 is about making it awesome.
We're going to be doing a lot of coding. We'll use CakePHP to jump-start the application, and you'll start by baking out the basics of the application. We'll knock down some of the basic user- and video-management stuff, then we'll jump into the two big problems to solve: the file upload and using the OpenFLV libraries to play the videos. If you haven't completed Part 1 yet, you really need to go back and do that before you begin.
To work with digital video in this series, you'll need to set up a few things; the installation of basic components won't be covered here:
- Some digital video content — It can be video you've found, shot, or imported from another medium.
- A Microsoft® Windows® XP box — The examples provided use some software written for Windows XP. However, if you're adept at editing and converting video on computers running other operating systems, you certainly may do so.
- FFmpeg — An open source command-line video-conversion utility.
- Riva FLV Encoder V2.0 for Windows — A video-conversion utility for Windows that is no-cost for the first 30 days of use.
- Wikipedia for .flv conversion programs for other platforms.
- Red5 — A Java™-based open source Flash server.
- JW FLV Media Player V3.15 — A small embeddable Flash media player.
For the Web application, you'll also need the following:
- An HTTP server that supports sessions (and preferably
mod_rewrite). This series was written using Apache V1.3 withmod_rewriteenabled. - The 1.2 beta version of CakePHP.
- PHP V5.1.4 or greater — Not all the frameworks being examined require this release level of PHP, but for the sake of ease, all frameworks will use the same PHP installation. This series was written using PHP V5.2.3.
- A reasonably recent version of MySQL — Several other database options are available and supported, but both this series and the sample application were written using MySQL V5.0.37.
If you don't know anything about writing code, PHP, databases, etc., you will find this series challenging. You should get up to speed on writing Web applications in PHP first. (See Resources for links to each project.)

