Introduction to Enabling Videos with Multiple Audio Streams

This topic provides the basic instructions to enable assets to have multiple audio tracks (multi-audio). Typically, this is used for videos with audio tracks in different languages and/or audio tracks with additional information such as audio descriptions (for viewers with visual impairments), and audio commentary, such as from the director. The multiple audio tracks include the available codecs, channels and bitrates. The combination of these parameters define the unique audio track in the media files.

Major differences to consider with Multi-Audio

The following areas are unique to videos with multiple audio tracks:
  • Source Files: The source content must contain all the audio files to be used with the streaming. Ooyala does not currently support late binding of additional audio tracks. Therefore, if a customer has three languages in a stream and later wants to add a fourth, the asset must be reprocessed for a given stream packaging type.
  • Ingestion

    During ingestion via XML or CSV, the default language is inspected and movie attribute provisioned for the SAS to consume and supply to player to select the default language. If the language code is invalid , the movie attribute is not provisioned.

    The default_language parameter must take the value of a single 3-letter language code (e.g. eng, deu).

    An example of the XML extension for the default language is as follows:

    <?xml version="1.0" encoding="utf-8"?>
    <rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/" xmlns:dcterms="http://purl.org/dc/terms/" 
    xmlns:fh="http://purl.org/syndication/history/1.0" xmlns:ooyala="http://www.ooyala.com/mrss/">     
         
         <channel>
               <item>
                <media:content url="http://mysite.com/upload/lacrosse_70.mov" />
                <media:thumbnail url="http://mysite.com/upload/lacrosse_70_previewimage.jpg" />
                <media:title>Sports that Really Exist: Lacrosse</media:title>
                <media:description>My emotional and touching description of my video</media:description>
                <ooyala:labels>/sports/lacrosse,/hobbies/lacrosse</ooyala:labels>
                <link>http://mysite.com/videos/sports/real_sports.html</link>
                <ooyala:metadata name="video_ID">70</ooyala:metadata>
                <ooyala:metadata name="season_number">1</ooyala:metadata>
    			<ooyala:metadata name="default_language">eng</ooyala:metadata>
               </item>
         </channel>
    </rss>    

    An example of the CSV extension:

    video,title,description,labels,hosted_at,id,thumbnail,subTitle,flight_start_time,flight_end_time,profileguid,vr360type,default_language
      test.mp4,Test CSV,This is an example,"test,example,csv",http://www.ooyala.com,my_test_guid_csv,
    my_thumbnail.jpg,my_caption.dfxp,2016-01-01T15:15:00-07:00,
    2022-01-01T16:00:00-07:00,57d5a5a10f654fe79ef954dc8d29a108,monoscopic,eng
  • Processing Profile (and/or Access):
    • For HLS, the assets must use an HLS protocol version 4 manifest. Not all devices support HLS V4 manifests.
    • For MPEG-DASH
  • Player: The Ooyala Player will automatically recognize that the stream has multiple audio tracks, and include the ability to switch between the different audio tracks in a new menu. The player must consider all available factors (channels, language, bitrates, CODECs, etc when switching tracks.
  • Analytics: IQ does not currently record which audio track is selected, so reporting on what languages are selected requires custom reporting.

Support Environments for Multi-Audio

Web Browsers

All browsers support multi-audio, with the following exception:
  • HLS when using only the main_html5.js plugin on Android Chrome devices (Bitmovin plugin must be used).

Supported App Environments Supporting Multi-Audio

  • Android: Requires ExoPlayer 2.51+
  • iOS: Requires devices supporting HLS V4
  • TVoS: Requires devices supporting HLS V4
  • Amazon Fire TV: Requires ExoPlayer 2.x

Supported Features/Combinations for Multi-Audio

We currently support the following with Multi-Audio:
  • Multiple AAC audio streams in HLS and DASH stream packaging, Stereo Only
  • Multiple audio streams in the following packaging types:
    • HLS, eHLS
    • HLS + FairPlay DRM (h264 codec) - supported for Azure, not Elemental
    • MPEG-DASH, MPEG-DASH + Widevine/PR
    • Up to six audio tracks

Unsupported Features/Formats with Multi-Audio

We currently do not support the following with Multi-Audio

  • Multi-Audio Streams with HEVC Codec
  • Multiple bitrate renditions for the same audio track (i.e. with the same language track)
  • Multi-Audio with SSAI
  • Late Audio Binding (adding an audio track after a stream has been fully processed)
  • AC3 or e-AC3 (Dolby) Audio tracks

Was this article helpful?