How to Set Up a Streaming Server, from A to Z
According to Apple’s website, the use of its ABR technology—dubbed HTTP Live Streaming—requires that a media stream or file be segmented into a series of small media files of equal duration.
Apple has provided several drafts of its “Pantos spec” (named after the Apple engineer who has maintained the various versions of the proposed standard) to the Internet Engineering Task Force (IETF). The fact that Apple has published this draft specification allows others to create HTTP Live Streaming-compliant content, which we’ll cover in the Microsoft and Wowza sections.
For content to be segmented into a series of small media files, Apple recommends using a media segmentation tool that both segments the individual files and creates a playlist or manifest.
In non-Apple fashion, the company recommends two command-line tools for segmentation: Media Stream Segmenter and Media File Segmenter.
Doing away with the pleasantries of a graphical user interface allows Apple to push out frequent updates to the tools.
“Both tools are frequently updated,” the company states at http://developer.apple.com. “If you are an iPhone Developer Program member or a Mac or ADC [Apple Developer Connection] Select or Premier member, you can download the latest versions from the Apple Developer Connection website.”
Notice that Apple allows developers who have signed up and paid an annual subscription fee to access the updates. It’s true that the fee is only $99 per year for the iOS Developer Program, but it seems odd that a company pushing a standard that delivers across generic servers would charge for a command-line tool.
To segment the content for live delivery, choose the Media Stream Segmenter. An added benefit of HTTP Live Streaming segmentation is that a live stream that has previously been segmented can be quickly converted to a video-on-demand (VOD) stream just by updating the playlist.
“You can use the Media Stream Segmenter (mediastreamsegmenter) tool for deployment of HTTP Live Streaming Media,” Apple states, adding that an older version of the tool “can be found on your system disk at /usr/bin/mediastreamsegmenter.”
As its name implies, the Media Stream Segmenter tool segments a stream, in this case an MPEG-2 transport stream, over a UDP network connection and then segments it into a series of small media files. It then creates an index file referencing the individual media segments and prepares both for deployment to a generic HTTP server. The resulting files can be delivered to iOS devices as well as Mac OS X 10.6 Snow Leopard.
While the Media Stream Segmenter tool produces either live or VOD streams, Apple also provides the Media File Segmenter for file-based segmentation/ encapsulation.
“The mediafilesegmenter takes media from the specified file and multiplexes it into MPEG-2 Transport streams if required,” the developer website states, “and divides it into a series of small media files of approximately equal duration. The mediafilesegmenter also creates an index file containing references to the individual media files. The index file and media files can then be deployed as a VOD stream using common web server infrastructure.”
IIS Media Services 4 launched in late 2010. This new overall media stack doesn’t necessarily need a server—it leverages IIS (Internet Information Services) Media Services, a free set of media extensions for IIS, on several nonserver Windows platforms, including Windows XP Service Pack 3, Vista, and Windows 7.
Watch this workshop from Streaming Media East to learn adaptive streaming for Flash, iOS, Android, and Silverlight.