How to set up Flash application to publish H.264 video and Speex audio to Wowza Transcoder

Note: This article is for an older Wowza™ media server product or technology that either has been updated or is no longer supported. For the current version of this article, see How to convert Flash Player 11 output from H.264 + Speex audio to H.264 + AAC audio using Wowza Transcoder.

Steps for transcoding an RTSP, native RTP, or MPEG-TS stream with Wowza Transcoder.

  1. In the Wowza media server software, create an application named live.
     
    1. Set <Streams>/<StreamType> to live.
       
    2. Set <Streams>/LiveStreamPacketizers> to cupertinostreamingpacketizer, smoothstreamingpacketizer, sanjosestreamingpacketizer,mpegdashstreamingpacketizer.
       
      Note: You can exclude packetizers that you won't be using. The mpegdashstreamingpacketizer is only supported in Wowza Streaming Engine™ software.
    3. Set <Transcoder>/<LiveStreamTranscoder> to transcoder.
       
    4. Set <Transcoder>/<Templates> to transcodeAudio.xml.

    Many IP cameras have H.264 video but an audio codec that's not supported in Flash, iOS, and Silverlight players. Refer to the "Audio (decoding)" list in the Wowza Transcoder overview. This template transcodes this kind of carrier.
     
  2. Create a file named transcodeAudio.xml in the /transcoder/templates folder.
     
  3. Copy the following XML code into transcodeAudio.xml. It configures a Transcoder template with one Encode block. The <Video>/<Codec> is set to PassThru and <Video>/<BitRate> is set to ${SourceVideoBitrate}. The <Video>/<Profile> is changed to baseline. The <Audio>/<Codec> is AAC to transcode the unsupported audio codec.
    <Root>
    	<Transcode>
    		<Encodes>
    			<Encode>
    				<Enable>true</Enable>
    				<Name>RTP</Name>
    				<StreamName>mp4:${SourceStreamName}_rtp</StreamName>
    				<Video>
    					<!-- H.264, PassThru -->
    					<Codec>PassThru</Codec>
    					<!-- default, QuickSync, NVENC -->
    					<Implementation>default</Implementation>
    					<FrameSize>
    						<!-- letterbox, fit-width, fit-height, crop, stretch, match-source -->
    						<FitMode>fit-height</FitMode>
    						<Width>320</Width>
    						<Height>240</Height>
    					</FrameSize>
    					<Profile>baseline</Profile>
    					<Bitrate>${SourceVideoBitrate}</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>
    							<Opacity>100</Opacity>
    							<Location>
    								<X>5</X>
    								<Y>5</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 -->
    					<Codec>AAC</Codec>
    					<Bitrate>${SourceAudioBitrate}</Bitrate>
    				</Audio>
    				<Properties>
    				</Properties>
    			</Encode>
    		</Encodes>
    		<Decode>
    			<Video>
    				<Deinterlace>false</Deinterlace>
    				<Overlays>
    					<Overlay>
    						<Enable>false</Enable>
    						<Index>0</Index>
    						<ImagePath>${com.wowza.wms.context.VHostConfigHome}/content/wowzalogo.png</ImagePath>
    						<Opacity>100</Opacity>
    						<Location>
    							<X>5</X>
    							<Y>5</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>
    		<Properties>
    		</Properties>
    	</Transcode>
    </Root>
  4. Start the Wowza media server software in standalone mode (/bin/startup.bat).
     
  5. Start the RTSP, native RTP, or MPEG-TS stream using Stream Manager with MediaCaster type rtp on application live/_definst_.

    For this example, the stream is camera.stream, a text file that contains the RTSP URL to an IP camera with H.264 video and G.711 audio. You should see the Transcoder start in the console running the Wowza media server when you start camera.stream in Stream Manager.
     
  6. Play the stream.

    Playback with the example Flash RTMP player [install-dir]/examples/LiveVideoStreaming/FlashRTMPPlayer/player.html

     
    Server: rtmp://[wowza-ip-address]:1935/live
    Stream: camera.stream_rtp

    Playback in iOS device

     
    http://[wowza-ip-address]:1935/live/camera.stream_rtp/playlist.m3u8

    Playback with Microsoft Silverlight

     
    http://[wowza-ip-address]:1935/live/camera.stream_rtp/Manifest

    Playback in Adobe Flash OSMF player

     
    http://[wowza-ip-address]:1935/live/camera.stream_rtp/manifest.f4m