• How to transcode live streams to WebM for MPEG-DASH playback

    This article will show you how to broadcast live streams using the open-source WebM file format, which is supported through the transcoder templates in Wowza Streaming Engine™ 4.5 media server software.

    Notes:
    • This article requires Wowza Streaming Engine 4.5 or later, the latest version of Google Shaka Player, and the current version of Google Chrome.

    • Previously the WebM file format and codecs were supported as a technology preview feature in Wowza Streaming Engine software. We recommend updating to Wowza Streaming Engine 4.5 for the best results.

    • Wowza Streaming Engine 4.4.0 or later is required if you want to encrypt WebM streams on the fly. The encryption uses key files and follows the WebM Project specifications. Bowsers that support Encrypted Media Extenstion (EME) and WebM, such as Google Shaka Player, should be able to decrypt and play the streams. For more information, see How to secure MPEG-DASH streaming using Common Encryption (CENC).

    Contents


    About WebM
    Transcode to WebM for MPEG-DASH playback
    Prepare the player
    Start streaming

    About WebM


    WebM is an open media file format created for serving live streams on the web. Developed by the WebM project, which is sponsored by Google, the WebM file format is open source and royalty free. The WebM file structure uses the Matroska container and contains streams compressed with the VP8 and VP9 video codecs and the open-source Vorbis and Opus audio codecs. VP8 and VP9 offer high-quality video compression that is designed to play on any device, including mobile devices, and over lower-bandwidth connections.

    WebM files can be played in any browser that supports HTML5 and the VP8, VP9, Opus, and Vorbis codecs. One supported player is the latest version of Google Shaka Player.

    Transcode to WebM for MPEG-DASH playback


    Start Wowza Streaming Engine and configure the default live application to receive an H.264 stream, transcode the stream, and deliver MPEG-DASH video to the latest Google Shaka Player.

    1. Sign in to Wowza Streaming Engine Manager, click the Applications tab, and select the live application in the contents panel.

    2. Confirm that MPEG-DASH is enabled under Playback Types.


    3. Click Transcoder in the contents panel and, if the Status is Not Enabled, click Enable Transcoder.

    4. After Transcoder is enabled, click Edit on the Setup tab of the Transcoder page.

    5. From the Fallback Template menu, select the template you want to use.

    6. Deselect Match source stream name to template name.

      Note: If you leave Match source stream name to template name selected, the fallback template isn't always used. When Match source stream name to template name is selected, if the name of a transcoder template and the name of a stream are the same, the stream uses the corresponding transcoder template, not the fallback template.
    7. Click Save, and then click Restart Now.

    8. In the Transcoder Templates list, click on the Fallback Template you selected.

    9. In the encoding Presets list, click the Edit icon for a preset you are using, configure the following options, and then click Save. Repeat for each preset you are using.

      • From the Video Codec list, select VP8 or VP9.

      • From the Audio Codec list, select Vorbis or Opus.

      • Configure other settings as needed. For more information about encoding preset configuration options, see Template details - Encode.

      Now, all incoming streams will be transcoded into VP8/VP9 video and Vorbis/Opus audio.

      Finally, set up the application to receive live stream from an H.264 IP camera or encoder.

    10. In the contents panel, click Sources (Live).

    11. Select the camera or encoder that you want to use as your video source, and complete the steps to connect it to Wowza Streaming Engine. For more information, see How to connect a publisher to Wowza Streaming Engine.

      Note: Wowza Streaming Engine requires that encoders and cameras use authentication to connect to a live application. To disable incoming authentication (if desired), click Incoming Security, click Edit, and then for RTMP Publishing and RTSP Publishing, select Open (no authentication required).

    Prepare the player


    To play your WebM stream, use the latest Chrome browser and Google Shaka Player. For more information, see How to use Google Shaka Player with Wowza Streaming Engine (MPEG-DASH).

    Note: You can test your stream setup using Wowza's implementation of Shaka Player on our Wowza Test Players webpage. The Test Players are provided for testing purposes only.

    Start streaming


    Start your encoder and then check the live stream.

    1. Start the stream in the H.264 camera or encoder that's sending the stream to the live application in Wowza Streaming Engine.

      The live application ingests the stream, transcodes it, and generates the MPEG-DASH adaptive-bitrate streams.

    2. In Wowza Streaming Engine Manager, verify that the stream is working by clicking Incoming Streams in the contents panel and then clicking the stream name.

      The stream detail page displays the Status of the stream (Active) as well as details about connections, uptime, and throughput for the live stream.

    3. Switch to the Google Shaka Player in Chrome and click the Play button. The stream should play.

    4. Stop the stream in the source camera or encoder to end your test connection.


    Originally Published: 06-16-2015.
    Updated: For Wowza Streaming Engine 4.5.0 on 06-23-2016.

    If you're having problems or want to discuss this article, post in our forum.