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.

Thursday, December 11, 2008

Transcoding Automation

Below are some of the most important questions and concepts you need to keep in mind when designing or choosing a video Transcoding system. They are described in general terms and more detail is needed to really optimize a Transcoding system for your particular workflow. Keep in mind that there are systems that require some level of programming or scripting and that might have a big impact on your budget.

In deciding how to automate your video Transcoding workflow, you should ask your self the following questions:

1) What is the volume of videos you need to process?

2) How fast do you need the output videos?

3) Where do the input videos reside? (Single or multiple locations.)

4) What is the input format(s)? (Device, file format.)

5) What is the output file format(s)?

6) Where do you need to deliver the output videos?


The answer to the first couple of questions will help you determine how large and complex your system is going to be. If your volume is very low, from 1 to a couple of dozen videos a week, you could set up a simple software-based, batch encoding system in a single computer. As your video demands begin to grow, you could batch process the videos in more than one computer, and manage the queue manually.

There is a point where manually managing a queue not only becomes a full time job, but also introduces too many human errors. You should consider setting up a system with automated queue management. The queue system should provide you with different error handling choices. How you handle encoding errors will ensure that your Transcoding system continues to operate on subsequent files. It is critical to prevent your queue from jamming up due to an expected error. They queue system should allow you to set and change priority levels for your Transcoding jobs and ultimately, it should let you dictate how you allocate both processing and storage resources. It should let you bring online and take off line additional hardware without shutting down the system.

As your volume and throughput demand increases, you need to begin to consider what kind of hardware you need to use with your software solution or whether you need a hardware accelerated platform. If you want to stay with a software based solution you need to look at multiple CPU computer systems, what kind of file storage (disk I/O is usually the slowest part of the system) is available, and Network connectivity. Keep in mind that the Transcoding process takes a good portion of the time in processing your videos, but it is network latencies and disk I/O bottlenecks what often brings down productivity. A good system makes sure that more than enough bandwidth is allocated for file I/O.

The location of your input videos is an important consideration on how you design your system. Do you have a library of content that resides in a single location? You should have then a Transcoding system that is located closest to the content and make sure that the data throughput from your sources has enough bandwidth to avoid I/O bottlenecks.

Does the content reside at multiple locations? You might increase your throughput by having a encoding system at a few of the source locations. Your queue system and asset management system should be designed in a way that it allows you to distribute the load across locations if necessary.

Is the content being sent to you from many locations? Here, you have different factors at play and a few options. First, you must make sure that you have enough bandwidth to receive the input videos. Here you can leverage a CDN to increase your bandwidth and take advantage of the geographical proximity to the submitter. Second, you must make sure that your file storage (for input files) is adequate and scalable. Third, you might be better off setting up a distributed encoding solution where videos are converted at a point closest to the submitter, or even at the submitter end. Fourth, content management must be able to track all the incoming videos and move them to the output location(s) with flexibility.

Input formats or devices that need to be supported are important constrains in designing the Transcoding system. Do you need tape support? Do you need analog or digital video inputs? (SDI?) If so, you need a capture card with a serial machine control interface and make sure that it supports the right kind of video inputs. You also need to make sure that the input file format is supported by your hardware of software Transcoding system.

The output file format(s) is also an important consideration. Do you need to output videos in one single format? What format? Some systems charge more for certain output formats or doesn’t support them at all. Don’t assume, read the specifications or ask the vendor.

Where and how you are going to deliver your videos is the last piece of the Transcoding system. Again, you need to make sure that you have enough bandwidth to support your desired output rate. Consider a CDN when you need to deliver to multiple geographic locations.
Next post will cover user generated video transcoding workflows.

Thursday, December 4, 2008

Video Mastering Transcoding Workflows

Encoding of videos for mastering is driven by quality. The objective is to achieve a video file that adheres to strict industry standards.
Usually, a single or a series of masters are created to be to be replicated or to be used as sources in making copies of the video to other formats.
As an example, a video master for a DVD is created with a professional MPEG-2 video encoder from a video tape (a master video tape itself, usually.) Great attention is placed on creating a pristine, free of artifacts MPEG 2 file that goes through a quality control process (QC) by a human that watches the video in a room equipped with video monitors that have been calibrated for color, brightness, etc. The QC process also involves looking at the video signal on a waveform monitor and vector scope to verify its integrity. There are also QC software programs that can analyze the file for anomalies in the stream.
It is not uncommon that file candidates to be masters are rejected. Video material varies greatly and that makes the video encoding for masters challenging. Parameters in mastering type video encoders can be adjusted for scenes with fast motion, noise, or scene changes. Some encoding packages allow the encoding operator to adjust these parameters on a scene by scene basis. And as you can imagine, this process becomes very time consuming.
A good video mastering workflow is illustrated in the figure below.


To avoid storing RGB or YUV files, some facilities and studios have been creating high quality compressed files like MPEG-2 @ 50Mbs I frame only to be stored and used as masters to create other files down stream. They call them “mezzanine” files as they are an intermediate master in the creation of other videos. These mezzanine files should also follow the same type of workflow as they are a master on their own. Mezzanine files are being used today to create podcast, streaming files for web delivery in many formats as FLV, H.264, WMV or several flavors of Quicktime. The great advantage of using a mezzanine file as the source is that the encoding of new target files can be automated, and managed by a computer. Also, it uses less bandwidth on the network as compared to uncompressed videos or using tapes as sources.
In my opinion, H.264 should be used to create mezzanine files as greater video quality can be obtained while producing smaller files.
Next post will cover transcoding automation

Monday, December 1, 2008

Free and Open Source Transcoding Software

First of all I would like to thank all of you for the great topic suggestions. I'll try to get to them in a timely manner.

To conclude a cursory review of the different Transcoding options, I will examine some of the most popular free or open source solutions available.

As with any free software or open source package, if there are any problems, you won’t have any body to complain to or to help you. Also, some free codec packs and encoding packages may contain spy ware. Definitely Caveat Emptor.
There are some very good video Transcoding tools available as open source or free. Probably the most popular open source software package is FFMPEG.

FFMPEG:
This is an open source video Transcoding platform that covers pretty much every video codec out there with the exception of On2’s VP6 Flash-8 codec.
There are many graphic user interfaces to FFMPEG’s command line interface. I have tried the SUPER package and found the UI intuitive and easy to use.

http://www.theinquirer.net/en/inquirer/news/2006/07/31/dont-buy-any-video-converter-before-trying-this-freebie
http://www.erightsoft.com/SUPER.html
http://ffmpeg.mplayerhq.hu/

Riva FLV Encoder
Converts to Flash FLV 1.1 from many input formats including AVI, MPEG, DV, MOV and WMV.

http://www.download.com/Riva-FLV-Encoder/3000-2140_4-10320097.html?cdlPid=10381392

Windows Media Encoder
Converts to wmv files. It accepts many input video files as long as the codecs are installed in your system. Free from Microsoft. If your input file doesn’t work, you might need to install a codec pack.

http://www.microsoft.com/windows/windowsmedia/forpros/encoder/default.mspx

DivX Encoder
Converts to DivX format. The input support also depends on the codecs you have installed in your computer. You can get it free at the DivX website

http://www.divx.com/divx/windows/

TubeTilla YouTube downloader
Downloads a YouTube video from a URL and converts it to mp4 or wmv. A couple of people seem to have liked the software.

http://www.snapfiles.com/Freeware/gmm/fwvideconvert.html

Next week I will be talking about some of the best video transcoding practices for mastering and how to optimize that workflow.

Thursday, November 20, 2008

Professional Hardware Encoding Systems

Below is a short description of the most popular video Transcoding appliances available in the market today.

Inlet technologies:

Armada: $14,000 + $7,500 additional node.


Windows Media VC-1, Flash 8 (VP6), H.264, MPEG-4 Part 2, MPEG-2 and AC3 Stereo.
Nice management system. You can define pre encoding tasks such as file verification and metadata extraction and post encoding tasks such as quality control, encryption and even publishing. Multi-CPU system.
No formal reviews are available yet.

http://www.inlethd.com/encoding/65/47/Automated-Transcoding-and-Encoding-Workflow-Management/

Fathom:

H.264, MPEG-4, Windows Media, VC-1, MPEG-2, AVI, and Flash
Watch folders, accepts from tape, servers or editing workstations. Both HD and SD are offered.
http://www.xyhd.tv/2006/11/reviews/review-of-inlets-fathom-vc-1-hardware-accelerator/
http://www.inlethd.com/encoding/18/16/Fathom/

Spinnaker: $9,995

Live encoding and streaming. VC-1, VP6 and H.264.
Price ranges between 30k to 70K.
http://www.streamingmedia.com/article.asp?id=10182
http://www.inlethd.com/encoding/20/18/Spinnaker/


Media Excel:

HERA Line of appliances.


The HERA u is designed with web and mobile delivery of user generated content while the HERA f is targeted to Broadcasting.
HERA Series outputs to MPEG-2, MPEG-4, H.264, DivX, xVID, QuickTime, Flash 9, WM9, 3GPP. And is configurable to output on Gigabit Ethernet, Fiber Channel and may accept HD-SDI as input.
Metadata extraction and insertion. Scalable and high speed.
No reviews as of the writing of this post. This system is being unveiled at IBC 2008

http://www.mediaexcel.com/hera_4000u.php

HMS File management

The HMS File management system is designed to manage all the Transcoding and delivery of files across many HERA encoding appliances.

http://www.mediaexcel.com/hera_management_system.php

ViewCast:

Niagara Streaming Encoders:


Capture, encode and stream workflows. Depending on the mode it can compress to Mpeg-4 and Flash, wmv and Real. Designed to stream live. Offer SDK.
http://www.viewcast.com/product_GoStreamSURF.asp


Digital Rapids:

Transcode Manager with StreamZ: $20,000 + $5,000 additional node.

Digital Rapids Transcode Manager with StreamZ

A very sophisticated and with unlimited scalability. It offers a full API via XML. It is a very robust system that can be configured to handle specific outputs if needed. You need a server ($20,000) and you can add nodes for $5,000 to $8,000 depending on the output types. They offer a Lite system that can support up to 10 engines. The light version server costs $5,000 and each node is $5,000. The lite API is has some restrictions and limitations.
http://www.streamingmedia.com/article.asp?id=9423&page=1
http://www.digital-rapids.com/Products/IndividualProducts/Transcode%20Mgr.aspx
http://www.digital-rapids.com/Products/IndividualProducts/StreamZ.aspx

Ripcode:

Video Transcoding Appliance


Formats: WMV9 / VC-1, MPEG-1, MPEG-2 MP@ML, MPEG-1 Program Stream, H.264 BP and MP, Flash Video (On2 VP6), MPEG-4 Part 2 Simple Profile, 3GPP, AVI, M-JPEG
This is a different take on video Transcoding. The concept is to provide an array of DSP’s that can simultaneously transcode up to 8 different video streams. I saw a demo at streaming media west where the system was simultaneously Transcoding 8 mobile streams.
http://www.ripcode.com/productOverview.php

Thursday, November 13, 2008

Consumer Software Transcoding Applications

Below are some of the most popular consumer video transcoding applications in the market. They often are bundled with DVD authoring and DV Cam capture modules that come in handy. Some of these software packages don’t allow you to change or customize encoding parameters like the bit rate. Often they only offer a limited amount of pre-defined profiles for users to choose from.

AVS Video Converter: $39.95
Movavi Video Converter 6: $29.99
Pinnacle Studio 12: $49.99
Nero: $59.99
QuickTime Pro: $29.99
TMPGEnc 4 XPress: $99.95
Roxio Crunch: $39.99


AVS Video Converter:
Good value for your buck. You can convert to many formats, AVI, MPEG (including for DVD, iPod, and Mobile) QT, WMV, RM and Flash. It offered some simple yet handy editing features. They have a trial version that watermarks the output file. Output video quality is good.

http://video-converter-software-review.toptenreviews.com/avs-video-tools-review.html
http://www.avsmedia.com/VideoTools/index.aspx

Movavi Video Converter 6:
It doesn’t accept flash video files. Output formats cover MPEG, MOV, FLV, 3GP, AVI and WMV. Real.
You can select a profile and then go into “Settings” to change bit rates, resizing parameters, audio settings and more. It also offers some editing tools that come in handy. The Evaluation version didn’t work for me at all so I can’t comment on the output quality.

http://video-converter-software-review.toptenreviews.com/movavi-video-converter-review.html
http://movavi.com/videoconverter/whats-new/v60.html

Pinnacle Studio 12:
No trial version, so just read the review below.

http://computershopper.com/reviews/pinnacle-studio-12-review
http://www.pinnaclesys.com/PublicSite/us/Products/Consumer+Products/Home+Video/Studio+Family/Studio.html

Nero:
Good application. Mainly targets users that want to burn video to DVD or CD. Supports AVCHD on regular DVD’s.

http://www.softpedia.com/reviews/windows/Nero-7-Premium-Review-11730.shtml
http://www.nero.com/enu/nero8-introduction.html?NeroSID=7e4d874f7793823d9a17d6d5055b0141

Quicktime Pro:
Nice Product. The user interface for video conversion is not very good and the video quality is not the greatest, but you can’t beat the price. Output formats are limited. There is no support to convert to WMV, FLV or Real.

http://www.pcmag.com/article2/0,2817,1875130,00.asp
http://store.apple.com/us/product/D3380Z/A

TMPGEnc 4 Xpress:
Easy to use. Has a batch encode utility. It offers basic editing features and filters for video and audio. It lets users set a great deal more parameters within a template profile than other consumer applications. There is no conversion to Real or Flash. You can save to DVD and VCD formats. Output video quality is good.

http://dvdcreation.digitalmedianet.com/articles/viewarticle.jsp?id=48204
http://tmpgenc.pegasys-inc.com/en/product/te4xp.html

Roxio Crunch:
They didn’t offer a trial version, so I couldn’t give it a try myself.

http://www.itreviews.co.uk/software/s511.htm
http://www.roxio.com/enu/products/crunch/mac/overview.html

Next time I will review hardware encoding solutions.

Thursday, November 6, 2008

Professional Video Transcoding Systems

In this blog I will be covering real world encoding issues with the most current tools available in the market.
To start, I wanted to list some of the software professional transcoding tools that are most common in the industry today. Follow the links to the company websites as well as product reviews when available. The prices were gathered at their websites or reviews for the products and might have changed by the time you read this article.
This are software only solutions, you have to get your own hardware to run them.

Rhozet Carbon Server: $14,995 (minimum requirement)
Rhozet Carbon Coder: $4,995 (additional node)
Anystream: $10,000 (base system)
Flip factory : $5,495
ProCoder 3: $470
Sorenson squeeze 5: $499
Flip4Mac Episode: $ 499
Flip4Mac Episode Pro: $ 995



Rhozet Carbon Server / Coder

Probably the most popular application for video transcoding today is Rhozet. And for good reason. It is, very robust, scalable with a very flexible API.
The system requires that you buy the Carbon Server at a minimum, which is itself an encoding node, and you can buy additional Carbon Coders or nodes to extend the system's capacity.
http://www.streamingmedia.com/article.asp?id=9543
http://www.rhozet.com/

Anystream Agility System

This is another excellent product with a good API. Very reliable and robust. The system can be extended to suit your needs.
http://www.streamingmedia.com/article.asp?id=10177
http://www.anystream.com/

Telestream FlipFactory

A good system, but with a bit less straight forward interface and approach.
http://www.telestream.net/news/article_streamingmedia_FF12_18_01.htm
http://www.telestream.net/products/flipfactory.htm

ProCoder 3

Good bang for your buck. Not scalable but can easily automate simple workflows.
http://digitalcontentproducer.com/videoencodvd/revfeat/grass_valley_procoder/
http://desktop.thomsongrassvalley.com/products/ProCoderSW/closeup.php

Telestream Flip4Mac and Flip4Mac Pro

Supports many of the semi-pro and pro formats (Pro version.) You can do batch encoding. If you use a Mac, you need this tool.
http://www.macworld.com/article/46733/2005/09/flip4mac.html
http://www.flip4mac.com/

Sorenson Squeeze 5

Also a good bang for your buck. Not scalable, but you can batch encode with ease.
http://www.streamingmedia.com/article.asp?id=10439
http://www.sorensonmedia.com/products/?pageID=1&ppc=3

Next post will cover some of the most popular consumer applications available in the market today.