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

    This article describes how to use the Transcoder in Wowza Streaming Engine™ media server software to decode video and audio in incoming live streams and re-encode for playback on desired playback devices. The re-encoded renditions have aligned key frames for adaptive bitrate delivery.

    Contents


    Tutorial
    Troubleshooting
    Related articles

    Tutorial


    Video tutorial


    Software requirements

    Wowza Transcoder is supported on 64-bit versions of the Windows and Linux operating systems (32-bit versions aren't supported). The OS X operating system is NOT supported. A 64-bit Java runtime is also required.

    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

    The Transcoder can be configured to take advantage of hardware acceleration on 64-bit Windows and Linux operating systems, which is recommended but not required. If your configuration doesn't include hardware acceleration, a built-in software encoder is invoked. The following articles provide more information about the supported hardware acceleration technologies:


    Notes:
    • Important: NVIDIA CUDA encoding acceleration isn't supported in the latest NVIDIA graphics drivers (340 and later). CUDA-based accelerated encoding is NOT supported in Wowza Streaming Engine 4.1.2 and later.

    • 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 determine if hardware acceleration is available on your Wowza media server, 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 provides multiple features for transcoding or transrating incoming streams to outgoing streams with multiple bitrates. It supports the following video and audio codecs:

    Video (decoding)
    Video (encoding)
    H.264
    MPEG-2
    MPEG-4 Part 2
    * VP8
    * VP9




    H.263v2
    H.264
    * H.265
    * VP8
    * VP9
    Audio (decoding)
    Audio (encoding)
    AAC
    G.711 (΅-law and A-law)
    MPEG-1 Layer 1/2
    MPEG-1 Layer 3 (MP3)
    Speex
    * Vorbis
    * Opus
    AAC
    * Vorbis
    * Opus
    * = Preview Transcoder Technology

    Transcoder support for these codecs is provided as an early feature preview of software that may be updated in a later release of Wowza Streaming Engine. Unexpected results can occur when using feature preview software. To get the best results when using these codecs, see the following resources:

    • To use the H.265 video codec, follow the instructions in How to stream using HEVC/H.265 transcoding.

    • To use the VP8 and VP9 video and Vorbis and Opus audio codecs, follow the instructions in How to transcode live streams using WebM.

    • You can't use Wowza Streaming Engine Manager to specify that these codecs be used for your transcoded output renditions. Instead, you must edit your Transcoder template files in a text editor. For details, see the XML reference section of this article.
    Notes:
    • The following MP3 audio sample rates are supported: 48000, 44100, and 32000

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

    • 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.

    Licensing the Transcoder

    The license key you enter when you run Setup to install an instance of Wowza Streaming Engine software is displayed in the License Keys box in Wowza Streaming Engine Manager. A monthly (subscription) license for the server software lets you run an unlimited number of media server instances and enable the Transcoder for each instance under a single license key. If you have a perpetual license for the server software, you may need to buy additional license keys to enable the integrated Transcoder technology for use with the licensed server instance, and add it to your server configuration. For more information, see Licensing requirements for Wowza Transcoder.

    All license key values are stored in the [install-dir]/conf/Server.license file in the Wowza media server software installation.

    Windows - %WMSCONFIG_HOME%\conf\Server.license
    Linux/Unix - /usr/local/WowzaStreamingEngine/conf/Server.license

    Notes:
    • If you're using a subscription license for the Wowza media server software, your account might incur additional charges when the Transcoder is activated and used in an application. Review your subscription license terms to see if additional charges will apply.

    • If you're using a Monthly, Trial, or Developer Edition license, the Transcoder functions without adding additional licenses.

    Configuring live streaming applications

    You must set up an encoder that publishes a live stream to an application in the Streaming Engine for transcoding. Use the tutorial below that matches your encoder to create a live streaming application named live in Wowza Streaming Engine:


    Configuring the Transcoder in Wowza Streaming Engine Manager

    Wowza Transcoder uses a templating system to match incoming streams to an encoding template that controls the encoding parameters of the resultant transcoded streams. Wowza media server software has three default templates for the most common workflows: Transcode, Transrate, and Audio Only.

    You can configure Transcoder templates in Wowza Streaming Engine Manager by setting the active Transcoder stream names and bitrates. Use the following procedure to activate streams in Transcode, Transrate, or Audio Only templates. This example configures the Transrate template ([install-dir]/transcoder/templates/transrate.xml). Make a backup copy of this file before modifying it.

    Enable the Transcoder

    1. In the Applications contents panel, click live, and then click Transcoder. Then in the details page, click Enable Transcoder.



      Note: The Streaming Engine must be properly licensed to enable the Transcoder. For details, see Licensing requirements for Wowza Transcoder.
    2. Restart the application.


    Configure an Encode

    1. On the Setup tab, under Transcoder Templates, click the Transrate (Default) template.



    2. In the Encodes list, click the Edit icon for the 240p encode.



    3. Set the options for a 240000 bits-per-second encoded stream and enable it, so it's created with the other enabled encodes. For more information about the encode options available in the user interface, see Template details – Encode.

      1. In the Video Settings area, in Video Bitrate, enter 240000. Accept the defaults for other settings.



      2. In the Frame Size area, accept the default settings.



      3. In the Audio Settings area, accept the default setting for the audio codec (Passthrough).



      4. In the Overlay Images area, accept the default setting.



        For details about how to add graphic image overlays to your transcoded streams, see Add graphic overlay.

    4. Click Save to save the settings.

    5. In the Encodes list, click 240p, and then click Enable Encode to enable the updated 240p encode.


    Configure the Decode

    1. Click Return to Transcoder Template.



    2. Click the Decode tab, and then click Edit to change decoding options.



      • Description – Information that will help you to remember details about this decode.

      • Decoder Implementation – The accelerated video decoding implementation to use. See Video/Implementation in Template details – Decode for more information.

      • Deinterlace source stream – Select this option if the source stream needs to be deinterlaced for progressive scan displays.

      • Overlay Images – See Add graphic overlay for more information.

    3. Click Save to save the settings.

    Add graphic overlay

    You can apply static GIF, JPEG, PNG, and BMP overlay images to streams to achieve stationary image effects such as a watermark to your video. You can customize the location, size, alignment, and opacity of the image using the settings described in this section.

    You can add a different overlay image to each transcoded stream on a template's Encode tab. If you want to have the same overlay image for all encoded streams, you should apply it to the decoded stream on a template's Decode tab. 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.

    To add an overlay image to an encode or to the decode, click Edit, and then click the Add Overlay Image button.



    The Add Overlay Image dialog box is displayed. Configure the options and then click Add.

    Overlay Image Settings



    • Image Name – A unique name for the overlay image to differentiate it from other images.

    • Image Path – The path to the overlay image.

    • Update overlay image when source image updates – Check the source image file for updates every 750 milliseconds and refresh the overlay image if it has changed.

    • Width and Height – The overly image width and height. To specify that the source image width and/or height be used, select the Same as source image option. The minimum supported width and height is 4 pixels and the sum of these values must be an even number.

    • Opacity – The overlay image opacity. Valid values range from 0 (completely transparent) to 100 (completely opaque).

    Overlay Image Placement Settings



    • Location – Select an option button in this box to specify the base position of the overlay image. You can think of the Location box as analogous to the display on a playback device.

    • Horizontal Offset and Vertical Offset – Specify a horizontal and/or vertical offset (in pixels) for the overlay image from the base position that you specified in the Location box. Values must be zero or greater (even-numbered values recommended).

      As an example, to align an overlay image 10 pixels above the lower-right corner of the output frame, select the option button in the lower-right corner of the Location box, and then enter 10 in the Vertical Offset box.


    To enable an overlay image, click the Enabled checkbox for the overlay image, and then click Save.



    You can enable multiple overlay images for a single encode. If you enable multiple overlay images, you can use the Move Up and Move Down icons to arrange them in the proper order. In the video, images that are higher in the list are displayed on top of images that are lower in the list.



    Controlling the transcoding process

    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 panel for the live application, click Transcoder, and then click Edit.



    2. Under Transcoder Options, clear the Match incoming stream name to template name check box, and then click Save.



      Clearing the check box means that all incoming streams will use the same 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, select the Match incoming stream name to template name check box, click Save, and then restart the application.



    2. Under Transcoder Templates, click Copy Template.



    3. In the Copy Transcoder Template dialog box, select Transcode (Default). Name the template (for example, myStream.) and then click OK.



    4. Edit the encode options or add new encodes for the copied template.



      This will become the transcoding template for the stream named myStream. Other incoming streams to this application can have a template with a 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.

    Adaptive bitrate streaming with Stream Name Groups

    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. The newly encoded set of multiple bitrate streams have aligned key frames to enable adaptive bitrate delivery from the Wowza media server for Adobe HDS or RTMP, Apple HLS, Microsoft Smooth Streaming, and MPEG-DASH. 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:

    Adobe Flash Player (Adobe HDS/San Jose)
    Code:
    http://[wowza-ip-address]:1935/live/ngrp:myStream_all/manifest.f4m
    Apple iOS device (Apple HLS/Cupertino)
    Code:
    http://[wowza-ip-address]:1935/live/ngrp:myStream_all/playlist.m3u8
    Microsoft Silverlight (Smooth Streaming)
    Code:
    http://[wowza-ip-address]:1935/live/ngrp:myStream_all/Manifest
    DASH players (DASH Streaming)
    Code:
    http://[wowza-ip-address]:1935/live/ngrp:myStream_all/manifest.mpd
    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>

    XML reference


    Note: If you configured Transcoder templates in Wowza Streaming Engine™ Manager, you can skip this section. If you make changes to Transcoder template files in a text editor and you're using Wowza Streaming Engine software, any supported settings are displayed in the manager the next time it's started. Wowza Media Server® software doesn't support Wowza Streaming Engine Manager, so you must edit the Transcoder template files in a text editor if you're running Wowza Media Server.
    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 Adobe HTTP Dynamic Streaming (HDS), Apple HTTP Live Streaming (HLS), Microsoft Smooth Streaming, and MPEG-DASH streaming

    The [stream-name] is the name of a stream that the encoder sends to the Wowza media server. 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.

    All incoming streams that are published to the live application are 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.

    Template details

    The following is the default transrate.xml template file that's included with Wowza Streaming Engine 4.2 media server software:
    Code:
    <?xml version="1.0" encoding="UTF-8" ?>
    <!-- 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 version="1">
    	<Transcode>
    		<Description>Default transrate.xml file</Description>
    		<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.263, H.264, H.265, VP8, VP9, PassThru, Disable -->
    					<Codec>PassThru</Codec>
    					<Bitrate>${SourceVideoBitrate}</Bitrate>
    					<Parameters>
    					</Parameters>
    				</Video>
    				<Audio>
    					<!-- AAC, Vorbis, Opus, 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.263, H.264, H.265, VP8, VP9, PassThru, Disable -->
    					<Codec>H.264</Codec>
    					<!-- default, QuickSync, CUDA, NVENC -->
    					<Implementation>default</Implementation>
    					<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>
    							<Name>WowzaLogo</Name>
    							<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, Vorbis, Opus, 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.263, H.264, H.265, VP8, VP9, PassThru, Disable -->
    					<Codec>H.264</Codec>
    					<!-- default, QuickSync, CUDA, NVENC -->
    					<Implementation>default</Implementation>
    					<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>
    							<Name>WowzaLogo</Name>
    							<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, Vorbis, Opus, 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.263, H.264, H.265, VP8, VP9, PassThru, Disable -->
    					<Codec>H.264</Codec>
    					<!-- default, QuickSync, CUDA, NVENC -->
    					<Implementation>default</Implementation>
    					<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>
    							<Name>WowzaLogo</Name>
    							<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, Vorbis, Opus, 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.263, H.264, H.265, VP8, VP9, PassThru, Disable -->
    					<Codec>H.264</Codec>
    					<!-- default, QuickSync, CUDA, NVENC -->
    					<Implementation>default</Implementation>
    					<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>
    							<Name>WowzaLogo</Name>
    							<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, Vorbis, Opus, 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.263, H.264, H.265, VP8, VP9, PassThru, Disable -->
    					<Codec>H.263</Codec>
    					<!-- default, QuickSync, CUDA, NVENC -->
    					<Implementation>default</Implementation>
    					<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>
    							<Name>WowzaLogo</Name>
    							<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, Vorbis, Opus, PassThru, Disable -->
    					<Codec>PassThru</Codec>
    					<Bitrate>${SourceAudioBitrate}</Bitrate>
    					<Parameters>
    					</Parameters>
    				</Audio>
    				<Properties>
    				</Properties>
    			</Encode>
    		</Encodes>
    		<Decode>
    			<Video>
    				<!-- default, QuickSync, CUDA, NVCUVID -->
    				<Implementation>default</Implementation>
    				<Deinterlace>false</Deinterlace>
    				<Overlays>
    					<Overlay>
    						<Enable>false</Enable>
    						<Name>WowzaLogo</Name>
    						<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>
    						<MemberName>source</MemberName>
    						<EncodeName>source</EncodeName>
    					</Member>
    					<Member>
    						<MemberName>720p</MemberName>
    						<EncodeName>720p</EncodeName>
    					</Member>
    					<Member>
    						<MemberName>360p</MemberName>
    						<EncodeName>360p</EncodeName>
    					</Member>
    					<Member>
    						<MemberName>240p</MemberName>
    						<EncodeName>240p</EncodeName>
    					</Member>
    					<Member>
    						<MemberName>160p</MemberName>
    						<EncodeName>160p</EncodeName>
    					</Member>
    				</Members>
    			</StreamNameGroup>
    			<StreamNameGroup>
    				<Name>mobile</Name>
    				<StreamName>${SourceStreamName}_mobile</StreamName>
    				<Members>
    					<Member>
    						<MemberName>240p</MemberName>
    						<EncodeName>240p</EncodeName>
    					</Member>
    					<Member>
    						<MemberName>160p</MemberName>
    						<EncodeName>160p</EncodeName>
    					</Member>
    				</Members>
    			</StreamNameGroup>
    		</StreamNameGroups>
    		<Properties>
    		</Properties>
    	</Transcode>
    </Root>
    For details about about template XML settings, see the following sections:


    Template details – Encode

    The encode block (<Encode>...</Encode>) 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.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 or NVENC), the setting is ignored and the default MainConcept software encoder is used to generate the H.263-encoded video. In Wowza Media Server software, this property is named Video/Transcoder.
      • H.264. Transcode video to H.264. Also use when modifying source H.264 to achieve a different bitrate, profile, etc.

      • H.265. Preview technology in Wowza Streaming Engine 4.1 (and later) that transcodes video to H.265 (HEVC).
        Note: For best results when using the H.265 video codec, follow the instructions in How to stream using HEVC/H.265 transcoding.
      • VP8 and VP9. Preview technology in Wowza Streaming Engine 4.2 (and later) that transcodes video to VP8 and VP9 respectively.
        Note: For best results when using the VP8 and VP9 video codecs, follow the instructions in How to transcode live streams using WebM.
      • PassThru. Pass the source video stream through to an output rendition without making any changes.

      • Disable. Disable video in the output rendition.

    • Video/Implementation. The accelerated video encoding 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.

      • CUDA. NVIDIA CUDA encoding acceleration (Windows only). If your hardware doesn't support the CUDA instruction set, the unaccelerated MainConcept software encoder is used.
        Note: The CUDA encoding implementation option is NOT supported in Wowza Streaming Engine 4.1.2 and later.
      • 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 Kepler or Maxwell GPU architecture, CUDA encoding acceleration is used if your hardware and Wowza media server software version supports it. If neither of these accelerated encoding technologies are supported, then the unaccelerated MainConcept software encoder is used.
        Notes:
        • Important: CUDA encoding acceleration isn't supported in the latest NVIDIA graphics drivers (340 and later); therefore, CUDA-based accelerated encoding is NOT supported in Wowza Streaming Engine™ 4.1.2 and later.

        • NVENC encoding acceleration can be used when encoding H.265/HEVC video renditions. This is included in Wowza Streaming Engine 4.2 as a Technology Preview feature.
    • Video/GPUID. Transcoder can be used with more than one graphics card when using NVIDIA encoding implementations; however, it won't automatically load balance between multiple cards. You must directly address the specific card that you want to use in this property. The available 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 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, 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 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 (Reserved for future use). Implementation-specific encoding parameters that control the encoding process.

    • Audio/Codec. The audio codec to use:

      • AAC. Transcode audio to AAC.

      • Vorbis and Opus. Preview technology in Wowza Streaming Engine 4.2 (and later) that transcodes audio to Vorbis and Opus respectively.
        Note: For best results when using the Vorbis and Opus audio codecs, follow the instructions in How to transcode live streams using WebM.
      • PassThru. Pass the source audio stream through to the output rendition without making any changes.

      • Disable. Disable audio in the output rendition.

    • 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

    The decode block (<Decode>...</Decode>) represents the decoding process. A template has just one <Decode> block.

    • Video/Implementation. The accelerated video decoding 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.

      • CUDA (Wowza Streaming Engine 4.2 and later). NVIDIA CUDA decoding acceleration (Windows and Linux). If your hardware doesn't support the CUDA instruction set, the unaccelerated MainConcept software encoder is used.

      • NVCUVID (Wowza Streaming Engine 4.2 and later). NVIDIA CUDA Video Decoder (Windows and Linux). Some newer NVIDIA graphics cards have fixed-function hardware that use NVIDIA CUDA Video Decoder (NVCUVID) video decode APIs for accelerated decoding on NVIDIA GPUs with CUDA. If your graphics card doesn't have this hardware, either NVIDIA CUDA decoding acceleration is used or the unaccelerated MainConcept software encoder is used if your hardware doesn't support the CUDA instruction set.

    • 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 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 (Reserved for future use). Implementation-specific decoding parameters that control the decoding process.

    Template details – StreamNameGroup

    The stream name group block (<StreamNameGroup>...</StreamNameGroup>) 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, Microsoft Smooth Streaming, or MPEG-DASH 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.

    Additional Application.xml configuration for Wowza Media Server users

    If you created your live streaming application by editing the application configuration file (Application.xml) in a text editor, make the following additional changes to Application.xml so that the application can work with the Transcoder and then restart the Wowza media server:

    1. Set the Transcoder/LiveStreamTranscoder value to:
      Code:
      <LiveStreamTranscoder>transcoder</LiveStreamTranscoder>
    2. 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, set the Transcoder/Templates value to:
      Code:
      <Templates>${SourceStreamName}.xml,transcode.xml</Templates>
      Note: Adaptive bitrate delivery is supported when using transcode.xml.
    3. 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 the Wowza media server to send one MP3 frame per-packet:
      Code:
      <Property>
      	<Name>shoutcastMP3GroupCount</Name>
      	<Value>1</Value>
      	<Type>Integer</Type>
      </Property>
    4. To transcode a single stream or using individual templates:
      Code:
      <Templates>${SourceStreamName}.xml</Templates>
      Copy the desired transcoding template and rename to [stream-name].xml.

    Controlling the transcoding process for Wowza Media Server users

    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 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 prints to the log files 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 is licensed, the file will have a line with the prefix TRNU4 as shown in the following example:

    TRNU4-y9Gj2-kneqT-2zjHp-GadzB-N6fwa

    This test is for customers running perpetual/term when the logs at star-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 figure. If Status: Not Enabled, click Enable Transcoder.



    Test #4: Playback a single transcoded stream


    After you've verified that Wowza Streaming Engine is configured correctly for live streaming and you can play a live stream successfully, play 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 play the newly encoded stream, use the following troubleshooting checklist and look for verification information in the [install-dir]/logs/wowzastreamingengine_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:

        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:

        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?

        publish stream INFO 200 myStream_360p

        If not, go back to Test #1, Basic live streaming.

      4. Are input source streams being decoded?

        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.

        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 in the template is correct. The following example shows that the myStream_mobile group is added, as specified in the sample templates:

      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 loaded, the name of your group and, therefore, your URL syntax are probably 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 transcoder template file loaded?

      comment server INFO 200 LiveStreamTranscoder.init[live/_definst_/myStream]: Load transcoder template: C:\Program Files (x86)\Wowza Media Systems\Wowza Streaming Engine 4.0.0/transcoder/templates/myTemplate.xml

      In this example, the template name being loaded is myTemplate.xml. If the wrong template is 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 is used, so order matters.

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

    3. Are you playing a source that has 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 stream name group.

    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 wowzastreamingengine_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 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 play 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).

    Related articles


    Wowza Transcoder overview
    Wowza Transcoder User's Guide
    Wowza Transcoder performance benchmark
    How to stream using HEVC/H.265 transcoding
    How to transcode live streams using WebM

    Originally Published: 10-07-2011.
    Updated: For Wowza Streaming Engine 4.2 on 06-16-2015.

    Comments 74 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?