Thursday, December 18, 2008

User Generated Video Workflows

The explosion of YouTube and user generated video (UGV) have introduced a new kind of workflow in the video space. Its popularity really got started with American Funnies Home Videos, where the public would submit a video to compete in a contest for the funniest video. The show is still on the air and enjoys great ratings. In its origins, the public would send their videos in the mail in the form of a video tape, a DVD, and now a digital file through the internet.

Today, videos are sent to a plethora of video aggregators and sharing sites that collect in mass from the public. Further, video sharing sites are not only interested in funny videos, but also serve as outlets for independent news, video productions, viral marketing and promotions among other uses.

A typical UGV work flow is described in the figure below.



Today users, the public, create videos using many different devices such as mobile phones, DV Cameras or WebCams and store these videos on tape or digital files. They use many different video tools across platforms to extract their videos from their devices or tapes and then send them to a video site. These videos are then stored and processed to meet the video site’s streaming server’s specifications. Videos are then made available for viewers to download or stream.

To limit bandwidth and storage use, users are asked to limit the size of the video file they are submitting. Some video sharing sites have a file limit of 100MB others go as high as 2GB. Video encoding parameters can be adjusted to generate a file of a particular size using the formula below.

(videoBitrate+audioBitrate)=(fileSizeLimit*8)/videoDuration

Just fix the audio bit rate to 64 kilo bits per second (Kbs), or a higher value if you would like better audio quality, and you can obtain the video bit rate settings.
For example:

A video sharing site has a 100MB file size limit and my video is 10 minutes long. I set my audio bit rate to 64 Kbs. The video bit rate setting should then be:

(100MB*8bits)/(10min*60sec)- 64000bps=1269.3Kbs

Although there is nothing magical about the above formula, most users will have a hard time doing all the unit conversions required to figure out the parameters. In my experience, users produce files smaller than the file restriction through trial an error. Besides the video and audio bit rate settings on the encoding software, frame size or resolution has a great impact in video quality and size. The smaller the resolution or picture size the smaller the file size. Lossy encoders will not necessarily allocate more bandwidth (larger bit rate) if the picture is small because there is simply not enough data in the resulting picture. (In my opinion, resizing images should be avoided using consumer applications as it may degrade the quality of the video tremendously. )

Users send the resulting video file to the video sharing site where it is stored and usually it is reviewed for content. Videos are then sent to a queue in video aggregator’s Transcoding system where it eventually gets converted and posted for streaming or user download.

An alternative way of processing user generated videos is through a distributed encoding application as illustrated below:



The most prominent competitors in this space are On2’s flix publisher, Framecaster’s iNCoderPro, Sorenson Squish and the late VideoEgg. These systems allow the video sharing site or aggregator to set up a file format and video setting to receive videos through a web plug-in or widget embedded in their submission page. The plug-in or widget is really a video encoder that processes the user’s video to the video aggregator’s specifications. This option can improve the resulting video quality as videos are transcoded from the original source. This systems offer a varying degree of device support. From no device support to Webcam, and DVCam support as in the case of VideoEgg and Squish, but the only product that also supports mobile phones via Bluetooth is iNCoderPro. The supported video formats also vary. Flix Publisher and VideoEgg only support. VP6 (flash 8). Squish only outputs Flash video (maybe the Spark codec or flash 7. It’s not clear on the Sorenson website,) iNCoderPro supports VP6, h.264, MPEG4, MPEG2, Windows Media and 3GP (Try it for free at www.compressmyvideos.com.)

This alternative kind of workflow for UGV has many advantages for both the user and the video sharing site such as:
  1. Better user experience as users are not required to use third video tools.
  2. Better video quality as videos are converted from the original video and the right settings are applied automatically by the software.
  3. Minimizes the need for an in-house Transcoding system.
  4. Saves bandwidth as smaller video files are sent to the aggregator.
  5. Saves storage space as only one file is stored.
  6. Less time to post as videos don’t need to go through a queue to be formatted for streaming.
  7. Self scalable Transcoding. Video sharing sites won’t have to worry about increasing their Transcoding capacity for higher volumes.
  8. Lower startup cost for video sharing sites as they don’t have to buy hardware and only minimal programming or scripting is required.

Next time I will discuss Generation Loss and how to minimize it.

No comments: