• How to set up live streaming using a native RTP encoder with SDP file

    This tutorial provides the basic steps that show how to use Wowza Streaming Engine™ software to publish a live stream from native RTP encoders for playback on all supported player technologies.

    Contents


    Tutorial

    Troubleshooting

    Related Articles

    Tutorial


    This tutorial shows you how to set up an application that ingests content from a live encoder that publishes a stream using the Real-time Transport Protocol (native RTP) and a Session Description Protocol (SDP) file. Wowza Streaming Engine software administrators can configure live streaming applications by using UI options in Wowza Streaming Engine Manager or by setting properties in Application.xml. Both configuration methods have the same result. Wowza Media Server® software administrators must configure live streaming applications in the Application.xml file.

    Note: Native RTP encoders deliver streams to Wowza servers using the Real-time Transport Protocol (RTP). This protocol is used to deliver media streams to the server but doesn't have the capability to also deliver the session description information that the server requires to process the streams. This information is typically generated by the native RTP encoder and saved to a Session Description Protocol file (a file with a .sdp file name extension) that you must upload to the Wowza server.

    Wowza Streaming Engine Manager configuration

    This section shows you how to set up a live streaming application in Wowza Streaming Engine Manager. Users play the live stream to view the event as it happens. The example uses an application named live, which is included in default Wowza Streaming Engine software installations. If you want to create a new live streaming application, you can use this same procedure.

    You can use Streaming Engine Manager with the latest versions of most web browsers that support HTML5 and Cascading Style Sheets level 3 (CSS 3). We recommend the Google Chrome browser.

    1. Start Wowza Streaming Engine Manager.

    2. In the Streaming Engine Manager Welcome page, click the Applications tab at the top of the page.

    3. Configure the live application:

      1. In the contents pane, click live, and then click Edit. (This example uses the installed live application. If you want to create a new live streaming application, click Add Application in the contents pane, and then click Live. Follow the instructions in the UI.)



      2. On the live page, select all of the Playback Types, and then click Save.


      3. The following alert appears after every configuration change. You can wait until all changes are completed before you restart.


    4. Configure outgoing (playback) authentication:

      1. In the contents pane, click Outgoing Security, and then click Edit.



      2. On the Outgoing Security page, select No client restrictions, and then click Save.


    5. Restart the application.



      The application runs whenever Streaming Engine software is running.


    Publishing the stream

    This section provides the basic steps for publishing your live stream.

    1. Use the encoder software or interface to generate a Session Description Protocol (SDP) file that describes the stream. Name the file myStream.sdp, and then copy it to the [install-dir]/content folder on the Wowza Streaming Engine.

    2. Start Wowza Streaming Engine Manager.

    3. In the Server contents pane, click Stream Files, and then click the Connect icon for the myStream.sdp file.
      Note: You can also start the procedure to connect a .stream file in the Applications contents pane for the live application.

    4. In the Connect a Stream File dialog box, select live in Application Name and rtp in MediaCaster Type, and then click OK.



    5. The Connection successful notification is displayed.


    XML configuration

    Note: If you created your application by following the previous section, skip this section. If you make changes to Application.xml and you're using Wowza Streaming Engine™ software, any supported settings will be displayed in the manager the next time it's started. Wowza Media Server® software doesn't support Wowza Streaming Engine Manager, so you must edit Application.xml in a text editor if you're running Wowza Media Server.
    This section provides the basic steps for setting up an application for live streaming and for configuring Application.xml.

    1. Create application folder [install-dir]/applications/live.

    2. Create configuration folder [install-dir]/conf/live and copy [install-dir]/conf/Application.xml to this new folder.

    3. Edit the newly copied Application.xml file and make the following changes (some of these settings may already be present):

      1. Set the Streams/StreamType property to:
        Code:
        <StreamType>live</StreamType>
      2. Set the HTTPStreamers property to:
        Code:
        <HTTPStreamers>cupertinostreaming, smoothstreaming, sanjosestreaming, mpegdashstreaming</HTTPStreamers>
      3. Set the Streams/LiveStreamPacketizers property to:
        Code:
        <LiveStreamPacketizers>cupertinostreamingpacketizer, smoothstreamingpacketizer, sanjosestreamingpacketizer, mpegdashstreamingpacketizer</LiveStreamPacketizers>
      4. Set the RTP/Authentication/PlayMethod property to:
        Code:
        <PlayMethod>none</PlayMethod>

    4. Restart the Wowza server.

    Publishing the stream

    Note: If you're using Wowza Streaming Engine, you can publish the stream using Wowza Streaming Engine Manager.
    1. Use the encoder software or interface to generate a Session Description Protocol (SDP) file that describes the stream. Name the file myStream.sdp, and then copy it to the [install-dir]/content folder on the Wowza server.

    2. Using a text editor, edit the file [install-dir]/conf/admin.password and add a user name and password that will be used to start and stop the publishing of the stream. The following is an example of the file with user name myUser and password myPassword:
      Code:
      # Admin password file (format [username][space][password])
      # username password
      myUser myPassword
    3. Start the Wowza server.

    4. Enter the following URL in a web browser:

      URL: http://[wowza-ip-address]:8086/streammanager

    5. In the Security dialog box, enter your admin user name and password from step 2.

    6. In the Stream Manager webpage, click the [start-receiving-stream] link just below the live application folder.

    7. In the Start Receiving Stream dialog box, select the following MediaCaster Type option: rtp.

    8. In the Stream Name field, enter myStream.sdp.

    9. Click OK.


    Playback

    Note: In the following examples, [wowza-ip-address] is the IP address or domain name of the Wowza server.

    Wowza Streaming Engine Manager

    In Streaming Engine Manager, click Test Players in the upper-right corner of the live application page. The Test Players window that opens includes test players that are preconfigured to stream the live stream named myStream over various streaming formats.

    Each tab in the Test Players window either hosts a test player that you can use to play the live stream or provides instructions for playing the live stream. For example, to use the Adobe HDS protocol to play myStream.sdp, click the Adobe HDS tab, enter the information below, and then click Start.

    • Server: Enter [wowza-ip-address]:1935.

    • Application: Enter live.

    • Stream: Enter myStream.sdp.




    The resulting URL syntax for playback on various clients is:

    • MPEG-DASH: http://[wowza-ip-address]:1935/live/myStream.sdp/manifest.mpd

    • Apple HLS: http://[wowza-ip-address]:1935/live/myStream.sdp/playlist.m3u8

    • Adobe RTMP: rtmp://[wowza-ip-address]/live/myStream.sdp

    • Adobe HDS: http://[wowza-ip-address]:1935/live/myStream.sdp/manifest.f4m

    • Microsoft Smooth Streaming: http://[wowza-ip-address]:1935/live/myStream.sdp/Manifest

    • Mobile Android: rtsp:///[wowza-ip-address]:1935/live/myStream

    The test players are also online at www.wowza.com/testplayers.

    Example players

    You can also use example players installed in [install-dir]/examples/ to test your streaming applications. For more information, see the following articles:


    Adaptive bitrate streaming

    Adaptive bitrate (ABR) live streaming to Adobe Flash Player, Apple iOS devices, Microsoft Silverlight, and MPEG-DASH players require that you have an encoder that can generate multiple bitrate streams from the same source with properly aligned key frames. You also must create a Synchronized Multimedia Integration Language (SMIL) file that links the streams together for playback.

    For example, assume that you have three live streams encoded at different bitrates:

    • myStream_700.sdp (700kbps total bitrate)
    • myStream_350.sdp (350kbps total bitrate)
    • myStream_200.sdp (200kbps total bitrate)

    Using a text editor, create a SMIL file named myStream.smil in the [install-dir]/content folder with the following content:
    Code:
    <smil>
        <head>
        </head>
        <body>
            <switch>
                <video src="myStream_700.sdp" system-bitrate="700000"/>
                <video src="myStream_350.sdp" system-bitrate="350000"/>
                <video src="myStream_200.sdp" system-bitrate="200000"/>
            </switch>
        </body>
    </smil>
    You can see that there's a <video> entry in the <switch> container for each stream rendition. The system-bitrate value is set to the total bitrate (in bits-per-second) for that stream.

    Microsoft Smooth Streaming will only switch between the video portion of the streams. The audio track in the first stream listed in the <switch> container will be used. If you want to use a stream other than the first stream for the audio track, add an <audio> entry to the <switch> container for that item. For example:
    Code:
    <smil>
        <head>
        </head>
        <body>
            <switch>
                <video src="myStream_700.sdp" system-bitrate="700000"/>
                <video src="myStream_350.sdp" system-bitrate="350000"/>
                <video src="myStream_200.sdp" system-bitrate="200000"/>
                <audio src="myStream_200.sdp" system-bitrate="96000"/>
            </switch>
        </body>
    </smil>
    Notes:
    • The <audio> item will be ignored when streaming using Adobe HDS (San Jose) or Apple HLS (Cupertino) streaming.

    • JW Player and Flowplayer use a client-side XML file to reference each stream rendition, not the server-side SMIL file that is shown in this tutorial. They both also use the BWCheck module.
    For more information, see How to do adaptive bitrate streaming.

    Troubleshooting


    RTSP/RTP

    RTSP/RTP streaming is used to stream to Android and BlackBerry mobile devices. Android mobile devices formerly supported Adobe Flash player, but Android no longer supports Flash. Newer Android devices now support Apple HLS. HLS works best on Android 4.0 devices and above.

    To stream to RTSP/RTP, be sure that UDP ports 0-65535 are open and properly mapped to the server that is running the Wowza server software.

    Note: To configure the Wowza server properly for RTSP/RTP streaming, carefully follow the instructions provided in How to troubleshoot RTSP/RTP playback.

    Property to force output to MPEG-TS (set-top box)

    When streaming out using RTSP/RTP, you can force the output to MPEG-TS, which is required by many set-top boxes. For more information, see How to generate and control MPEG-TS output for set-top boxes.

    Property to change AAC packetization method

    A Wowza server can use the mpeg4-generic and mp4a-latm (3gpp) packetization methods to output AAC audio. The default packetization method is mpeg4-generic.

    Wowza Streaming Engine Manager configuration


    To switch to mp4a-latm (3gpp), do the following:

    1. In the Streaming Engine Manager contents pane, click live.

    2. On the live application page Properties tab, click Custom in the Quick Links bar or scroll to the bottom of the page.

      Note: Access to the Properties tab is limited to administrators with advanced permissions. For more information, see Managing Sign-In credentials.
    3. In the Custom area, click Edit.

    4. Click Add Custom Property, and then do the following:

      1. Add the audioPacketizerAAC property with the following values:

        • Path: Select /Root/Application/RTP.

        • Name: Enter audioPacketizerAAC.

        • Type: Select String.

        • Value: Enter com.wowza.wms.rtp.packetizer.RTPPacketizerMPEG4LATM.

      2. Click Add.

    5. On the Properties tab, click Save.

    6. Click Restart in the upper-right corner of the live application page to restart the application.

    XML configuration


    To switch to mp4a-latm (3gpp), add the following property to the RTP/Properties container in [install-dir]/[application]/Application.xml (be sure to use the correct Properties container—there are several in the Application.xml file):
    Code:
    <Property>
        <Name>audioPacketizerAAC</Name>
        <Value>com.wowza.wms.rtp.packetizer.RTPPacketizerMPEG4LATM</Value>
    </Property>

    Updated: For Wowza Streaming Engine 4.0 on 05-15-2014

    Comments 11 Comments
    1. lisa_w -
      Added note with required parameters for playback with Microsoft Silverlight (Smooth Streaming). -Lisa
    1. Lime2404 -
      Hi dear wowza team! I've encountered with following trouble. According the Adaptive Bitrate Streaming algorytm I generate smil file and two .sdp files (1000kbps and 1500kbp/s streams) Then I start live streaming using following URL: http://10.10.30.129:1935/live/smil:m.../playlist.m3u8 but can't playback m3u8 playlist using my iPhone3G. It says, that operation is failed. However when I just try to playback video using following url: http://10.10.30.129:1935/live/myStre.../playlist.m3u8 , it was successful. Please, help me to find the mistake I made.
    1. randall -
      Hi Lime2404,

      Let's figure this out. So, you can play the stream directly, but the .smil file is not working. Try to provide more info:

      1. Post your .smil file.
      2. Any error messages? Post the relevant excerpts from your Wowza logs/console when you try to play the smil.
    1. Lime2404 -
      Sure. Here is the arhive with screenhots and smil file https://members.elecard.ru/dl/didpbr...99/myStreaming Lime2404.zip There is the warning server comment "Stream not found" look the screenhot "statistic when try to playback adaptive video streaming by IPhone 2" Unfortunatelly I can't just click on console window to select all and copy paste it here Thank you for your support
    1. Lime2404 -
      Sorry, here is the link https://members.elecard.ru/dl/bqebfl...g_Lime2404.zip
    1. Lime2404 -
      I have also a question. As I know, when WOWZA is receiving streams from any net renderer it should generate(save) 3 or 6 trimmed sample of received video on server storage for further broadcasting. After any receiving player will decode these samples, WOWZA is update trimmed video samples on next 3 or 6. Is it correct? Where can I find these sample video streams?
    1. arouaoui.med@hotmail.fr -
      Hi all
      i want to know if i want to manage many streams im obliged to create a sdp file for any streams or one sdp file can manage all streams if is the last how can i distingte between the streams
    1. rrlanham -
      Hi,

      You must use one sdp for each stream

      Richard
    1. arouaoui.med@hotmail.fr -
      thk you very match Richard
      but how can i send many streams and distinct between the sdp reciveres ???
      for exemple this sdp file in this form

      v=0
      s=Unnamed
      m=video 5004 RTP/AVP 96
      a=rtpmap:96 H264/90000
      a=fmtp:96 packetization-mode=1;profile-level-id=420016;sprop-parameter-sets=Z0IAFukBQHsg,aM4BDyA=;

      What I need to change to specify the rtp source ??
      Note (i use rtplive application )
    1. rrlanham -
      Perhaps this is what you mean:

      http://www.wowza.com/forums/content....tify-interface

      If so, there is nothing to do in the sdp file, the stream contains multiple tracks.

      Richard
    1. ChetanJoshi -
      Hi,
      I'm publishing stream using mystream.sdp,but not able to play the video at client side.Please help.

      Thanks,
      Chetan