• How to set up and run Wowza Transcoder AddOn for live streaming

    This article describes how to use Wowza Transcoder AddOn to decode the video and audio of an incoming live stream and re-encode it to suit the desired playback device or devices. The re-encoded renditions are properly key frame aligned for adaptive bitrate delivery.

    Contents



    Tutorial

    Troubleshooting

    Related Articles


    Tutorial



    Hardware and driver requirements


    Wowza Transcoder is supported on 64-bit versions of the Windows and Linux operating systems (32-bit versions aren't supported). The Mac OS X operating system isn't supported.

    To run Wowza Transcoder on 64-bit versions of the Windows Server operating system, the following server features are required:
    • .NET Framework 3.5.1
    • Desktop Experience


    Hardware acceleration
    Wowza Transcoder supports Intel Quick Sync and NVIDIA NVENC accelerated encoding on Windows and Linux and NVIDIA CUDA accelerated encoding on Windows. The following articles provide more information about the hardware requirements for each of these technologies:


    Notes:
    • You should get transcoding working using the built-in default MainConcept software encoder first before trying to get accelerated transcoding to work. The MainConcept software encoder doesn't use hardware acceleration. For more information about how to debug the hardware encoding, see How to verify which Wowza Transcoder implementation is invoked.

    • On newer Windows operating systems, Intel Quick Sync and NVIDIA CUDA hardware acceleration may not be available when running Wowza Streaming Engineô as a system service due to a security measure called Session 0 Isolation. For more information about how to workaround this issue, see How to enable hardware accelerated transcoding when running as a Windows service.

    • When using Windows Remote Desktop, Quick Sync acceleration may not be available.

    Supported video and audio codecs for ingest


    Wowza Transcoder AddOn provides multiple features for transcoding or transrating incoming streams (referred to as "channels") to outgoing streams with multiple bitrates. It supports the following video and audio codecs:

    From incoming channels:

    • Video decoding: H.264, MPEG-2, MPEG-4 Part 2
    • Audio decoding: AAC, MP3, MPEG-1 Layer 1/2, Speex, G.711 (Ķ-law and A-law)

    For resulting outgoing streams:

    • Video encoding: H.264, H.263v2
    • Audio encoding: AAC

    Notes:
    • The following MP3 sample rates are supported: 48000, 44100, and 32000

    • Instream CEA-608 closed caption data can be passed through Wowza Transcoder for delivery in Apple HLS streams to iOS-based devices. For more information, see How to configure closed captioning for live streaming.

    • H.263 video output isn't supported when using hardware acceleration.

    About Transcoder templates


    Wowza Transcoder uses a templating system to match the incoming stream to an encoding template that's used to control the encoding parameters of the resultant transcoded streams. There are three default templates that cover the most common workflows: transrate.xml, transcode.xml, and audioonly.xml. For more information about how to customize your template, see Template configuration in Wowza Streaming Engine Manager and Template configuration in XML.

    The Wowza Transcoder templating system provides a method to group streams together in logical groups (called Stream Name Groups) for live playback. These groups are defined in the template and are available using the ngrp: stream name prefix for adaptive bitrate delivery.

    Adding a Transcoder AddOn license for Perpetual Edition licensees


    Perpetual Edition users may have more than one key to enable AddOns. Subscribers will have a single license key that enables Transcoder, nDVR, and DRM Addons. Charges accrue only when these features are activated and used. For pricing information see Flexible Licensing Plans.

    To enable the Transcoder AddOn, do the following:

    1. Start Wowza Streaming Engine Manager.

    2. Click Server Setup in the contents pane of Wowza Streaming Engine Manager.

    3. Click Edit.

    4. When the dialog show below opens, add your Transcoder key to the License Key text area.

      Licenses are additive, so when adding additional licenses, be sure to retain the original license information in the file and add each new license key on its own new line. The order in which the keys are listed isn't important.


    5. Click Save.


    License keys for Wowza Streaming Engine and AddOns, including Wowza Transcoder AddOn, are stored in [install-dir]/conf/Server.license.

    • %WMSCONFIG_HOME%\conf\Server.license
      - Windows
    • /Library/Wowza Streaming Engine/conf/Server.license
      - Mac OS X
    • /usr/local/Wowza Streaming Engine/conf/Server.license
      - Linux/Unix

    You can also enable AddOns by opening the Server.license file in a text editor and entering each new license key on a new line. When the standalone server is restarted, the new license(s) will be in effect. The first and last five digits of the license key are displayed in the console window when the server starts.

    The following is an example Server.license file for a Perpetual Edition user with one Wowza Streaming Engine license key, two Wowza Transcoder AddOn license keys, and one Wowza nDVR AddOn license key:

    ENGP4-LaGpC-ZrTD9-F4Y3S-a9bR2-h5t3C
    TRN14-y9Gj2-kneqT-2zjHp-GadzB-N6fwa
    DVRA4-k3r3R-nzxCB-ypjs5-Sk3y9-ahFdF


    Application configuration


    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 an event as it happens. Live streams are sent to the Streaming Engine from an encoder that delivers the stream in a compatible format. The example uses an application named live, which is included in default installations of Wowza Streaming Engine 4.0. If you want to create a new live streaming application, you can use this same procedure.

    1. Start Wowza Streaming Engine Manager.

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

    3. Configure the live application:

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



      3. Select the following Playback Types options: MPEG-DASH, Apple HLS, Adobe RTMP, Adobe HDS, Microsoft Smooth Streaming, and RTSP/RTP.


      4. Click Save.
      5. Restart the application.



      The application runs whenever Wowza Media Server is running.



    Application configuration in XML


    Note: If you followed the instructions in the previous section by using with Wowza Streaming Engine Manager, skip this section and go to Template configuration in Wowza Streaming Engine Manager. Earlier versions of the server software donít support Wowza Streaming Engine manager, so you must edit Transcode.xml or Transrate.xml in a text editor. If you make changes to these files and youíre using the Streaming Engine software, any supported settings will be displayed in the manager the next time itís started.
    To set up an application for live streaming and to configure the Application.xml file for use with Wowza Transcoder, do the following:

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

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

    3. Open the newly copied Application.xml file in a text editor and make the following changes (some of these settings may already be present):

      1. Set the Streams/StreamType property value to:
        Code:
        <StreamType>live</StreamType>
      2. Set the HTTPStreamers property value to:
        Code:
        <HTTPStreamers>cupertinostreaming, smoothstreaming, sanjosestreaming, mpegdashstreaming</HTTPStreamers>
      3. Set the Streams/LiveStreamPacketizers property value to:
        Code:
        <LiveStreamPacketizers>cupertinostreamingpacketizer, smoothstreamingpacketizer, 
           sanjosestreamingpacketizer, mpegdashstreamingpacketizer, mpegdashstreamingrepeater 
           </LiveStreamPacketizers>
      4. Set the RTP/Authentication/PlayMethod value to:
        Code:
        <PlayMethod>none</PlayMethod>
      5. Set the Transcoder/LiveStreamTranscoder value to:
        Code:
        <LiveStreamTranscoder>transcoder</LiveStreamTranscoder>
      6. If the incoming stream is H.264 video and AAC or MP3 audio and you want to create multiple-bitrate renditions of the incoming stream for adaptive bitrate delivery, set the Transcoder/Templates value to:
        Code:
        <Templates>${SourceStreamName}.xml,transrate.xml</Templates>
        If the incoming stream is MPEG-2 or MPEG-4 Part 2 video and requires transcoding to H.264 and AAC for delivery to supported player technologies such as Adobe Flash Player, Apple iOS devices, and Microsoft Silverlight, set the Transcoder/Templates value to:
        Code:
        <Templates>${SourceStreamName}.xml,transcode.xml</Templates>
        Note: Adaptive bitrate delivery is supported when using transcode.xml.
      7. If the source stream that you want to transcode is a SHOUTcast or Icecast MP3 stream, add the following property to the MediaCaster/Properties container to configure Wowza Streaming Engine to send one MP3 frame per-packet:
        Code:
        <Property>
        	<Name>shoutcastMP3GroupCount</Name>
        	<Value>1</Value>
        	<Type>Integer</Type>
        </Property>
    4. Open the [install-dir]/conf/publish.password file in a text editor and add a username and password to control RTSP/RTP publishing access. The following is an example of the file with the username myuser and password mypassword).
      Code:
      # Publish password file (format [username][space][password])
      # username password
      myuser mypassword
    5. Start Wowza Streaming Engine.

    Transcode a single stream or using individual templates :
    Code:
    <Templates>${SourceStreamName}.xml</Templates>
    • Copy the desired transcoding template and rename to [StreamName].xml

    With this setup, you can now use one of the following live streaming tutorials to further modify [install-dir]/conf/live/Application.xml and then send a stream from your encoder to Wowza Streaming Engine for transcoding:



    Template configuration


    Template configuration in Wowza Streaming Engine Manager

    You can configure Transcoder templates in Wowza Streaming Engine Manager by setting the active Transcoder stream names and bitrates.
    Use the following procedure in Wowza Streaming Engine Manager to activate streams in transcode, transrate, or audio only templates.

    This example configures the transrate template. Make a back-up copy of the file [install-dir]/transcoder/templates/transrate.xml before modifying it.

    1. In the contents pane, click Transcoder AddOn.
    2. Click Enable Transcoder AddOn.



    3. Restart the application.



    4. Under live > Transcoder, click the Transrate (Default) template.



    5. Under live > Transcoder > Transrate (Default), click Edit this encode on the 240p stream.



    6. Under live > Transcoder > Transrate (Default) > 240p, you can set the options for a 240000 bits-per-second stream and enable it when needed, so it will be created along with the other enabled streams.

    7. Enter 240000 bits per second Video Bitrate. Accept the defaults for other settings. For more information about the options available in this UI, see Template Details in the following section.



    8. Accept the defaults for Frame Size, Width, and Height.
    9. Accept the default, Passthrough , for Audio Settings.



    10. Save the settings.


    Decode settings

    When you get to step 5. above, you can click the Decode tab to get to the UI shown in the following illustration.



    These options on the Decode tab configure the decoding process.

    • Video/Implementation. The transcoder implementation to use:
      • default. The built-in MainConcept software encoder (not hardware-accelerated).

      • QuickSync. Intel Quick Sync encoding acceleration (Windows and Linux). If your hardware doesn't support the Quick Sync instruction set, the unaccelerated MainConcept software encoder is used.
        Note: Support for Quick Sync Video for Linux operating systems is included as a preview technology in Wowza Media Server 3.5.0 and later. The final version of the technology that supports Quick Sync Video will be available in a later Wowza Streaming Engine release. For more information, see How to configure Quick Sync accelerated encoding on Linux.
    • Video/Deinterlace. Set to true if the source video stream is deinterlaced.

    • Video/Overlays/Overlay/[Elements]. A decode-level graphic overlay is the same as an encode-level graphic overlay except that the overlay is applied to the decoded stream. This means that all encodes will include the overlay, making this the recommended place to define an overlay if you want the same overlay for all encoded streams. Note that overlays with any transparency require extra CPU resources.

      You can set these options in the UI accessible from the Add Overlay Image button.


      Note: When using graphic overlay images with Wowza Transcoder, certain requirements must be met so that the overlays are to the highest possible standard. For details, see Transcoder overlay image requirements.
    • Video/Parameters. Implementation-specific decoding parameters that control the decoding process (Reserved for future use).

    Template configuration in XML


    Note: If you configured the template by using Wowza Streaming Engine Manager, skip this section. Earlier versions of the server software donít support Wowza Streaming Engine manager, so you must edit Transrate.xml in a text editor. If you make changes to Transrate.xml and youíre using the Streaming Engine software, any supported settings will be displayed in the manager the next time itís started.
    The installed transrate.xml or transcode.xml template files include transcoded streams with the following stream names:

    • [stream-name]_360p: Main Profile stream
    • [stream-name]_160p: Baseline Profile stream
    • ngrp:[stream-name]_all: Adaptive bitrate stream for Apple HTTP Live Streaming (cupertino), Microsoft Smooth Streaming, and Adobe HTTP Dynamic Streaming (sanjose)

    [stream-name] is the name of the stream that the encoder sends to Wowza Streaming Engine. For example, if the incoming stream from the encoder is myStream, then the transcoded streams will be myStream_360p, myStream_160p, and ngrp:myStream_all.

    The way it works is very simple. All incoming streams that are published to the live application will also be transcoded based on the template that's configured using the Transcoder/Templates setting in the [install-dir]/conf/[application]/Application.xml file. You can transcode a single incoming stream to as many new streams as you like.

    Let's take a closer look at a Transcoder template. The following is the transrate.xml template file that ships with Wowza Streaming Engine:
    Code:
    <!-- Example template for transrate, producing four new streams at different bitrates. Resultant streams can be played back individually or as a group. source, 360p and 160p encode blocks are enabled through the Enable property, other examples are not enabled. Add additional encode blocks to your template as needed. -->
    <Root>
    	<Transcode>
    		<Encodes>
    			<!-- Example Encode block for source, not required unless Member of StreamNameGroup. --> 
    			<Encode>
    				<Enable>true</Enable>
    				<Name>source</Name>
    				<StreamName>mp4:${SourceStreamName}_source</StreamName>
    				<Video>
    					<!-- H.264, H.263, PassThru, Disable -->
    					<Codec>PassThru</Codec>
    					<Bitrate>${SourceVideoBitrate}</Bitrate>
    					<Parameters>
    					</Parameters>
    				</Video>
    				<Audio>
    					<!-- AAC, PassThru, Disable -->
    					<Codec>PassThru</Codec>
    					<Bitrate>${SourceAudioBitrate}</Bitrate>
    					<Parameters>
    					</Parameters>
    				</Audio>
    				<Properties>
    				</Properties>
    			</Encode>
    			<!-- Setup for 720p, high bandwith, main profile for desktop or set-top box -->
    			<Encode>
    				<Enable>false</Enable>
    				<Name>720p</Name>
    				<StreamName>mp4:${SourceStreamName}_720p</StreamName>
    				<Video>
    					<!-- H.264, H.263, PassThru, Disable -->
    					<Codec>H.264</Codec>
    					<!-- default, CUDA, QuickSync, NVENC -->
    					<Transcoder>default</Transcoder>
    					<GPUID>-1</GPUID>
    					<FrameSize>
    						<!-- letterbox, fit-width, fit-height, crop, stretch, match-source -->
    						<FitMode>fit-height</FitMode>
    						<Width>1280</Width>
    						<Height>720</Height>
    						<!-- <Crop>0,0,0,0</Crop> -->
    						<!-- <SourceRectangle>0,0,320,240</SourceRectangle> -->
    					</FrameSize>
    					<!-- baseline, main, high -->
    					<Profile>main</Profile>
    					<Bitrate>1300000</Bitrate>
    					<KeyFrameInterval>
    						<FollowSource>true</FollowSource>
    						<Interval>60</Interval>
    					</KeyFrameInterval>
    					<Overlays>
    						<Overlay>
    							<Enable>false</Enable>
    							<Index>0</Index>
    							<ImagePath>${com.wowza.wms.context.VHostConfigHome}/content/wowzalogo.png</ImagePath>
    							<CheckForUpdates>false</CheckForUpdates>
    							<Opacity>100</Opacity>
    							<Location>
    								<X>4</X>
    								<Y>4</Y>
    								<Width>${ImageWidth}</Width>
    								<Height>${ImageHeight}</Height>
    								<!-- horiz: left, right, hcenter - vert: top, bottom, vcenter -->
    								<Align>left,top</Align>
    							</Location>
    						</Overlay>
    					</Overlays>
    					<Parameters>
    					</Parameters>
    				</Video>
    				<Audio>
    					<!-- AAC, PassThru, Disable -->
    					<Codec>PassThru</Codec>
    					<Bitrate>${SourceAudioBitrate}</Bitrate>
    					<Parameters>
    					</Parameters>
    				</Audio>
    				<Properties>
    				</Properties>
    			</Encode>
    			<!-- Setup for 360p, high bandwith, main profile for desktop -->
    			<Encode>
    				<Enable>true</Enable>
    				<Name>360p</Name>
    				<StreamName>mp4:${SourceStreamName}_360p</StreamName>
    				<Video>
    					<!-- H.264, H.263, PassThru, Disable -->
    					<Codec>H.264</Codec>
    					<!-- default, CUDA, QuickSync, NVENC -->
    					<Transcoder>default</Transcoder>
    					<GPUID>-1</GPUID>
    					<FrameSize>
    						<!-- letterbox, fit-width, fit-height, crop, stretch, match-source -->
    						<FitMode>fit-height</FitMode>
    						<Width>640</Width>
    						<Height>360</Height>
    						<!-- <Crop>0,0,0,0</Crop> -->
    						<!-- <SourceRectangle>0,0,320,240</SourceRectangle> -->
    					</FrameSize>
    					<!-- baseline, main, high -->
    					<Profile>main</Profile>
    					<Bitrate>850000</Bitrate>
    					<KeyFrameInterval>
    						<FollowSource>true</FollowSource>
    						<Interval>60</Interval>
    					</KeyFrameInterval>
    					<Overlays>
    						<Overlay>
    							<Enable>false</Enable>
    							<Index>0</Index>
    							<ImagePath>${com.wowza.wms.context.VHostConfigHome}/content/wowzalogo.png</ImagePath>
    							<CheckForUpdates>false</CheckForUpdates>
    							<Opacity>100</Opacity>
    							<Location>
    								<X>4</X>
    								<Y>4</Y>
    								<Width>${ImageWidth}</Width>
    								<Height>${ImageHeight}</Height>
    								<!-- horiz: left, right, hcenter - vert: top, bottom, vcenter -->
    								<Align>left,top</Align>
    							</Location>
    						</Overlay>
    					</Overlays>
    					<Parameters>
    					</Parameters>
    				</Video>
    				<Audio>
    					<!-- AAC, PassThru, Disable -->
    					<Codec>PassThru</Codec>
    					<Bitrate>${SourceAudioBitrate}</Bitrate>
    					<Parameters>
    					</Parameters>
    				</Audio>
    				<Properties>
    				</Properties>
    			</Encode>
    			<!-- Setup for 240p, medium bandwidth, baseline profile -->
    			<Encode>
    				<Enable>false</Enable>
    				<Name>240p</Name>
    				<StreamName>mp4:${SourceStreamName}_240p</StreamName>
    				<Video>
    					<!-- H.264, H.263, PassThru, Disable -->
    					<Codec>H.264</Codec>
    					<!-- default, CUDA, QuickSync, NVENC -->
    					<Transcoder>default</Transcoder>
    					<GPUID>-1</GPUID>
    					<FrameSize>
    						<!-- letterbox, fit-width, fit-height, crop, stretch, match-source  -->
    						<FitMode>fit-height</FitMode>
    						<Width>360</Width>
    						<Height>240</Height>
    						<!-- <Crop>0,0,0,0</Crop> -->
    						<!-- <SourceRectangle>0,0,320,240</SourceRectangle> -->
    					</FrameSize>
    					<!-- baseline, main, high -->
    					<Profile>baseline</Profile>
    					<Bitrate>350000</Bitrate>
    					<KeyFrameInterval>
    						<FollowSource>true</FollowSource>
    						<Interval>60</Interval>
    					</KeyFrameInterval>
    					<Overlays>
    						<Overlay>
    							<Enable>false</Enable>
    							<Index>0</Index>
    							<ImagePath>${com.wowza.wms.context.VHostConfigHome}/content/wowzalogo.png</ImagePath>
    							<CheckForUpdates>false</CheckForUpdates>
    							<Opacity>100</Opacity>
    							<Location>
    								<X>4</X>
    								<Y>4</Y>
    								<Width>${ImageWidth}</Width>
    								<Height>${ImageHeight}</Height>
    								<!-- horiz: left, right, hcenter - vert: top, bottom, vcenter -->
    								<Align>left,top</Align>
    							</Location>
    						</Overlay>
    					</Overlays>
    					<Parameters>
    					</Parameters>
    				</Video>
    				<Audio>
    					<!-- AAC, PassThru, Disable -->
    					<Codec>PassThru</Codec>
    					<Bitrate>${SourceAudioBitrate}</Bitrate>
    					<Parameters>
    					</Parameters>
    				</Audio>
    				<Properties>
    				</Properties>
    			</Encode>
    			<!-- Setup for 160p, low bandwith, baseline profile for 3G mobile devices such as iOS, Android, Blackberry -->
    			<Encode>
    				<Enable>true</Enable>
    				<Name>160p</Name>
    				<StreamName>mp4:${SourceStreamName}_160p</StreamName>
    				<Video>
    					<!-- H.264, H.263, PassThru, Disable -->
    					<Codec>H.264</Codec>
    					<!-- default, CUDA, QuickSync, NVENC -->
    					<Transcoder>default</Transcoder>
    					<GPUID>-1</GPUID>
    					<FrameSize>
    						<!-- letterbox, fit-width, fit-height, crop, stretch, match-source  -->
    						<FitMode>fit-height</FitMode>
    						<Width>284</Width>
    						<Height>160</Height>
    						<!-- <Crop>0,0,0,0</Crop> -->
    						<!-- <SourceRectangle>0,0,320,240</SourceRectangle> -->
    					</FrameSize>
    					<!-- baseline, main, high -->
    					<Profile>baseline</Profile>
    					<Bitrate>200000</Bitrate>
    					<KeyFrameInterval>
    						<FollowSource>true</FollowSource>
    						<Interval>60</Interval>
    					</KeyFrameInterval>
    					<Overlays>
    						<Overlay>
    							<Enable>false</Enable>
    							<Index>0</Index>
    							<ImagePath>${com.wowza.wms.context.VHostConfigHome}/content/wowzalogo.png</ImagePath>
    							<CheckForUpdates>false</CheckForUpdates>
    							<Opacity>100</Opacity>
    							<Location>
    								<X>4</X>
    								<Y>4</Y>
    								<Width>${ImageWidth}</Width>
    								<Height>${ImageHeight}</Height>
    								<!-- horiz: left, right, hcenter - vert: top, bottom, vcenter -->
    								<Align>left,top</Align>
    							</Location>
    						</Overlay>
    					</Overlays>
    					<Parameters>
    					</Parameters>
    				</Video>
    				<Audio>
    					<!-- AAC, PassThru, Disable -->
    					<Codec>PassThru</Codec>
    					<Bitrate>${SourceAudioBitrate}</Bitrate>
    					<Parameters>
    					</Parameters>
    				</Audio>
    				<Properties>
    				</Properties>
    			</Encode>
    			<!-- Setup for H.263, low bandwith, streaming to older mobile devices -->
    			<Encode>
    				<Enable>false</Enable>
    				<Name>h263</Name>
    				<StreamName>mp4:${SourceStreamName}_h263</StreamName>
    				<Video>
    					<!-- H.264, H.263, PassThru, Disable -->
    					<Codec>H.263</Codec>
    					<!-- default, CUDA, QuickSync, NVENC -->
    					<Transcoder>default</Transcoder>
    					<GPUID>-1</GPUID>
    					<FrameSize>
    						<!-- letterbox, fit-width, fit-height, crop, stretch, match-source  -->
    						<FitMode>letterbox</FitMode>
    						<Width>176</Width>
    						<Height>144</Height>
    						<!-- <Crop>0,0,0,0</Crop> -->
    						<!-- <SourceRectangle>0,0,320,240</SourceRectangle> -->
    					</FrameSize>
    					<!-- baseline, main, high -->
    					<Profile>baseline</Profile>
    					<Bitrate>150000</Bitrate>
    					<KeyFrameInterval>
    						<FollowSource>false</FollowSource>
    						<Interval>60</Interval>
    					</KeyFrameInterval>
    					<Overlays>
    						<Overlay>
    							<Enable>false</Enable>
    							<Index>0</Index>
    							<ImagePath>${com.wowza.wms.context.VHostConfigHome}/content/wowzalogo.png</ImagePath>
    							<CheckForUpdates>false</CheckForUpdates>
    							<Opacity>100</Opacity>
    							<Location>
    								<X>4</X>
    								<Y>4</Y>
    								<Width>${ImageWidth}</Width>
    								<Height>${ImageHeight}</Height>
    								<!-- horiz: left, right, hcenter - vert: top, bottom, vcenter -->
    								<Align>left,top</Align>
    							</Location>
    						</Overlay>
    					</Overlays>
    					<Parameters>
    					</Parameters>
    				</Video>
    				<Audio>
    					<!-- AAC, PassThru, Disable -->
    					<Codec>AAC</Codec>
    					<Bitrate>64000</Bitrate>
    					<Parameters>
    					</Parameters>
    				</Audio>
    				<Properties>
    				</Properties>
    			</Encode>
    		</Encodes>
    		<Decode>
    			<Video>
                                    <!-- default, QuickSync -->
                                    <Implementation>default</Implementation>
    				<Deinterlace>false</Deinterlace>
    				<Overlays>
    					<Overlay>
    						<Enable>false</Enable>
    						<Index>0</Index>
    						<ImagePath>${com.wowza.wms.context.VHostConfigHome}/content/wowzalogo.png</ImagePath>
    						<CheckForUpdates>false</CheckForUpdates>
    						<Opacity>100</Opacity>
    						<Location>
    							<X>4</X>
    							<Y>4</Y>
    							<Width>${ImageWidth}</Width>
    							<Height>${ImageHeight}</Height>
    							<!-- horiz: left, right, hcenter - vert: top, bottom, vcenter -->
    							<Align>left,top</Align>
    						</Location>
    					</Overlay>
    				</Overlays>
    				<Parameters>
    				</Parameters>
    			</Video>
    			<Properties>
    			</Properties>
    		</Decode>
    		<StreamNameGroups>
    			<!-- Note: Play stream using stream name ngrp:[stream-name] -->
    			<StreamNameGroup>
    				<Name>all</Name>
    				<StreamName>${SourceStreamName}_all</StreamName>
    				<Members>
    					<Member>
    						<EncodeName>source</EncodeName>
    					</Member>
    					<Member>
    						<EncodeName>720p</EncodeName>
    					</Member>
    					<Member>
    						<EncodeName>360p</EncodeName>
    					</Member>
    					<Member>
    						<EncodeName>240p</EncodeName>
    					</Member>
    					<Member>
    						<EncodeName>160p</EncodeName>
    					</Member>
    				</Members>
    			</StreamNameGroup>
    			<StreamNameGroup>
    				<Name>mobile</Name>
    				<StreamName>${SourceStreamName}_mobile</StreamName>
    				<Members>
    					<Member>
    						<EncodeName>240p</EncodeName>
    					</Member>
    					<Member>
    						<EncodeName>160p</EncodeName>
    					</Member>
    				</Members>
    			</StreamNameGroup>
    		</StreamNameGroups>
    		<Properties>
    		</Properties>
    	</Transcode>
    </Root>
    Template Details: <Encode>...</Encode>

    This block represents an encode. A single template can have multiple <Encode> blocks.

    • Enable. If set to true, the encode block is active. If set to false, the encode block is ignored. The default template has multiple <Encode> block examples, not all of which are enabled. You can enable or add additional encode blocks to your template as needed.

    • Name. Each encode block is given a name that's used in logging. This name must be unique within a given template.

    • StreamName. The transcoded stream name. You can use the ${SourceStreamName} variable, which is replaced with the source stream name. Again, the resultant stream name must be unique for a given application. It's best to use the source stream name as part of the destination stream name.

    • Video/Codec. The video codec to use:
      • H.264. Transcode video to H.264. Also use when modifying source H.264 to achieve a different bitrate, profile, etc.
      • H.263. Transcode video to H.263.
        Note: H.263 video output isn't supported when using hardware acceleration. If you set the Video/Implementation property to one of the accelerated encoding options (QuickSync, CUDA, or NVENC), the setting will be ignored and the default MainConcept software encoder will be used to generate the H.263-encoded video. In versions before Wowza Streaming Engine 4.0 this property is named Video/Transcoder.
      • PassThru. Pass the source video stream through to the resultant streams without making any changes.
      • Disable. Disable video in the transcoded streams.

    • Video/Implementation. The Transcoder implementation to use:
      • default. The built-in MainConcept software encoder (not hardware-accelerated).
      • QuickSync. Intel Quick Sync encoding acceleration (Windows and Linux). If your hardware doesn't support the Quick Sync instruction set, the unaccelerated MainConcept software encoder is used.
        Note: Support for Quick Sync Video for Linux operating systems is included as a preview technology in Wowza Media Server 3.5.0 and later. The final version of the technology that supports Quick Sync Video will be available in a later Wowza Streaming Engine release. For more information, see How to configure Quick Sync accelerated encoding on Linux.
      • CUDA. NVIDIA CUDA encoding acceleration (Windows only). If your hardware doesn't support the CUDA instruction set, the unaccelerated MainConcept software encoder is used.
      • NVENC. NVIDIA NVENC encoding acceleration (Windows and Linux). If your NVIDIA graphics card doesn't have the NVENC hardware-based video encoder, which comes with most NVIDIA graphics cards with the new Kepler GPU architecture, NVIDIA CUDA encoding acceleration will be used if your hardware supports it. If neither of these accelerated encoding technologies are supported, then the unaccelerated MainConcept software encoder is used.
        Note: Support for NVENC encoding acceleration is included in Wowza Media Server 3.6.0 and later. For more information, see Server specifications for NVIDIA NVENC and NVIDIA CUDA acceleration.
    • Video/GPUID. Wowza Transcoder can be used with more than one graphics card when using NVIDIA CUDA/NVENC encoding implementations; however, it won't automatically load balance between multiple cards. You'll need to directly address the specific card that you want to use in this property. The available graphics processor units (GPUs) are enumerated when the transcoder is started with ID values starting at 0. A value of -1 tells the software to always select the first GPU in the list of enumerated GPUs for transcoding. To always use a specific GPU, enter its enumeration ID value.

    • Video/FrameSize.The transcoded frame size to use:
      • letterbox. Maintains the aspect ratio of the source video and scales to fit the destination frame size with black bars to fill empty space.
      • fit-width. Adjusts the height to fit the specified width while maintaining the incoming aspect ratio.
      • fit-height. Adjusts the width to fit the specified height while maintaining the incoming aspect ratio.
      • crop. Scales and crops the source video to fit the destination frame size while maintaining the incoming aspect ratio.
      • stretch. Stretches the video to the fit the specified width and height.
      • match-source. Uses the same frame width and height as the source video.

    • Video/Crop. Crops the source video frame. The x,x,x,x values represent the number of pixels to crop on the left, right, top, and bottom of the source video frame. Can't be used with Video/SourceRectangle (see below).

    • Video/SourceRectangle. Selects only a portion of the source video frame for transcoding. The x,x,x,x values represent the top, left, width, and height of the rectangle. Can't be used with Video/Crop (see above).

    • Video/Profile. The video profile to use:
      • baseline. Lowest complexity stream for mobile streaming.
      • main. Higher complexity and higher quality stream for desktop and over-the-top streaming.

    • Video/Bitrate. The target video bitrate to use, in bits per second (bps). The value is ignored if Video/Codec is set to PassThru. The ${SourceVideoBitrate} variable can be used and will be replaced with the video bitrate of the source stream.
    • Video/KeyFrameInterval. The key frame interval to use:
      • FollowSource. If set to true, the key frame interval of the transcoded video is the same as the key frame interval of the source video. If set to false, the Video/KeyFrameInterval/Interval value (see below) determines the key frame interval.
      • Interval. An integer value (n) that specifies how often key frames are generated (every nth frame is a key frame)

    • Video/Overlays/Overlay. Container for specifying a graphic overlay such as a watermark. You can apply overlays to both the decoded stream and to each newly encoded stream. If you want to have the same overlay for all encoded streams, then you should apply the overlay to the decoded stream.
      Note: When using graphic overlay images with Wowza Transcoder, certain requirements must be met so that the overlays are to the highest possible standard. For details, see Transcoder overlay image requirements.
      • Enable. Set to true to enable graphic overlays. Overlays with a transparency require extra CPU resources.
      • Index. Graphic overlay Z-order.
      • ImagePath. Path to the graphic overlay image. GIF, JPEG, PNG, and BMP image file formats are supported.
      • CheckForUpdates. When set to true, Wowza Transcoder checks for updates to the image file every 750 milliseconds and updates the overlay if it changes.
        Note: When using the CheckForUpdates feature to dynamically monitor for overlay image file updates, be sure to properly update the image file in a single atomic operation. This ensures that Wowza Transcoder gets the complete image file when it determines that an update has happened. For more information about atomic file updates and file modification date issues in Windows, see the following:
      • Opacity. Overlay opacity. Valid values range from 0 (completely transparent) to 100 (completely opaque).
      • Location/X and Location/Y. Offset of overlay from base position. Negative values are valid.
      • Location/Width and Location/Height. Width and height of overlay. If set to ${ImageWidth} and ${ImageHeight}, the original image size is used.
      • Location/Align. Default location of overlay (horizontal,vertical). Valid horizontal values are left, right, and hcenter; valid vertical values are top, bottom, and vcenter. As an example, to place the overlay 10 pixels from the bottom-right corner of the output frame:
        Code:
        <Location>
        	<X>-10</X>
        	<Y>-10</Y>
        	<Width>${ImageWidth}</Width>
        	<Height>${ImageHeight}</Height>
        	<!-- horiz: left, right, hcenter - vert: top, bottom, vcenter -->
        	<Align>right,bottom</Align>
        </Location>
    • Video/Parameters. Implementation-specific encoding parameters that control the encoding process (Reserved for future use).

    • Audio/Codec. The audio codec to use:
      • AAC. Transcode audio to AAC.
      • PassThru. Pass the source audio stream through to the resultant streams without making any changes.
      • Disable. Disable audio in transcoded streams.

    • Audio/Bitrate. The target audio bitrate to use, in bits per second (bps). The value is ignored if Audio/Codec is set to PassThru. The ${SourceAudioBitrate} variable can be used and will be replaced with the audio bitrate of the source stream.


    Template Details: <Decode>...</Decode>

    This block represents the decoding process. A template has a single <Decode> block.

    • Video/Implementation. The transcoder implementation to use:
      • default. The built-in MainConcept software encoder (not hardware-accelerated).

      • QuickSync. Intel Quick Sync encoding acceleration (Windows and Linux). If your hardware doesn't support the Quick Sync instruction set, the unaccelerated MainConcept software encoder is used.
        Note: Support for Quick Sync Video for Linux operating systems is included as a preview technology in Wowza Media Server 3.5.0 and later. The final version of the technology that supports Quick Sync Video will be available in a later Wowza Streaming Engine release. For more information, see How to configure Quick Sync accelerated encoding on Linux.
    • Video/Deinterlace. Set to true if the source video stream is deinterlaced.

    • Video/Overlays/Overlay/[Elements]. A decode-level graphic overlay is the same as an encode-level graphic overlay except that the overlay is applied to the decoded stream. This means that all encodes will include the overlay, making this the recommended place to define an overlay if you want the same overlay for all encoded streams. Note that overlays with any transparency require extra CPU resources.
      Note: When using graphic overlay images with Wowza Transcoder, certain requirements must be met so that the overlays are to the highest possible standard. For details, see Transcoder overlay image requirements.
    • Video/Parameters. Implementation-specific decoding parameters that control the decoding process (Reserved for future use).


    Template Details: <StreamNameGroup>...</StreamNameGroup>

    This block represents a group of streams that can be played using adaptive bitrate streaming. The <Name> is the name of the stream name group. The <StreamName> is used to play the multiple-bitrate stream when using Apple HLS, Adobe HDS, or Microsoft Smooth Streaming. For example, if the incoming stream name is myStream, then the above stream name group name is myStream_all. When customizing your template, you should define and successfully playback individual resultant streams before defining your group.

    Adaptive bitrate streaming with StreamNameGroups


    Newly encoded multiple bitrate streams are key frame aligned with each other to enable adaptive bitrate delivery from Wowza Streaming Engine for Adobe HDS or RTMP, Microsoft Smooth Streaming, and Apple HLS. Stream Name Groups serve the same purpose as a Synchronized Multimedia Integration Language (SMIL) playlist file.

    To play a multiple bitrate live stream, the URLs using each of the player technologies would be the following:

    Apple iOS device (Apple HLS/Cupertino)
    Code:
    http://[wowza-ip-address]:1935/live/ngrp:myStream_all/playlist.m3u8
    Adobe Flash Player (Adobe HDS/San Jose)
    Code:
    http://[wowza-ip-address]:1935/live/ngrp:myStream_all/manifest.f4m
    Microsoft Silverlight (Smooth Streaming)
    Code:
    http://[wowza-ip-address]:1935/live/ngrp:myStream_all/Manifest
    Notes:
    • To include the incoming stream in a stream name group for adaptive bitrate streaming, it's best to add it as an <Encode> block with both Video/Codec and Audio/Codec set to PassThru. The <StreamName> element must result in a unique name from the incoming stream name.

    • You can create a stream name group for Apple HLS streaming with an audio-only rendition as described in How to create Apple App Store compliant streams. If you do this, add a <MediaListRendition> element to the stream name group with a <WowzaAudioOnly> element set to true. The following is an example:
      Code:
      <StreamNameGroup>
      	<Name>all</Name>
      	<StreamName>${SourceStreamName}_all</StreamName>
      	<Members>
      		<Member>
      			<EncodeName>source</EncodeName>
      		</Member>
      		<Member>
      			<EncodeName>360p</EncodeName>
      		</Member>
      		<Member>
      			<EncodeName>160p</EncodeName>
      		</Member>
      		<Member>
      			<EncodeName>160p</EncodeName>
      			<MediaListRendition>
      				<WowzaAudioOnly>true</WowzaAudioOnly>
      			</MediaListRendition>
      		</Member>
      	</Members>
      </StreamNameGroup>

    How to control the transcoding process


    How to control the transcoding process in Wowza Streaming Engine Manager


    All transcoding sessions can use the same Transcoder template. This is the default configuration.

    To configure all transcoding sessions for a particular application to use the same Transcoder template, do the following:

    1. In the contents pane, click Transcoder AddOn.
    2. Under live > Transcoder, verify transcoder Status: Enabled. If not, click Enable Transcoder AddOn. Then click Edit.



    3. Under Transcoder Options uncheck the box labeled Match incoming stream name to template name.



    4. Click Save.

      All streams running on this application will use this template.


    The active Transcoder template can also be based on the stream name. To configure all transcoding sessions for a particular stream to use the same Transcoder template, do the following:

    1. Under Transcoder Options check the box labeled Match incoming stream name to template name. This box may already be checked.



    2. Click Save.

    3. In the contents pane, click Transcoder AddOn.

    4. Under Transcoder Templates, click Copy Template.



    5. In the Copy Transcoder Template dialog, select Transcode (Default). Name the template, for example myStream. Click OK.



    6. Under live > Transcoder > myStream, select the stream rate options or add new rates.
    7. To select a stream rate click the rate in the list, for example the 240p rate.


    8. Click Enable Encode to add the rate.



      This file will become the transcoding template for the stream named myStream.




      Other streams in this application can have a template with corresponding name for transcoding or transrating, otherwise they will use the Fallback template.
      For information about playback using transcoded or transrated streams, see How to do adaptive bitrate streaming or How to create and play SMIL files with streams created by Wowza Transcoder.



    How to control the transcoding process in XML


    Note: If you are using Wowza Streaming Engine Manager, as described in the previous section, skip this section. Earlier versions of the server software donít support Wowza Streaming Engine manager, so you must edit Application.xml in a text editor. If you make changes to Application.xml and youíre using the Streaming Engine software, any supported settings will be displayed in the manager the next time itís started.
    All transcoding sessions can use the same Transcoder template. This is the default configuration. To configure all transcoding sessions for a particular application to use the same Transcoder template, do the following:

    Note: In the instructions, replace [application] with the name of the application being configured.
    1. Open [install-dir]/conf/[application]/Application.xml in a text editor and change the Transcoder/Templates value to [application].xml:
      Code:
      <Templates>[application].xml</Templates>
    2. Copy the [install-dir]/transcoder/templates/transrate.xml file and name it [install-dir]/transcoder/templates/[application].xml. This file will become your transcoding template for this application.


    The transcoder template that's used can also be based on the stream name. To configure all transcoding sessions for a particular stream to use the same transcoder template, do the following:

    Note: In the instructions, replace [streamName] with the name of the stream being configured.
    1. Open [install-dir]/conf/[application]/Application.xml in a text editor and change the Transcoder/Templates value to [streamName].xml:
      Code:
      <Templates>[streamName].xml</Templates>
    2. Copy the [install-dir]/transcoder/templates/transrate.xml file and name it [install-dir]/transcoder/templates/[streamName].xml. This file will become your transcoding template for this stream.


    Troubleshooting



    Logging


    Wowza Transcoder leverages the existing Wowza Streaming Engine log files, [install-dir]/logs. For more information about logging capabilities, see the Wowza Streaming Engine User's Guide.

    Running Wowza Streaming Engine in standalone mode enables you to view these messages real time from the console window. For a list of messages, scenarios that can cause these messages, and suggestions for resolution, see How to troubleshoot error messages.

    Logging messages in the [install-dir]/logs/wowzastreamingengine_access.log file will indicate if Wowza Streaming Engine and Wowza Transcoder AddOn are configured properly. If so, the logs will show that the Transcoder libraries and templates have been loaded, the detected hardware information, and the transcoded streams being published.

    When Wowza Streaming Engine starts, it will print to the logs how the transcoder is licensed, either Unlimited or the purchased amount if using a perpetual/term license.

    Troubleshooting tests


    Test #1: Basic live streaming

    Use one of the following tutorials to verify that your basic live setup is working properly without transcoding. In this test, the Transcoder/LiveStreamTranscoder property should be disabled in the Application.xml file.



    Test #2: Verify Transcoder license
    Open the [install-dir]/conf/server.license file in a text editor. If the Transcoder add-on is licensed, server.license will contain a line with the prefix TRN14 as the following example: TRN14-y9Gj2-kneqT-2zjHp-GadzB-N6fwa. (This test is for customers running perpetual/term when the logs at start-up show transcoding sessions as 0.)

    Test #3: Check to see that transcoder is enabled
    Under live > Transcoder in Wowza Streaming Engine Manager, look at the status setting as shown in the following illustration. If Status: Not Enabled, click Enable Transcoder AddOn.


    Test #4: Playback a single transcoded stream

    After you've verified that Wowza Streaming Engine is configured correctly for live streaming and you can playback a live stream successfully, playback a single transcoded stream.

    1. Re-enable transcoding in the Application.xml file by setting the Transcoder/LiveStreamTranscoder property value to transcoder:
      Code:
      <LiveStreamTranscoder>transcoder</LiveStreamTranscoder>
    2. Use the "Playback" section of the tutorial that you used to set up basic live streaming as a reference to test the playback of a single transcoded stream.

    3. If you can't playback the newly encoded stream, use the following troubleshooting checklist and look for verification information in the [install-dir]/logs/wowzamediastreamingengine_access.log file:

      1. Did the Transcoder libraries load? Failure of the libraries to load could be caused by malformed XML in Application.xml, a faulty installation, or a permissions issue. The following is an example message from a Windows 64-bit installation:
        Code:
        Comment    server    INFO  200 TranscoderSessionNative.loadLibrary: Load Transcoder list: C:\Program Files (x86)\Wowza Media Systems\Wowza Media Server 4.0.0/lib-native/win64/transcoder.list
      2. Did the Transcoder template load? Failure could be due to specifying a template in Application.xml that doesn't exist or the template isn't in the specified location. Sample templates are located in [install-dir]/transcoder/templates. The following example shows one of the default template files (transrate.xml) being loaded:
        Code:
        comment    server    INFO    200 LiveStreamTranscoder.init[live/_definst_/myStream]: Load Transcoder template: C:\Program Files (x86)\Wowza Media Systems\Wowza Media Server 4.0.0/transcoder/templates/transrate.xml
      3. Is the source stream being published?
        Code:
        publish    stream    INFO    200    myStream_360p
        If not, go back to Test #1, Basic live streaming.

      4. Are input source streams being decoded?
        Code:
        decoder-video-start    transcoder    INFO    200    myStream    {codec:H264, profile:Main, level:3.0, frameSize:224x168, displaySize:224x168, frameRate:30.0}
        decoder-audio-start    transcoder    INFO    200    myStream    {codec:AAC, objectType:LC, sampleRate:44100, channels:2}
        If not, verify that the source stream is using a supported codec.

      5. Are streams being encoded as defined in the template? The following example shows activity for myStream_360p and myStream_160p, as defined in the sample templates. Failure could be due to a different template specified in Application.xml or problems from earlier in this checklist.
        Code:
        encoder-video-start    transcoder    INFO    200    myStream    {name:"360p", bitrate:850000, codec:H264, profile:Main, level:3.0, frameSize:480x360, displaySize:480x360, frameRate:30.0}
        encoder-audio-start    transcoder    INFO    200    myStream    {name:"360p", bitrate:96000, codec:AAC, objectType:LC, sampleRate:44100, channels:2}

    Test #5: Playback a group

    After you have played a resultant stream successfully, playback a group.

    1. Is the group being created? Verify that the StreamNameGroups/StreamNameGroup section of the template is correct. The following example shows that the myStream_mobile group is being added, as specified in the sample templates:
      Code:
      comment    server    INFO    200 TranscoderStreamNameGroup.addInternal[live/_definst_/myStream]: Add name group: myStream_mobile
    2. Is the source file missing audio?

    3. Does the name specified in the URL match the StreamNameGroup/StreamName property?

    4. Is the expected template being loaded? If a different template is being loaded, the name of your group and, therefore, your URL syntax are likely to be different.

    5. Do the StreamNameGroup/Members/Member/EncodeName values match the Encodes/Encode/Name values?


    Problems transcoding with a custom template or source


    Verify configuration

    1. Is the correct Wowza Transcoder template file being loaded?
      Code:
      comment    server    INFO    200 LiveStreamTranscoder.init[live/_definst_/myStream]: Load transcoder template: C:\Program Files (x86)\Wowza Media Systems\WowzaMedia Server 4.0.0/transcoder/templates/myTemplate.xml
      In this example, the template name being loaded is myTemplate.xml. If the wrong template is being loaded, check the Transcoder/Templates value in Application.xml. Remember that you can have multiple templates specified in Application.xml. The first template name listed that Wowza Streaming Engine finds will be used, so order matters.

    2. Do the StreamNameGroup/Members/Member/EncodeName values match the Encodes/Encode/Name values?

    3. Are you playing back the source of an unsupported codec? Remember that additional codecs are supported for transcoding only so you don't want to specify those source files as part of your StreamNameGroup.

    Verify source

    1. Is your source missing audio?

    2. Is your source file encoded with one of the supported ingest codecs?


    Missing frame rate


    If you see the following WARN message in your wowzamediaserver_access.log file, you can set the frame rate to your preference by adding the sourceStreamFrameRate property to the <Properties> container in your Transcoder template. For more information about how to do this, see How to fix missing frame rate issue when using Wowza Transcoder.

    TranscoderWorkerVideoDecoder.handlePacket[_defaultVHost_:live/_definst_/myStream]: Source stream frame rate could not be calculated. Using default source stream frame rate: 29.97

    Reduce frame rate of transcoded stream


    Transcoder AddOn always provides transcoded streams that use the same frame rate as the original video source. Some clients, including many mobile devices, may not be able to playback streams with high frame rates. For more information about how to reduce the frame rate of the transcoded output stream(s) to support these devices, see How to reduce the frame rate in a transcoded stream (SkipFrameCount).


    Updated: For Wowza Streaming Engine 4.0.0 on 02-11-2014

    Comments 69 Comments
    1. rmavro -
      To transcode from Windows Media type, see www.discovervideo.com
    1. smaddock -
      Does the WowzaAudioOnly MediaListRendition take the place of the steps in the referenced article, or do some or all of the steps in that article still need to be in place?
    1. rrlanham -
      It takes the place of it.

      Richard
    1. smaddock -
      Whoops, just came back to edit my comment... without the updates to Application.xml listed in the referenced article, the WowzaAudioOnly MediaListRendition will add a playlist to the NGRP, but it's void of any segments. Not sure if that's a bug, but I needed to follow the steps in both articles to get it to stream correctly.
    1. broaska -
      Richard, we have a question about the Transcoder Add-On. We have our Wowza setup working very nicely and are now looking to extend functionality. What we would like to know is does the Transcoder Add-On allow us to ingest a single stream and output it at several different bitrates? For example we would would like to take our ingest stream and then make it available to a STB, Mobile Phone, and PC without sending in a second stream from our encoder. Is this possible? We are trying to make sure this is what this does before we purchase it. Currently we are using multiple encoders to provide HD/SD streams. Thanks!
    1. rrlanham -
      Yes, the Wowza Transcoder can transrate (what you describe) and/or transcode.

      Richard
    1. broaska -
      Quote Originally Posted by rrlanham View Post
      Yes, the Wowza Transcoder can transrate (what you describe) and/or transcode.

      Richard
      Thanks Richard, we have purchased this now. Would you recommend we update our Wowza installation when using this? We are currently running 3.0.2 build866 Perpetual.

      Thanks
    1. lisa_w -
      I would recommend you update to the latest code which is 3.1.1. Links to the installer for 3.1.1, a patch to upgrade from 3.x to 3.1.1 and release notes can be found here.

      -Lisa
    1. sbabiy -
      Is it posible to set the frame rate for a transcoded video?

      Thanks,
      Sergey
    1. rrlanham -
      I don't think so, just KeyFrameInterval

      Richard
    1. sc4venger -
      Is it possible to transcode a LIVE VP6/MP3 stream for playback on IOS?
    1. rrlanham -
      No, VP6 is not supported for playback in iOS. It will only work in Flash RTMP clients. You can use the Wowza Transcoder.

      http://www.wowza.com/forums/content....wza-Transcoder

      Richard
    1. StressedOut -
      Hi, any news on dynamic overlays for the transcoder?
    1. scanferla -
      The "transcoded" video gets recorded / stored automatically? If not, what would I have to do?

      PS: I'm already successfully recording "non-transcoded" videos with the LiveStreamRecord AddOn
    1. rrlanham -
      Transcoded video is not stored automatically. You can use the LiveStreamRecord package with transcoded streams just as you would any live stream

      Richard
    1. bnystrom -
      I may have a situation where we are getting RTP IP cams that are encoding using profile:High, level:4.0, which is causing issues with some mobile device playback. I'm not sure yet if there are any options at the camera to change that. I think for compatibility reasons we would like level:3.0. Will the transcoder help with that? I've seen reference to the ability to define "Baseline/Main/High", but not seen any settings for level.

      Bryan
    1. rrlanham -
      Bryan,

      Yes, the Wowza Transcoder can encode to Baseline 3 profile, which can be played in most devices that are able to stream at all.

      Richard
    1. scanferla -
      Thanks Richard,

      Is there a way to know, from a mobile page (without Flash), if a stream is live? As I will provide both live and recorded versions of the same stream, but the application URL is different, for example:
      Live: http://[wowza-ip-address]/videochat/[stream-name]/playlist.m3u8
      Recorded: http://[wowza-ip-address]/vods3/_definst_/mp4:amazons3/bucket/[stream-name].mp4/playlist.m3u8

      If I'm able to know if a specific stream is live or not, I can provide the correct link to my users.

      Thanks in advance!

      Gustavo
    1. rrlanham -
      Gustavo,

      You could do something like this with HTTPProvider:

      Code:
      package test;
      
      import java.io.*;
      import java.util.Iterator;
      import java.util.List;
      import java.util.Map;
      
      import com.wowza.wms.http.*;
      import com.wowza.wms.logging.*;
      import com.wowza.wms.vhost.*;
      
      public class HTTPIsStreamLive extends HTTProvider2Base {
      
      	public void onHTTPRequest(IVHost vhost, IHTTPRequest req, IHTTPResponse resp) {
      		if (!doHTTPAuthentication(vhost, req, resp))
      			return;
      		
      		String sname = "";
      		String streamName = "myStream";
      		String appName = "vod";
      		String ret = "false";
      		
      		if (req.getMethod().equalsIgnoreCase("post")) {
      			req.parseBodyForParams(true);
      		}
      
      		Map<String, List<String>> params = req.getParameterMap();
      		if (params.containsKey("streamname"))
      			sname = params.get("streamname").get(0);
      		
      		if (params.containsKey("appname"))
      			appName = params.get("appname").get(0);
      		
      		List<String> list = vhost.getApplication(appName).getAppInstance("_definst_").getPublishStreamNames();
      		Iterator<String> iter = list.iterator();
      		while (iter.hasNext())
      		{
      			streamName = iter.next();
      			if (sname == streamName)
      					ret = "true";
      		}
      
      		try {
      			OutputStream out = resp.getOutputStream();
      			byte[] outBytes = ret.getBytes();
      			out.write(outBytes);
      		} catch (Exception e) {
      			WMSLoggerFactory.getLogger(null).error(
      					"HTTPIsStreamLive: " + e.toString());
      		}
      
      	}
      
      }
      Richard
    1. pobrejuanito -
      Hi,

      If I have origin/balancer and edges setup, Do I set this up on edge application.xml?