On June 29th gave a presentation at Microsoft Campus, Gachibowli, Hyderabad
- Link to the presentation
- Link to the event photos at Microsoft India R&D Pvt. Ltd, Gachibowli.
|
|
|
* this will be used
to view the live streaming on the html page
|
|
|
|
Code Snippet for “startup.cmd”
set
msiexec=%systemroot%\system32\msiexec.exe
set appcmd=%systemroot%\system32\inetsrv\appcmd.exe
%msiexec% /i
"%~dp0\IISMedia64.msi" /qn ADDLOCAL=ALL /Le startup_media.txt
|
|
Code Snippet:
<Startup>
<Task commandLine="startup.cmd" executionContext="elevated">
</Task>
</Startup>
|
|
|
|
|
|
|
|
|
PUSH Input Stream: This push input is for accepting long running live streams from a push source which uses HTTP POST requests to push data into the server. A push source can be a group of live encoders or another Live Smooth Streaming publishing point. The more common usage of push input stream is to ingest live stream from Live Smooth Streaming encoders which typically supports push outputs. As we have seen in "Configure IIS Media Services" section it follows PUSH model where we configured a Server in PUSH mode which will receive the Encoding Packets and can also show the live fragments. |
|
PUSH Output Stream: Push output stream means that the publishing point, upon being started or receiving new incoming streams, pushes the same long running fragmented MP4 streams to other publishing points using HTTP POST requests. Push output stream is often used to fan out encoder streams among the servers and provide redundancy in failover scenarios. To configure push output streams, you just need to set it up on the publishing point settings |
|
PULL Input Stream: Pull Input Stream is normally used in server to server distribution to scale out the streams. It could also be used to ingest live streams from the encoder if the encoder supports pulling. When configured with pull input stream, the server will issue HTTP GET requests to upstream servers to pull down the long running fragmented MP4 streams. A typical usage of Pull Input Stream is on distribution servers which source from origin servers. The distribution server can offload manifest creation, file archiving and client request serving from the origin server. The distribution server knows how to sync up with the origin server to provide full access to all the live contents to the clients. One publishing point can only be pulling from a single source publishing point at a time. The additional URLs you enter will become the backup URLs. If the current connection gets broken, server will do a limited number of retries using the current URL. If all retries with the current URL failed, server will then try the backup URLs one by one until it succeeds. |
Distribution Server using Pull Input Streams
|
PULL Output Stream: Pull Output Stream is simply to enable downstream servers to pull from the current one. It’s the same "Allow server connections" checkbox that enables both push and pull output stream option. Since the sever will be waiting for downstream requests for pulling, there is no other settings to be configured | |
Putting it all together: Ok, so we’ve gone through all the possible inputs and outputs and their functionalities. Now let’s take a look at an IIS Live Smooth Streaming server solution as an example and see how these inputs and outputs work. This is a topology which was been used for some live event deployments. There are five layers in this diagram: encoder, ingest, origin, distribution and client. The solid lines are the normal data flow path while the dotted lines are the backup/failover paths. |
1
|
Start Expression Encoder & select Live
Broadcasting Project, and then click OK
|
|
2
|
Set up the source to use for your live
broadcast
|
|
3
|
Select the Presets tab, choose the
preset which shows IIS Live Streaming.
|
|
4
|
On the Output Tab enter the publishing point
ex: http://<server-name>/LiveSmoothStream.isml and click Connect.
Note: Select the “Automatically update on
restart” checkbox for the EventID as a Live Smooth Streaming publishing point
must be reset on the server if you wish to broadcast to it multiple times.
Each time you start and stop encoding, you must shut down and restart the
publishing point on the server before you can connect to it again. Otherwise,
data from the last run will still be on the server and you will encounter
errors while broadcasting the next time
|
|
5
|
Click Start to begin the live broadcast.
|
1
|
Download
SMF Player
| |
2
|
Extract
the files and copy “SmoothStreamingPlayer.html” and “SmoothStreamingPlayer.xap”
files
| |
3
|
Modify
the “SmoothStreamingPlayer.html” page
|
Update the below line of code to point to the livestreaming
URL as shown below:
<param name="InitParams" value="selectedcaptionstream=textstream_eng, mediaurl=http://<server-name>/LiveSmoothStream.isml/manifest" />
|
4
|
Run
the “SmoothStreamingPlayer.html” on the browser
|
1
|
Create
a simple HTML5 webpage with a video tag
|
<html>
<head>
<title>iPhone live streaming page</title>
</head>
<body>
<h1>Live stream.</h1>
<video width="640"
height="480" src=" LiveSmoothStream.isml/manifest(format=m3u8-aapl).m3u8"
poster="MyPosterFrame.png"
autoplay="true"
controls="true" >
Live
</video>
</body>
</html> |
2
|
Run
the webpage on the browser
| |