The Smooth Streaming Format (SSF) is designed for seamless streaming that dynamically adapts to situations of bandwidth congestion by delivering a lower bitrate stream and avoiding excessive buffering. This is achieved by creating multiple video streams of the same output and dynamically switching between one video stream and another depending on the quality of the connection. For more information, perform an Internet search for "IIS Smooth Streaming".
A smooth streaming output consists of several files:
Manifest.ism, which is the main file referencing all of the other ones
Manifest.ismc, which contains information about all of the audio and video tracks
One or more VideoX.ismv files, which contain the video tracks at the various bitrates
One or more AudioX.ismv files, which contain the audio track. (Usually, there is only one audio track, although theoretically you may have different audio tracks for different languages.
Since the filenames have predetermined values, you cannot put more than one Smooth Stream in the same directory. Like a DVD image, when you set the output filename you are really setting the name of the output directory. You set the name of the output directory using the IFileSinkFilter::SetFileName method.
If the output directory currently exists, all of the SSF files inside it are deleted. If the directory does not exist, it is created automatically.
You first need to obtain an ILMSsfWrt Interface from the filter.
Use the ILMSsfWrt Interface to retrieve the ILMSsfWrtVideoStream Interface so you can configure the video stream. You can add multiple video streams and configure each of them using the ILMSsfWrtVideoStream Interface for each stream. Note that although there might be multiple output video streams, only one input video stream is necessary. The other video streams can be created from the same input video streams through resizing and conversion if necessary.
The easiest way to stream the SSF data is to use the Media Server SDK, which can stream multiple types of data in addition to SSF: HTML5 video, Flash Video, Apple HLS, etc. All you have to do is copy the SSF data to the Media folder and use the appropriate URL in the SSF client. See the Streaming SSF Content using the Media Server SDK topic for more details.
Another way to stream is to install IIS and add IIS Media Services extension. There is a Readme file in the HTML Examples folder with more information on how to set up IIS and the steps that can be taken to test Smooth Streaming playback (of either static or live content). See the Streaming SSF content in IIS topic for more details.
The LEAD SSF Writer can also act as a Push filter, sending the data to IIS Windows Services Server using a TCP/IP connection. This is used for Live Smooth Streaming for broadcasting. When broadcasting, the output is written to an .ISML file extension. The data is sent to the server and is cached on the server's internal cache folder.
The video can be compressed using H.264 or VC-1 (WMV) compression.
The audio can be compressed using AAC or WMA compression.
The SSF Writer has to control the size of the Group of Pictures for each stream, so it needs to recompress the data. You cannot convert a file to SSF with no recompression, even if the source has a compression supported by Smooth Streaming.
The SSF Writer has built-in VC-1 (WMV) and H.264 encoding capabilities. The 64-bit version of the SSF writer will use the WMVideo9 DMO Encoder to compress SSF files with VC-1 (WMV) compression.
The SSF Writer can use the LEAD H264 Encoder or the Windows 7 Media Foundation H.264 encoder.
The SSF Writer uses the WMAudio Encoder DMO to generate WMA audio. The SSF writer can use the LEAD AAC Encoder or the Windows 7 Media Foundation AAC encoder.
The client monitors the playback quality during playback and can request, from the server, video at a different bitrate whenever the bandwidth shrinks or expands. Silverlight players achieve this automatically when playing back from the web. LEADTOOLS includes a sample Silverlight HTML demo that can be easily modified to play IIS Smooth Streaming streams. This demo is usually put on the web server alongside the SSF content.
If you push broadcast content to the IIS Media server, keep in mind that sometimes the content can be sent only once. So it is not recommended to start and stop conversion multiple times. If you start and stop the conversion, you can get the Win32 ERROR_INTERNET_CONNECTION_ABORTED error (0x80072EFE). If that happens, you may have to shut down the live publishing point in order to be able to push the data again to the server. The readme file mentioned earlier contains more information about this.