Page 1 of 3 123 LastLast
Results 1 to 10 of 22

Thread: Powerpoint Presentations with Wowza

  1. #1

    Default Powerpoint Presentations with Wowza


    I apologise for being slightly lazy with this but I googled you and could not find a solution.

    From first principles how would I go about streaming, or presenting live, a PowerPoint presentation?

  2. #2


    There are many possibilities.

    You can use something that can capture your desktop such as VLC, FFmpeg, Java, or the camera utility that came with your computer.

    A more bandwidth efficient solution would be to store the powerpoint in some representation on the client and then control switching of slides remotely. You can export Powerpoint slides to jpeg, HTML, SWF. You can control remote clients with RTMP RPC (through Wowza), or with your webserver using polling, Ajax or HTML5 Websockets.

    You could probably even use .NET and the Powerpoint application natively.

  3. Default

    You can also use RTMP messaging for flash and HLS metadata (for iOS only) to send slide sync data through the video stream, the idea being that the ppt is converted into a series of images, and the metadata in the stream handles triggering events on the client application to load the images at the appropriate time. That way, you don't need to poll or rely on websockets (which aren't fully supported across all browsers just yet), and you can be certain that the slides will remain in sync with the stream.

    Randall had a good point about .NET . If you need to automate the process of converting the ppt to images, you can use the Microsoft interop classes and the Office PID. Of course, you'll need to have powerpoint running on the server for that, and you'll need to consider concurrency if you'll be handling a lot of powerpoint files (running multiple office automation processes concurrently is a bad idea). If you go that route, feel free to ask questions... it's something I've done in the past.
    Last edited by jay_charles; 07-26-2012 at 05:49 AM.

  4. #4


    Hi jay

    yes the RTMP route would be the way I would wish to go. Can anyone direct me to the correct tutorial here to use this with Wowza?


  5. Default

    Not sure if there's a tutorial available on the site, but the general principle is that you'd use IMediaStream.sendDirect to pipe the messages into the stream, and on the client side you'd have a method on the NetStream.client object to receive and process the messages.

  6. Default

    ... alternately you can send the messages from a flash client using NetStream.send, but that makes the assumption that the flash client is also handling the video encoding.

  7. #7
    Join Date
    Dec 2007


    If you do this on the server or with Netstream.send or IMediaStream.send or IMediaStream.sendDirect
    stream.sendDirect("onTextData", data);
    the AS3 client-side of is cuepoint handling:
    var clientObj:Object = new Object();
    netstream.client = clientObj;"myStream");
    Also, IMediaStream.sendDirect also takes care of recording the cuepoint if the stream is being recorded, is the only difference to IMediaStream.send


  8. #8


    Hi Guys

    I've read through this and I get the principles. However is there somewhere you can point to that shows how and where to use these from first principles? e.g. where on the server would I write "stream.sendDirect("onTextData", data);"?

    Any pointers to using netstream etc would be very helpful

  9. #9


    Hi John,

    Read through the UserGuide chapter 8, "Extending Wowza Media Server". You're going to need to dive into the Wowza IDE, and also probably FlexBuilder 4.5 or Flash Pro CS5 to make yourself a Flash/Flex application with which you will control the Powerpoint on the clients. You can look at the LiveStreamRecord module for an example of Flash client->server RPC.

    A suggestion off the top of my head: First, export the .ppt to HTML. Write your custom flash player such that the "presenter" has a "next page" button. That button runs a client->server RPC, which then runs a server->client RPC on all the clients, which calls a Javascript function, which switches to the next page.

  10. Default

    One other thing you'll need to consider... late joiners.

    If you're sending events over the stream, you'll want to send the event identifying the current slide every few seconds. The idea here being that if someone joins the broadcast 3 seconds after the last stream event, and you aren't sending those events on an interval, the late joiner won't get a stream event until the next one is sent (am I being clear there)?

    If you're only targeting Flash clients, you could have the client make a call to the server to get the current slide data right after the connection is established. If you plan to target iOS clients as well (which requires quite a few additional steps to send metadata through the stream and handle on the client side), you won't be able to use this method.

Page 1 of 3 123 LastLast

Similar Threads

  1. Replies: 0
    Last Post: 05-18-2014, 08:40 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts