Drupal 6 and HTML 5 Video
I was asked to create a video content type for a site with the following requirements:
- Support for browser, iPad, and iPhone
- Fit video to browser width onLoad and onResize
- Autoplay, no controls
- Configurable thumbnail/poster image
- Host videos on-site (not external embed)
I was more or less completely ignorant about HTML5 video, and how it's supported in Drupal 6.
I started out by investigating a couple of contrib modules: Video and VideoJS.
Video uses ffmpeg and other command-line transcoding tools to take an uploaded video and transform it into the formats you need to provide cross-platform HTML video with flash fallback (for IE). It also provides a CCK formatter and integrates with a variety of other players. It's well-designed and has pretty decent documentation. Unfortunately, it really doesn't work. All required presets for transcoding failed out of the box, and required patching to get them working. The CCK formatter failed to play nicely with flowplayer (the flash player I'd chosen for fallback). There are a LOT of patches in the issue queue. The stable release is a beta, but that might be a little too optimistic.
VideoJS just provides a CCK-formatter (and Views integration) and some jQuery integration. You do your own transcoding, and upload multiple files to a content type. Unfortunately, VideoJS is also broken in the current release, and patches are required to get it to play nicely with flash players.
In the process of researching these two modules, I also educated myself on HTML5 generally, and found a couple of great resources with documentation on how to provide maximally compatible video with the minimum number of video files, and minimum amount of code:
Given the problems with Video and VideoJS, and the simplicity of the requirements, I decided that instead of trying to find a set of patches to get an existing module to work, it would be more efficient to create a custom module. I reused the approach of VideoJS to creating a CCK formatter, but without all the (excellent, but not working yet) bells and whistles of VideoJS and working flowplayer integration.
I also found I had to patch the Flowplayer module to support the wmode parameter of the flash embed code (this site needs a transparent player to avoid obscuring navigation elements).
There are a couple of other promising looking modules for HTML5 video in Drupal 6, including Video for Everybody (which doesn't have a release yet) and MediaFront (which seemed like it did a lot more than I needed).
In conclusion HTML5 video itself is not that hard, but doing it on Drupal is still a DIY prospect.