• How to do MPEG-DASH streaming

    Wowza Streaming Engine software includes support for Dynamic Adaptive Streaming over HTTP (DASH) as specified by the MPEG-DASH standard ISO/IEC 23009-1. MPEG-DASH is supported for both video on demand (VOD) and live streaming and is generally very similar to proprietary adaptive streaming technologies such as Apple HTTP Live Streaming (Apple HLS), Adobe HTTP Dynamic Streaming (Adobe HDS), and Microsoft Smooth Streaming.

    Note: DASH streaming is supported in Wowza Streaming Engine™ software (version 4.0 and later).

    Contents



    MPEG-DASH features
    Common Encryption and DRM
    Content delivery
    MPD URL syntax
    MPD redirects
    Configuration
    MPEG-DASH playback
    Troubleshooting

    MPEG-DASH features


    The MPEG-DASH standard provides a full set of HTTP adaptive bitrate streaming features and is, in a sense, designed to be a standardized replacement for proprietary HTTP streaming technologies such as Apple HTTP Live Streaming (Apple HLS), Adobe HTTP Dynamic Streaming (Adobe HDS), and Microsoft Smooth Streaming. The features include the following:

    • Frame-synchronized adaptive bitrate switching.

    • Codec-agnostic, allowing either H.264/AAC or WebM (VP8/Vorbis) to be used, although most industry interest centers around MP4 H.264/AAC.

    • DRM-agnostic. It specifically supports the Common Encryption (CENC) system.

    • Evolving support for closed-captions and subtitles.

    • Support for multiple file container formats.

    • Support for multiple manifest formats for VOD and live streaming.

    • Fast-growing industry support. Wowza® intends to evolve its server software with the standard to adapt to industry needs.

    Common Encryption and DRM


    Wowza Streaming Engine can protect VOD and live MPEG-DASH content using the Common Encryption (CENC) standard. CENC is DRM system-agnostic, which allows the same CENC-encrypted content to be decrypted and played by any client device that interfaces with a DRM system that can serve the associated CENC key information. CENC-encrypted MPEG-DASH streams also allow carriage of proprietary DRM system-specific data, which allows a client device to transact with the particular DRM system they are integrated with for key retrieval. Support for this proprietary DRM data requires some DRM-specific functionality to be added to the server internals for each DRM system. For more information about CENC and DRM within MPEG-DASH streaming using Wowza Streaming Engine software, see How to secure MPEG-DASH streaming using Common Encryption (CENC).

    Content delivery


    An MPEG-DASH server provides client players with a list of the available media chunk URLs in a Media Presentation Description (MPD) manifest file. Clients can then sequentially request the media chunks as required to provide uninterrupted playback of the media presentation.

    Delivery formats

    To provide a transition path from other HTTP streaming technologies, MPEG-DASH supports a variety of different MPD and media formats. This provides a combination of ways to identify chunk URLs, while also allowing different media container and content encoding formats. All variations and combinations allow adaptive bitrate switching as MPEG-DASH is designed for that specific purpose. In MPEG-DASH language, a "chunk" is also called a "segment," so there may be some mixing of terminology in the following lists. The terms should be treated as interchangeable.

    Chunk addressing schemes


    The following chunk addressing schemes define how chunk URLs are identified in the MPD file:

    • Segment List. A complete list of chunk URLs is provided for all available chunks.

    • Segment Template: Time-Based. A URL template is provided from which clients build a chunk list where the chunk URLs include chunk start times.

    • Segment Template: (Chunk) Number-Based. A URL template is provided from which clients build a chunk list where the chunk URLs include chunk numbers (like index numbers).

    • Segment Base - BaseURL. A non-chunked scheme where a single chunk is identified with a single URL (BaseURL), with the intent that the content will be retrieved through byte-range requests. (Not supported in Wowza Streaming Engine)

    Media container formats


    The following media container formats are supported:

    • ISO base media file format (IBMFF)

    • MPEG-2 TS (Not supported in Wowza Streaming Engine)

    • WebM (Not supported in Wowza Streaming Engine)

    Content encoding formats


    Media content can be represented in the MPD file as:

    • Non-multiplexed. Audio, video, and data are provided in separate chunks, resulting in separate chunk lists (possibly multiple bitrate renditions of each media content type).

    • Multiplexed. Audio, video, and data are muxed together in each chunk, resulting in a single chunk list (per bitrate rendition). (Not supported in Wowza Streaming Engine)

    Manifest profiles

    MPEG-DASH combines the above delivery format options into specific combinations called DASH media presentation conformance "profiles." According to the MPEG-DASH specification, the profiles are defined to enable interoperability and to signal the use of features. The profile(s) are identified by unique uniform resource names (URNs) in the MPD@profiles attribute in the MPD.

    Wowza Streaming Engine supports the following MPEG-DASH media presentation profiles:

    • "urn:mpeg:dash:profile:isoff-live:2011". Supports ISOBMFF container, VOD and live streaming, using either the Segment Template: Time-Based or the Segment Template: Number-Based chunk addressing scheme.

    • "urn:mpeg:dash:profile:isoff-main:2011". Supports ISOBMFF container, VOD and live streaming, using the Segment List chunk addressing scheme.

    Additionally, within these profiles, the Wowza server only encodes the media into non-multiplexed chunks where audio, video, and data are provided in separate chunks/chunk lists. This is generally accepted as the best option for supporting adaptive bitrate switching with the ISOBMFF file format. Support for other profiles or formats may be added at a future date.

    MPD URL syntax


    The Wowza server supports multiple MPEG-DASH MPD formats; therefore, a method is needed to enable a client to specify which manifest format it wants. This can be done by providing specific tokens in the file name part of the MPD URL, using the following format:
    Code:
    http://[wowza-ip-address]:[port]/[application]/[appInstance]/[streamName]/manifest_mp[manifest-profile]_mv[manifest-variation].mpd
    The mp [manifest-profile] token defines the manifest chunk "profile" (container and encoding formats) and the mv [manifest-variation] token defines the chunk addressing scheme as follows:

    manifest-profile

    • mpm4sav. ISOBMFF chunk container (m4s), non-multiplexed chunks. This is the default value and the only value currently supported in Wowza Streaming Engine.

    The following manifest profiles currently aren't supported in Wowza Streaming Engine:

    • mpm4smuxed. ISOBMFF chunk container (m4s), multiplexed chunks

    • mpmp2t. MPEG-2 TS chunk container, muxed by default

    • mpwebmav. WebM chunk container, non-multiplexed chunks

    • mpwebmmuxed. WebM chunk container, multiplexed chunks

    manifest-variation

    • mvtime. Segment Template: Time-Based (default value)

    • mvlist. Segment List

    • mvnumber. Segment Template: (Chunk) Number-Based

    If the mp token is missing, the manifest-profile value defaults to mpm4sav. If the mv token is missing, the manifest-variation value defaults to mvtime.

    URL examples

    The following URLs can be used to retrieve a DASH MPD for a live stream that provides non-multiplexed audio/video/data chunks in ISOBMFF containers (mpm4sav) using the specified chunk addressing scheme.

    Segment List (mvlist)


    Code:
    http://localhost:1935/live/myStream/manifest_mpm4sav_mvlist.mpd
    http://localhost:1935/live/myStream/manifest_mvlist.mpd

    Segment Template: Time-Based (mvtime)


    Code:
    http://localhost:1935/live/myStream/manifest_mpm4sav_mvtime.mpd
    http://localhost:1935/live/myStream/manifest_mvtime.mpd
    http://localhost:1935/live/myStream/manifest.mpd

    Segment Template: Number-Based (mvnumber)


    Code:
    http://localhost:1935/live/myStream/manifest_mpm4sav_mvnumber.mpd
    http://localhost:1935/live/myStream/manifest_mvnumber.mpd

    MPD redirects


    To provide statistics for tracking/monitoring server usage, the Wowza server maintains an HTTP session "context" for each streaming playback session. With other HTTP streaming technologies, the session is created when a player requests the manifest. The server doesn't expect the client to make additional requests for the same manifest in the same playback session, or else a new session would be created.

    One issue that MPEG-DASH presents in this area is that for live DASH streaming sessions, the player MUST periodically (by design) re-request the DASH MPD to identify the availability of new chunks, or the expiration of old ones. For the Wowza server, a new HTTP session would be created erroneously whenever a player re-requests the DASH MPD. This issue is addressed in Wowza Streaming Engine by using a redirect mechanism within the MPD or by using HTTP redirects.

    MPD.Location redirects

    DASH MPD.Location redirects involve support for the MPD.Location element in the DASH MPD, which provides functionality similar to HTTP redirects.

    • The MPD.Location provides an updated version of the original DASH MPD URL that has a Wowza sessionID embedded in the URL's file name.

    • Players are expected to use the updated URL for all future MPD requests for that session.

    • MPD.Location is provided in all MPDs returned, not just the first one.

    • A new session is created only for MPD requests where the request URL doesn't have sessionID information. Otherwise, the server just uses the provided sessionID and continues within the same HTTP session.

    For example:
    Original URL:
    Code:
    http://[wowza-ip-address]:1935/vod/mp4:sample.mp4/manifest_mpm4sav_mvlist.mpd
    New URL:
    Code:
    http://[wowza-ip-address]:1935/vod/mp4:sample.mp4/manifest_mpm4sav_mvlist_w1499067310.mpd
    Where w1499067310 is the embedded sessionID.

    MPD HTTP redirects

    With DASH MPD HTTP redirects, the Wowza server is configured to respond to a player's initial DASH MPD request with an HTTP redirect status code (302, 307, and so on).

    • The Location header in the HTTP redirect response provides an updated version of the original DASH MPD URL that has a Wowza sessionID embedded in the URL's file name.

    • Players are expected use the new URL for all future MPD requests for that session.

    • Redirects that are implemented via server-side API calls (httpSession.redirectSession()) are executed before DASH-session-related redirects so that the correct server creates/manages the HTTP session (that server would then do the DASH redirect if required). Some potential for server-side redirection conflicts exists, so care should be taken in this area.

    • For this mechanism to have the desired effect, the redirect URL must be stored by the client DASH player and used for all future MPD requests during the session. The original MPD URL that has no Wowza sessionID information must not be used again in the session.

    • A new session is created only for MPD requests where the request URL doesn't have sessionID information. Otherwise, the server uses the provided sessionID and continues within the same HTTP session.

    • By default, the server's HTTP redirect provides a 307 (Temporary Redirect) status code. But for HTTP 1.0, the server "overrides" that with a 302 redirect. The mpegdashHttpRedirectDisableStatusCode302Override and mpegdashHttpRedirectDefaultStatusCode properties allow you to modify that default behavior.

    To enable DASH MPD HTTP redirects, you must configure the mpegdashHttpRedirectEnabled property in the Wowza server configuration.

    Note: We strongly recommend that DASH players provide support for DASH MPD.Location redirects to avoid potential issues with HTTP redirects. With DASH MPD.Location redirects, players are guaranteed to have direct access to the redirect information (the redirected URL) because they're already parsing the DASH MPD.

    Configuration


    MPEG-DASH configuration in Wowza Streaming Engine is relatively straightforward because most of the configuration required to do MPEG-DASH streaming is already enabled in the default server software installation. This section describes where the preconfigured DASH settings are in Wowza Streaming Engine™ Manager and the specific changes you must make to fully enable MPEG-DASH support in the server.

    Before you can use Wowza Streaming Engine Manager, you must start the Wowza Streaming Engine software and the Manager. See How to start and stop Wowza Streaming Engine software.

    After starting the Wowza server software and manager application, you can open Wowza Streaming Engine Manager in a web browser and sign in. 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.

    Use the following URL to open the manager:

    http://[wowza-ip-address]:8088/enginemanager

    Where [wowza-ip-address] is the Wowza server IP address or hostname.

    VOD application configuration

    This section shows you how to set up a video on demand (VOD) streaming application in Wowza Streaming Engine Manager. The example uses the default vod application that's included in the Wowza Streaming Engine software installation.

    Note: In the following procedure, an alert appears after every configuration change.

    You can wait until all changes are completed before you restart the application.
    1. In Wowza Streaming Engine manager, click the Applications tab at the top of the page and then click vod in the contents pane. In the vod application details page, note that the MPEG-DASH playback type is enabled by default.


      Click the MPEG-DASH playback type option to enable it if it's not enabled.

    2. In the contents pane, click Outgoing Security for the vod application.



    3. On the Outgoing Security page, click Edit. Then under Client Restrictions, select No client restrictions (the default value).



    4. Configure optional properties. For more information, see Optional configuration items.

    5. Restart the application.

    Live application configuration

    This section shows you how to set up a live streaming application in Wowza Streaming Engine Manager. The example uses the default live application that's included in the Wowza Streaming Engine software installation.

    Note: In the following procedure, an alert appears after every configuration change.

    You can wait until all changes are completed before you restart the application.
    1. In Wowza Streaming Engine manager, click the Applications tab at the top of the page and then click live in the contents pane. In the live application details page, note that the MPEG-DASH playback type is enabled by default.


      Click the MPEG-DASH playback type option to enable it if it's not enabled.

    2. In the contents pane, click Outgoing Security for the live application.



    3. On the Outgoing Security page, click Edit. Then under Client Restrictions, select No client restrictions (the default value).



    4. Configure optional properties. For more information, see Optional configuration items.

    5. Restart the application.

    6. Follow one of our Live Streaming Tutorials to publish a stream from your encoder to the server. If a tutorial isn't available for your encoder, see Specific Encoding Technologies in the Wowza forum or the documentation for your encoder.


    Optional configuration items

    This section shows you how to add properties for additional MPEG-DASH functionality in Wowza Streaming Engine Manager.

    1. To add the httpAdapterDebugLog and mpegdashAdapterDebugLog properties, in Wowza Streaming Engine manager, click the Server tab at the top of the page and then click Virtual Host Setup in the contents pane.

      For all other optional properties below, click the Applications tab at the top of the page and then click either vod or live in the contents pane.

    2. In the details page, click the Properties tab.

      Note: Access to the Properties tab is limited to administrators with advanced permissions. For more information, see Manage credentials.
    3. In the Quick Links bar, click Custom or scroll to the bottom of the Properties page.

    4. In the Custom properties area, click Edit and then click the Add Custom Property button.

    5. Specify optional property settings in the Add Custom Property dialog box and then click Add. Refer to each property section below for configuration details.

    6. Click Save and then restart the VHost or application.


    mpegdashHttpRedirectEnabled


    Enables MPEG-DASH MPD HTTP redirects, which may be required in environments where players can't support MPEG-DASH MPD.Location redirects. The default value is false (MPD HTTP redirects are disabled).



    mpegdashHttpRedirectDefaultStatusCode


    Specifies the default redirect status code used in MPEG-DASH MPD HTTP redirect responses. The default value is 307 (Temporary Redirect).



    mpegdashHttpRedirectDisableStatusCode302Override


    HTTP requests for a DASH MPD that indicate "HTTP 1.0" protocol will normally respond with a 302 redirect status code instead of the default (or configured) redirect status code. This property allows you to disable that override so that the normal default (or configured) status code is used. The default value is false.



    MPEG-DASH playback


    DASH players

    Many MPEG-DASH players are being developed for various platforms. The following is a list of players that Wowza® has actively integrated with and find to be generally compatible with the MPEG-DASH implementation in Wowza Streaming Engine:

    DASH players in Wowza Streaming Engine


    Wowza Streaming Engine includes the following example players, which are based on the dash-js project:

    • [install-dir]/examples/VideoOnDemandStreaming/MPEGDASHPlayer/player.html. For playback of MPEG-DASH single and adaptive bitrate VOD MP4 streams.

    • [install-dir]/examples/LiveVideoStreaming/MPEGDASHPlayer/player.html. For playback of MPEG-DASH single and adaptive bitrate live MP4 streams.


    For details, see How to playback with the example MPEG-DASH players (DASH).

    Other DASH players


    • dash-js. An open source reference DASH player written in JavaScript from the DASH Industry Forum. A live DASH IF Reference Player is available. For more information, see the dash-js githib wiki.
      Note: The DASH IF Reference Player requires a web browser that supports Media Source Extensions, a proposed extension to HTML5 that allows JavaScript to handle adaptive bitrate streaming through the <video> element. Currently, these are supported by Google Chrome (enabled by default in v23+), Microsoft Internet Explorer 11 on Windows 8/8.1, and some versions of the Opera browser.
    • BuyDRM KeyOS client SDK for iOS and Android devices. Support for DASH and Common Encryption (CENC) with Microsoft PlayReady DRM.

    • GPAC Osmo4/MP4Client. Full support for VOD playback. We are testing its support for live playback.

    • INSIDE Secure player. This player has been used to playback DASH streams from Wowza Media Server instances running on for Amazon EC2 test streams.

    Synchronizing system time differences for playback

    Wowza Streaming Engine and DASH clients must be time-synchronized for correct functionality (see "Annex A.3.1" in the MPEG-DASH standard ISO/IEC 23009-1). Live DASH streaming may pause or stop if the server and client system times are different by more than a minute.

    To help address this issue, the Date HTTP header is provided in the responses to all MPEG DASH mpd and segment requests. This can be used by players to make any synchronization adjustments in the client. In environments where synchronization cannot be achieved, player(s) should support an algorithm for "searching" (via repeated segment requests) for the latest (live) segment available on the server. Specification of this algorithm is implementation-dependent and beyond the scope of Wowza support.

    Troubleshooting


    Debug logging

    You can use log messages to verify that the MPEG-DASH implementation in Wowza Streaming Engine is running correctly. Configure the properties that are described in this section to record log messages to the [install-dir]/logs/wowzastreamingengine_access.log file.

    httpAdapterDebugLog


    Controls HTTP Streamer Adapter (all protocols) debug logging for both VOD and live streaming. The default value is false (logging is disabled).



    Setting this property to true yields log messages similar to the following:
    Code:
    INFO server comment - onManifest: vod/mp4:sample.mp4/manifest_mpm4sav_mvlist.mpd
    INFO server comment - onManifest: chunkId: {MPEGDashChunkId: sessionId: "", bitrate: 0, playStart: 0, playDuration: 0, vodTranscodeNGRP: "null", queryStr: "null", chunkFormat: -1, chunkType: -1, isInit: false, chunkNumber: -1, chunkNumberOffset: 0, startTimecode: -1, manifestProfile: 2, manifestId: 2, representationId: -1, mimeType: , }
    INFO server comment - HTTPStreamerAdapterMPEGDashStreamer.onManifest: sessionId: 
    INFO mpegdash connect 949935263 -
    INFO stream create sample.mp4 -
    INFO server comment - MediaReaderH264MPEGDash.indexFile[vod/_definst_/sample.mp4][mp4a.40.2]: AAC Audio info: {MediaCodecInfoAudio: codec:AAC, channels:2, frequency:48000, samplesPerFrame:1024, objectType:LC}
    INFO server comment - MediaReaderH264MPEGDash.indexFile[vod/_definst_/sample.mp4][avc1.66.30]: H.264 Video info: {MediaCodecInfoVideo: codec:H264, profile:Baseline, level:3.0, frameSize:424x240, displaySize:424x240, frameRate:24.000000}
    INFO server comment - HTTPStreamerMPEGDashIndex.createM4SListBasedManifest[vod/_definst_/mp4:sample.mp4]: AdpSetId:0 RepId:0 mimeType:video/mp4 codecs:avc1.42c01e bandwidth:420000 height:240 width:424 duration:596458
    INFO server comment - HTTPStreamerMPEGDashIndex.createM4SListBasedManifest[vod/_definst_/mp4:sample.mp4]: AdpSetId:1 RepId:0 mimeType:audio/mp4 codecs:mp4a.40.2 bandwidth:99000 audioSamplingRate="48000" lang="eng" 
    INFO server comment - onMediaFile: vod/mp4:sample.mp4/chunk_ctvideo_rid0_cfm4s_cinit_w949935263_mpd.m4s
    INFO server comment - onMediaFile: chunkId: {MPEGDashChunkId: sessionId: "949935263", bitrate: 0, playStart: 0, playDuration: 0, vodTranscodeNGRP: "null", queryStr: "null", chunkFormat: 0, chunkType: 1, isInit: true, chunkNumber: -1, chunkNumberOffset: 0, startTimecode: -1, manifestProfile: -1, manifestId: 0, representationId: 0, mimeType: video/mp4, }
    INFO server comment - onMediaFile: vod/mp4:sample.mp4/chunk_ctaudio_rid0_cfm4s_cinit_w949935263_mpd.m4s
    INFO server comment - onMediaFile: chunkId: {MPEGDashChunkId: sessionId: "949935263", bitrate: 0, playStart: 0, playDuration: 0, vodTranscodeNGRP: "null", queryStr: "null", chunkFormat: 0, chunkType: 2, isInit: true, chunkNumber: -1, chunkNumberOffset: 0, startTimecode: -1, manifestProfile: -1, manifestId: 0, representationId: 0, mimeType: audio/mp4, }
    INFO server comment - MediaReaderH264MPEGDash.fillChunkFromFile[vod/_definst_/sample.mp4]: Add chunk: type:m4s_video id:-1 a/v/k:0/270/3 duration:11249
    INFO stream play sample.mp4 -
    INFO server comment - HTTPStreamerAdapterMPEGDashStreameronMediaFile: contentLength:682
    INFO server comment - onMediaFile: vod/mp4:sample.mp4/chunk_ctvideo_rid0_cfm4s_cn1_w949935263_mpd.m4s
    INFO server comment - onMediaFile: chunkId: {MPEGDashChunkId: sessionId: "949935263", bitrate: 0, playStart: 0, playDuration: 0, vodTranscodeNGRP: "null", queryStr: "null", chunkFormat: 0, chunkType: 1, isInit: false, chunkNumber: 1, chunkNumberOffset: 0, startTimecode: -1, manifestProfile: -1, manifestId: 0, representationId: 0, mimeType: video/mp4, }
    INFO server comment - MediaReaderH264MPEGDash.fillChunkFromFile[vod/_definst_/sample.mp4]: Add chunk: type:m4s_audio id:-1 a/v/k:528/0/0 duration:-1
    INFO server comment - HTTPStreamerAdapterMPEGDashStreameronMediaFile: contentLength:621
    INFO server comment - onMediaFile: vod/mp4:sample.mp4/chunk_ctaudio_rid0_cfm4s_cn1_w949935263_mpd.m4s
    INFO server comment - onMediaFile: chunkId: {MPEGDashChunkId: sessionId: "949935263", bitrate: 0, playStart: 0, playDuration: 0, vodTranscodeNGRP: "null", queryStr: "null", chunkFormat: 0, chunkType: 2, isInit: false, chunkNumber: 1, chunkNumberOffset: 0, startTimecode: -1, manifestProfile: -1, manifestId: 0, representationId: 0, mimeType: audio/mp4, }
    INFO server comment - HTTPStreamerAdapterMPEGDashStreameronMediaFile: contentLength:689365
    INFO stream seek sample.mp4 -
    INFO server comment - HTTPStreamerAdapterMPEGDashStreameronMediaFile: contentLength:151935

    mpegdashAdapterDebugLog


    Controls MPEG-DASH HTTP Streamer Adapter debug logging for both VOD and live streaming. The default value is false (logging is disabled).



    See httpAdapterDebugLog for example log messages.

    mpegDashChunkTimecodeLogging


    Controls MPEG-DASH live chunk timecode debug logging, which helps to debug issues related to live DASH adaptive bitrate switching or general live DASH streaming. The default value is false (logging is disabled).



    mpegDashLiveIndexLogging


    Controls MPEG-DASH live chunk indexing debug logging, which helps to debug issues related to live DASH streaming by logging the list of chunks that will be described in each manifest. The default value is false (logging is disabled).



    mpegDashMaxChunkLogCount


    Specifies the maximum number of live MPEG-DASH chunks (per stream) whose creation is recorded in the log by the stream's MPEG-DASH LiveStreamPacketizer. The default value is 10.





    Updated: For Wowza Streaming Engine 4.0.6 on 08-11-2014
    Comments 14 Comments
    1. Shulin -
      I know some of the other packetizers have settings for ChunkDurationTarget, MaxChunkCount, etc. (http://www.wowza.com/forums/content.php?88)

      Are these settings available for DASH packetizers? I'm currently running a server on my local machine and it seems to add about 4 chunks at a time with their duration at ~10sec. As a result, when using the Dash Player in the LiveVideoStreaming examples, I'm getting some serious delay from what I'm seeing in my webcam vs what I see on the Dash player.

      Is this actually a player shortcoming where it's not requesting the newest chunk upon connecting to the server, or is this something that is fixable via adjusting packetizer settings?
    1. rrlanham -
      No, sorry, there is not as yet support for the equivalents for MPEG-DASH.

      Richard
    1. Shulin -
      Ok, so just to clarify then, is it expected that I should have about a 30 second delay using the DASH implementation?
    1. selfxp -
      Can I use MPEG-DASH with an edge live repeater (<StreamType>liverepeater-edge</StreamType>)? If yes how?
      There is no <LiveStreamPacketizers>mpegdashstreamingrepeater</LiveStreamPacketizers> available.
    1. mianor64 -
      How to secure MPEG Dash streaming?
      Is there a way to at least do basic authentication from Wowza with MPEG Dash streaming?

      I notice that there is a HTTPStreamerSessionMPEGDash object that might be used to do minimal authorization checks. How to use it?
    1. daren_j -
      Hi,
      You should be able to do this using onHTTPSessionCreate

      You can use HTTPStreamerSessionMPEGDash specifically, but not sure if there is any real advantage
      Code:
      import com.wowza.wms.httpstreamer.mpegdashstreaming.httpstreamer.*;
      public void onHTTPStreamerSessionMPEGDash(HTTPStreamerSessionMPEGDash httpSession)
      {}
      Daren
    1. neknodash -
      Hi,

      Before asking question, my wowza server is trial with last version and My OS is WIN 7 x64. I made the changes of MPEG DASH VOD application configuration with first 3 steps and i could not connect via player.html in examples folder.
      What reasons can be for this issue ? Did i miss some changes for mpeg dash streaming with VOD.

      Best Regards..
    1. daren_j -
      Hi,
      Did you use the appropriate MPEG-DASH player?
      There is also an online version of the player.

      Are you testing local or remote playback?
      Local should work without issue.
      If remote you will need to ensure that the server and client are time-sync'd
      as this is a current requirement of the reference player and server combination.

      Make sure to do a quick RTMP test playback to ensure that is all working first.


      Daren
    1. neknodash -
      I also installed Wowza on Windows server 2012 and ı m working on local right now. After installation, i runned wowza.startup then runned RTMP test playback. It does not work. I talked my technical friend on my company. He tried to install demo version on same version. He also did not worked it. I downloaded last version of Java and installed it. I m not sure maybe there has something like that licence, company and name must match. where i m wrong i do not know. İf i can work it successfully, i will buy it.



      Quote Originally Posted by daren_j View Post
      Hi,
      Did you use the appropriate MPEG-DASH player?
      There is also an online version of the player.

      Are you testing local or remote playback?
      Local should work without issue.
      If remote you will need to ensure that the server and client are time-sync'd
      as this is a current requirement of the reference player and server combination.

      Make sure to do a quick RTMP test playback to ensure that is all working first.


      Daren
    1. daren_j -
      Hi,
      I would start with the basic VOD video tutorial and then the written VOD tutorial.

      You'll need basic VOD working before you can venture into MPEG-DASH territory and the above should help nicely.

      Once you can playback the sample.mp4 from those tutorials it will be only a few small steps to get to MPEG-DASH playback.
      Try the MPEG-DASH article again
      following steps 1 through 5, but you can skip 4.
      Then attempt MPEG-DASH playback
      Use localhost for the server address if you are playing from the same machine as the Wowza Server, otherwise specify
      the IP address of the server.

      Hopefully this will get you closer.

      Daren
    1. doodeck -
      Quote Originally Posted by rrlanham View Post
      No, sorry, there is not as yet support for the equivalents for MPEG-DASH.

      Richard
      Richard,

      First of all congratulations and thank you for the release of the Wowza Streaming Engine 4.0! This is a great leap forward. Also the MPEG-DASH implementation has been significantly improved compared to the technology preview in ver. 3.6.

      As expected, I'm getting a delay of approx. 30 seconds when using live MPEG-DASH. Is there a way to reduce the latency by fine tuning some parameters?

      Best regards,
      Kris.
    1. doodeck -
      Ok, I browsed through the Wowza classes and it looks like there is still no way to set these parameters, or at least not easily. On the other hand, it seems to be a very simple fix for the Wowza developers, all the parameters are already inside the MPEG-DASH LiveStreamPacketizer, all you'd have to do would be to expose them in ApplicationConfigAdv.class, here is my reasoning behind it:

      A similar set of parameters can be found in both DASH and Cupertino (or SanJose) LiveStreamPacketizers:

      $ strings com/wowza/wms/httpstreamer/cupertinostreaming/livestreampacketizer/LiveStreamPacketizerCupertino.class | grep -i chunkcount
      MAXCHUNKCOUNT
      PLAYLISTCHUNKCOUNT
      REPEATERCHUNKCOUNT
      getChunkCount


      $ strings com/wowza/wms/httpstreamer/mpegdashstreaming/livestreampacketizer/LiveStreamPacketizerMPEGDash.class | grep -i chunkcount
      MAXCHUNKCOUNT
      PLAYLISTCHUNKCOUNT
      REPEATERCHUNKCOUNT
      getChunkCount


      So we can safely assume that LiveStreamPacketizer developers did their job of actually implementing these parameters. They are only missing from the Application.xml parser:

      $ strings com/wowza/wms/rest/application/ApplicationConfigAdv.class | grep -i chunkcount
      cupertinoMaxChunkCount
      cupertinoPlaylistChunkCount
      cupertinoRepeaterChunkCount
      sanjoseMaxChunkCount
      sanjosePlaylistChunkCount
      sanjoseRepeaterChunkCount


      If I'm right, please kindly expose these parameters and push them to beta, developer's releases. We are doing some feasibility tests and making some strategic decisions based on them right now, which may in effect make us go with or without Wowza.

      Best regards,
      Kris.
    1. rrlanham -
      Kris,

      I'm sure these will be eventually, but I don't have a time frame.

      Thanks,
      Richard
    1. quangtuyen88 -
      thanks for infomations