-->
Save your seat for Streaming Media NYC this May. Register Now!

Review: Wowza Media Server 2

Article Featured Image

To take advantage of Wowza's ABR capabilities, the server looks for two or more files that vary by bitrate but that share key frames synchronized, on the assumption that key frame synchronized files were encoded at the same time.

"The server will use the transport and perform the segmentation as appropriate for the given player," Dobrushin says. "Provide the files and Wowza server will take care of the rest-it will do segmenting as appropriate."

This is all quite clever. Wowza's version of serving up files puts the intelligence in the server, allowing the human work to be focused on choosing what bitrates make the most sense for overall playback.

Wowza also eliminates a decision point when it comes to types of file formats and extensions for H.264-base files, as Wowza supports FLV, M4V, MOV, MP4 extensions. These standard MP4 files, each at their own single bitrate, can be streamed to any protocol that supports raw H.264 streams; that's the essence of protocol conversion.

In addition, files that share the same keyframe parameters but have different bitrates can all be loaded into Wowza without the need to address segmentation beforehand. This means that the SMIL file can be edited easily in a text editor should an additional bitrate be required for a new device's optimal bitrate.

The company has also made available a preview of Adobe's Dynamic Streaming, also known by its original code name, Zeri.

"Just to be clear," Dobrushin says, "the current Wowza preview of Zeri [in a downloable zip file] supports VOD dynamic streaming and single bitrate live streaming. The final will support dynamic live streaming as well."

Subfolder Snag

So back to the testing. Now that I understood how Wowza Media Server created its own manifests as well as the need for SMIL files for ABR content, I put my stand-alone and grouped files into subfolders and added SMIL files.

When I tried to play the content back, though, it wouldn't play in Flash player, on the iPhone, or in QuickTime.

Up until this point, I'd spent less than an hour on setup, streaming single-bitrate files to VOD, and checking up on questions about manifests. It took about another 12 minutes to download the multiple-bitrate example files and their corresponding SMIL file, and about another 3 minutes to create my own SMIL file. So, at the most, I'd spent 75 minutes from download to streaming multiple single-bitrate files.

Then I ran into two snags. The first involved subfolders, which I'd inadvertently created as a problem for myself by consciously intending to keep different types of files in different folders. The second was Silverlight playback.

The same forum post I'd found earlier also solved the subfolder question for me: Reading further down the forum post, I found that the use of a subfolder requires an application instance that must be called out within the URL string, in the form of a "definst" after the "vod/" and before the "/subfolder1" or "/subfolder1/ subfolder2" portion of the URL.

"Combining connection info and stream in a single RTMP URL string would yield [a] URL that looks like this: rtmp://[wowza-address]/vod/ mp4:filename.mp4," Wowza support team member Richard Lanham wrote in response to a question about subfolders. "Using JConsole, you will see [a] _definst_ designation, to define an application instance."

This goes back to my earlier comment about the content being in a Content folder, but the URL uses a VOD folder designation instead. Wowza Media Server is defining an instance in which it automatically looks at the Content folder if VOD is designated as a folder in the URL string.

"If the video is located in a subfolder (in /content/subfolder/filename.mp4), and you try to designate just the subfolder (rtmp://[wowza-address]/vod/subfolder/mp4:filename.mp4) it won't work," Lanham wrote. "To make it work, the _definst_ must be placed between /vod/ and the file name."

In other words, in our example, we'd see the URL looking like this: rtmp://[wowza-address]/ vod/_definst_/subfolder/filename.mp4.

"In cases where application instance is not explicitly specified, Wowza takes care of it," Lanham wrote, "but in cases where subfolders are involved, you have to specify the application instance to disambiguate application instance from folder path. Or it won't work."

Within 15 minutes, I was up and running multiple-bitrate files, complete with the original SMIL file I'd created, as ABR for iPhone and QuickTime on the Mac OS X laptop.

Silverlight Setback

The final step I had to do for Wowza Media Server 2.1.2 was to get Silverlight Smooth Streaming running. The quick-start guide made it sound simple, but it took several hours for two primary reasons: First, I had to create an XML file and stick it in a particular file, then restart Wowza. While this isn't a daunting task, since I've done XML, PHP, and HTML code by hand, I inadvertently forgot to convert the copy and paste from the quick-start guide to plain text, so the formatting from the browser came with it.

When it was placed in the particular folder and Wowza restarted, I was then able to check to see if the file returned the text when I typed in the XML file's location. It did, although it was in a long string instead of the way XML typically displays. After emailing a few rounds with tech support, I discovered that the formatting was causing an issue with Wowza's ability to read the XML. I was instructed to copy the same XML file from another location.

Once that copied file was in place, Wowza was restarted and the URL was typed in-the screen returned blank. That led to the second discovery: Safari doesn't return XML content like Firefox and Internet Explorer do, since the Safari Webkit renderer thinks it's supposed to be hidden code (which is true for all Webkit-based browsers).

So after all of that, the copied file worked fine. Why that wasn't the first approach, instead of creating another XML file, is still a mystery to me, although I understand from Wowza CTO Charlie Good that the company's goal is to keep the initial Wowza Media Server setup as clean and secure as possible.

Tech support was very helpful in the matter, so while it took a few extra hours to nail down that problem, I was still able to do all the VOD tests-including Smooth Streaming-in less time than it takes to set up a single-format server. That's pretty impressive.

Closing Thoughts

In closing, I wondered whether the use of SMIL files was short-lived now that the Apple playlist M3U8 format has been submitted for consideration as a standard, and also now that so many encoding systems already create a manifest for H.264 files.

"The choice to use SMIL was to try to normalize the multibitrate setup process across all the streaming technologies," says Dobrushin, in answer to this question. "The way it works now, a single SMIL file can be used for iPhone, Silverlight, and Flash HTTP streaming. M3U8, on the other hand, is very Apple specific."

This approach, to me, sums up Wowza's philosophy: Break the streaming process down to its basics, with an H.264 file in any format, which can then be streamed to any other format or protocol. Then generate playlists on-the-fly for single bitrate files, and use the common-denominator SMIL file to tie together multiple bitrate files, which Wowza then segments on-the-fly. It's a process that looks simple to the content delivery technician and seamless to the end user but, like any good technology, is highly complex just beneath the surface.

Streaming Covers
Free
for qualified subscribers
Subscribe Now Current Issue Past Issues
Related Articles

Wowza Media Server 3: Any-Screen Delivery Done Right

Wowza revamps architecture and adds transcoding and DVR modules, offers free upgrade to Wowza Media Server 2 licensees

Companies and Suppliers Mentioned