Stream using HEVC/H.265 with the Transcoder in Wowza Streaming Engine

Learn how to live stream video using the HEVC/H.265 video compression standard with Wowza Streaming Engine™ media server software.

Notes:
  • Support for HEVC/H.265 is in preview release in Wowza Streaming Engine 4.1 and later.
  • Any mention of 'DivX' in this article is associated with a DivX web player that is no longer available. The name of the transcoding template, Transcode H265 DivX (Default), is used for all H.265 transcoding and doesn't require the DivX player.

About HEVC/H.265


High Efficiency Video Coding (HEVC), also called H.265, is a video compression standard developed as a successor to the H.264/MPEG-4 AVC ISO standard. HEVC enables more compression than H.264 with comparable image quality. As a result, HEVC can provide substantially better video quality at lower bitrates. Targeted at next-generation HDTV displays, HEVC supports 8K ultra-high-definition video and resolutions up to 8192 x 4320 pixels.

HEVC/H.265 video compression hasn't been widely adopted by encoding technologies or player vendors. Wowza Streaming Engine 4.1 and later offers preview support for the HEVC/H.265 standard.

Transcode to H.265


Configure Wowza Streaming Engine to transcode a live video stream to H.265 for MPEG-DASH and HLS playback in VLC media player.

Configure the live application

To configure the default live application to deliver MPEG-DASH and Apple HLS video and to transcode using the H.265 template in Wowza Streaming Engine, do the following:

  1. In Wowza Streaming Engine Manager, click the Applications tab, and select the live application in the contents panel.
  2. Under Playback Types, confirm that MPEG-DASH is enabled for MPEG-DASH playback and that Apple HLS is enabled for Apple HLS playback.

  1. Click Transcoder in the contents panel and, if necessary, click Enable Transcoder.

Note: Wowza Streaming Engine must be properly licensed to enable Transcoder. For details, see Licensing Transcoder.
  1. When Transcoder is enabled, click Edit on the Setup tab of the Transcoder page.
  2. From the Fallback Template menu, choose the Transcode H265 DivX (Default) template.

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

Now, all incoming streams will be processed by the H.265 preview template.

Configure the H.265 transcoder template

Configure H.265 transcoding by editing the H.265 transcoder template XML file in a text editor.

Important: Editing the H.265 template in Wowza Streaming Engine Manager is not supported. You must configure the H.265 template by editing the XML file in a text editor.
  1. In your operating system, navigate to [install-dir]/transcoder/templates and open transcode-h265-divx.xml in a text editor.
     
  2. Change the BufferSize property default value (750) to 5000. This will help to keep the audio and video synchronized in the transcoded output renditions but also increase the amount of time that passes before playback starts. Adjust this value as needed to maintain A/V synchronization while minimizing latency.
  3. Edit the <Encode> and <Decode> blocks as desired.

The H.265 transcoder template provides three encode profiles:

  • A 720p high-definition, medium-bandwidth profile at 5,000,000 bits per second (approximately 4.8 Mbps). This encode is enabled by default.
     
  • A 1080p full high-definition, high-bandwidth profile at 8,000,000 bits per second (approximately 7.6 Mbps), disabled by default.
     
  • A 4K ultra-high-definition, high-bandwidth profile at 12,000,000 bits per second (approximately 11.4 Mbps), also disabled by default.
  1. Save your changes to transcode-h265-divx.xml.

Adjust CPU resources

By default, Transcoder is configured to use fewer CPU resources than H.265 encoding may require. To address this discrepancy, add the following parameter to the <Encode>/<Video>/<Parameters> block in the transcode-h265-divx.xml transcoder template.

<Parameter>
    <Name>mainconcept-h265.performance_level</Name>
    <Value>1</Value>
    <Type>Long</Type>
</Parameter>

The value can range from 1 (lowest quality, lowest CPU usage) to 30 (highest quality, highest CPU usage). The default value is 1. If you set this parameter higher than your available CPU resources can handle, real-time encoding will lag and eventually stop. When this happens, you'll see skip frame messages in the logs.

Save your changes to the transcode-h265-divx.xml file and then return to Wowza Streaming Engine Manager.

Add custom properties for playback

After the Transcoder template is configured, you must add custom properties to the application to enable HEVC playback in players.

Note: Access to the Properties tab is limited to administrators with advanced permissions. For more information, see Manage credentials.
  1. In the live application detail page, click the Properties tab.
     
  2. In the Quick Links bar, click Custom.
     
  3. In the Custom properties section, click Edit.
     
  4. Click Add Custom Property, specify the following settings in the Add Custom Property dialog box, and then click Add
    Path Name Type Value

    /Root/Application/HTTPStreamer

    httpOriginMode String Set to on.
    /Root/Application/HTTPStreamer mpegdashCacheControlPlaylist String Set to max-age=1.
    /Root/Application/HTTPStreamer mpegdashCacheControlMediaChunk​ String Set to max-age=3600.
  5. Click Save and then restart the application to apply your changes.
     

Alternatively, you can add the properties directly to the Application.xml file located at [install-dir]/conf/live/. To do so, open Application.xml in a text editor and add the following to the <HTTPStreamer>/<Properties> container element:

<Property>
    <Name>httpOriginMode</Name>
    <Value>on</Value>
    <Type>String</Type>
</Property>
<Property>
    <Name>mpegdashCacheControlPlaylist</Name>
    <Value>max-age=1</Value>
    <Type>String</Type>
</Property>
<Property>
    <Name>mpegdashCacheControlMediaChunk</Name>
    <Value>max-age=3600</Value>
    <Type>String</Type>
</Property>

Prepare the VLC player


Configure the VLC media player to play the transcoded 720p (default) rendition of the HEVC stream.

Prepare VLC media player

  1. Download and install VLC media player. To test Apple HLS playback, use the Official download of VLC media player. To test Apple HLS and MPEG-DASH playback, use the VLC media player nightly build.
  2. On the VLC media player Media menu, click Open Network Stream.
  3. Enter the URL of the stream that you want to play in the Please enter a network URL field and then click Play. The stream URLs for the default 720p encoding profile should have the following formats:

    Apple HLS

http://[wowza-ip-address]:1935/live/[stream-name]_720p/playlist.m3u8

MPEG-DASH

http://[wowza-ip-address]:1935/live/[stream-name]_720p/manifest.mpd

Where [wowza-ip-address] is the IP address of your Wowza Streaming Engine server instance and  [stream-name] is the name of the stream published to the live application.

Notes:

  • These instructions play only the default 720p encode of the HEVC stream. If you changed the encode or decode properties in the H.265 transcoder template to enable a different encode, adjust the [stream-name]_[profile-name] value in your stream URL to match. If you enabled multiple encodes, set up adaptive bitrate Stream Name Groups before continuing.
  • By default, VLC media player is configured with a very small caching buffer. This can lead to choppy playback initially but it will eventually smooth out as VLC automatically increases the size of this buffer. You can increase the size of the caching buffer by adjusting the Caching property in the Open Media dialog box.