RTSP/RTP improvements including video on demand support (patch15 or greater)

Wowza Media Server 2 patch15 or greater now includes improved support for RTSP/RTP streaming. This improved support includes RTSP/RTP Video On Demand Support, RTSP/RTP UDP Configuration, RTSP/RTP Session Timeout and Validation and RTSP/RTP over HTTP (QuickTime RTSP/RTP tunneling).You can get the latest Wowza Media Server 2 patch here:

https://www.wowza.com/devbuild.html

RTSP/RTP Video On Demand Support

Wowza Media Server patch14 or greater now includes support for VOD over RTSP/RTP. The URL format for RTSP/RTP video on demand playback is:

rtsp://[wowza-ip-address]:1935/[application]/[appInstance]/[prefix]:[streamName]

Where:

  • [wowza-ip-address]: Wowza ip address

  • [application]: name of application configured for video on demand playback

  • [appInstance]: name of application instance (default is definst)

  • [prefix]: media type (most likely value is mp4)

  • [streamName]: stream name

    See this post for details on how to setup an application for video on demand playback:

    http://community.wowza.com/t/-/64

    In addition to the steps outlined in the above post you will also need to change the RTP/Authentication/PlayMethod to none to enable RTSP/RTP playback. Once you have the video on demand application configured, the URL to playback the Extremists.m4v file is:

    rtsp://[wowza-ip-address]:1935/vod/mp4:Extremists.m4v
    
    

    RTSP/RTP UDP Configuration

    The second improvement to RTSP/RTP involves additional configuration items that improves UDP handling. There are now 3 additional configuration items that have been added to the base Application.xml file:

  • RTP/RTSPBindIpAddress: IP address to which Wowza will bind to when streaming RTP over UDP

  • RTP/RTSPConnectionIpAddress: IP address published in connection (c=) line of session description protocol (SDP) data

  • RTP/RTSPOriginIpAddress: IP address published in origin (o=) line of session description protocol (SDP) data

    If your Wowza server is not behind NAT (network address translation) then it is suggested that all these of these values should be set to the external ip address of your Wowza server. If you are behind NAT then it is suggested that you use the following settings:

    <RTSPBindIpAddress>[internal-ip-address]</RTSPBindIpAddress>
    <RTSPConnectionIpAddress>[external-ip-address]</RTSPConnectionIpAddress>
    <RTSPOriginIpAddress>[external-ip-address]</RTSPOriginIpAddress>
    
    

    RTSP/RTP Session Timeout and Validation

    Wowza Media Server 2 patch14 and greater now includes a system that does RTSP/RTP session validation and timeout.

    RTSP/RTP over HTTP (QuickTime RTSP/RTP tunneling)

    Wowza Media Server 2 patch15 and greater now includes support for QuickTime’s RTSP/RTP over HTTP (QuickTime RTSP/RTP tunneling).

    Notes and Observations

  • When playing back a RTSP/RTP VOD stream using VLC, seek does not seem to work properly. The seek bar in VLC does update to the proper location after the seek is performed. This seems to be a VLC bug and not a Wowza problem. The same problem occurs when streaming RTSP/RTP VOD using Darwin as the streaming server. I have seen similar seek issues with the Blackberry Curve 8900.

  • The [install-dir]/content/Extremist.m4v file does not playback properly when using VLC. You can download an updated encode that seems to resolve the issue from here:

    https://www.wowza.com/downloads/content/Extremists.m4v

  • We are still considering adding support for RTSP/RTP tunneling. This is the method used by the QuickTime player if RTSP/RTP over UDP fails.

  • There is a RTSP/RTP Video On Demand demo stream available at:

    HTML page with RTSP/RTP link:
    https://www.wowza.com/mobile.html
    Direct RTSP/RTP URL (QuickTime player or VLC):
    rtsp://174.129.153.104/vod/mp4:BigBuckBunny_175k.mov
    
    

    Charlie

You can only stream H.264/AAC/MP3/Speex out over RTSP/RTP. At this time H.263, MP4, VP6, SorensonSpark, NellyMoser will not work. We are considering adding support for more formats.

Charlie

Be sure the phone you are trying supports H.264/AAC. It sounds like it might not. I assume you tried the test stream here:

https://www.wowza.com/mobile.html

Charlie

Try this link:

https://www.wowza.com/_h264/BigBuckBunny_175k.mov

Charlie

The player controls whether it uses RTSP/RTP over UDP or TCP. VLC has a preference that choose which method:

https://www.wowza.com/docs/how-to-configure-vlc-media-player-for-rtsp-rtp-playback-rtsp-rtp-interleaved-and-tuning

Other players will try RTP over UDP first if that fails it will fall through to RTP over TCP.

There is no server-side control for this.

Charlie

We do not support multibitrate for RTSP/RTP streaming.

Charlie

RTSP/RTP over HTTP tunneling is indeed great news, however we have noticed a (perhaps minor) glitch: it does not work over IPv6.

This seems to only affect Quicktime so far [QuickTime/7.6.6 (qtver=7.6.6;cpu=IA32;os=Mac 10.6.3 or 10.5.8]; VLC 1.0.5 (using Live555) does not support IPv6 transport.

Actually I am not sure if this is supposed to work; I just noticed that it doesn’t work over IPv6 while it does work over IPv4.

Does http://community.wowza.com/t/-/96 is corrupted ?

Thank you!!!

Hi,

I changed the settings of my Wowza server according your instructions in order to have rtsp support.

My goal is to play mp3 files on cell phones.

Unfortunately, all cell phones I used (BlackBerry, Nokia, Sony Erickson etc) failed to play the mp3 file.

Can you give an advice how to solve this problem?

Thanks,

Gal Betser

You can’t play the https://www.wowza.com/mobile.html URL directly in QuickTime. You need to play the RTSP address that is referenced in the HTML:

rtsp://184.72.239.149/vod/mp4:BigBuckBunny_175k.mov

Charlie

What player are you using? I have not seen this error message. Zip up and send us your conf and logs folders and reference this post (support@wowza.com).

Charlie

There is a chance that the mobile phones are not able to play an MP3 stream over RTSP/RTP. What makes and models are you trying?

Charlie

I guess there is a chance that these phones do not support MP3 over RTSP/RTP. Are you able to play our test RTSP/RTP stream on either of these phones:

https://www.wowza.com/mobile.html

Charlie

Also, what is the video and audio codec being used? We currently only support h.264 and AAC.

Charlie

Also, see this post. It describes how to turn off QuickTime Windows acceleration which is most likley the reason the video is not displayed:

https://www.wowza.com/forums/showthread.php?t=7870

Charlie

I guess those devices are not compatible with Wowza.

Charlie

I don’t know. The https://www.wowza.com/mobile.html setup is pretty optimal. At this time we don’t have the resources to investigate individual handsets.

Charlie

You need to be sure UDP ports are wide open on your firewall and router.

Be sure you are running the most recent version of Wowza:

https://www.wowza.com/devbuild.html

Also, follow the instructions here:

http://community.wowza.com/t/-/97

The application.xml on on server is:

<Root>
	<Application>
		<!-- Uncomment to set application level timeout values
		<ApplicationTimeout>60000</ApplicationTimeout>
		<PingTimeout>12000</PingTimeout>
		<ValidationFrequency>8000</ValidationFrequency>
		<MaximumPendingWriteBytes>0</MaximumPendingWriteBytes>
		<MaximumSetBufferTime>60000</MaximumSetBufferTime>
		<MaximumStorageDirDepth>25</MaximumStorageDirDepth>
		-->
		<Connections>
			<AutoAccept>true</AutoAccept>
			<AllowDomains></AllowDomains>
		</Connections>
		<!--
			StorageDir path variables
			
			${com.wowza.wms.AppHome} - Application home directory
			${com.wowza.wms.ConfigHome} - Configuration home directory
			${com.wowza.wms.context.VHost} - Virtual host name
			${com.wowza.wms.context.VHostConfigHome} - Virtual host config directory
			${com.wowza.wms.context.Application} - Application name
			${com.wowza.wms.context.ApplicationInstance} - Application instance name
			
		-->
		<Streams>
			<StreamType>default</StreamType>
			<StorageDir>${com.wowza.wms.context.VHostConfigHome}/content</StorageDir>
			<KeyDir>${com.wowza.wms.context.VHostConfigHome}/keys</KeyDir>
			<!-- LiveStreamPacketizers (separate with commas): cupertinostreamingpacketizer, smoothstreamingpacketizer, cupertinostreamingrepeater, smoothstreamingrepeater -->
			<LiveStreamPacketizers></LiveStreamPacketizers>			
			<!-- Properties defined here will override any properties defined in conf/Streams.xml for any streams types loaded by this application -->
			<Properties>
			</Properties>
		</Streams>
		<!-- HTTPStreamers (separate with commas): cupertinostreaming, smoothstreaming -->
		<HTTPStreamers>sanjosestreaming,cupertinostreaming,smoothstreaming</HTTPStreamers>			
		<SharedObjects>
			<StorageDir></StorageDir>
		</SharedObjects>
		<Client>
			<IdleFrequency>-1</IdleFrequency>
			<Access>
				<StreamReadAccess>*</StreamReadAccess>
				<StreamWriteAccess>*</StreamWriteAccess>
				<StreamAudioSampleAccess></StreamAudioSampleAccess>
				<StreamVideoSampleAccess></StreamVideoSampleAccess>
				<SharedObjectReadAccess>*</SharedObjectReadAccess>
				<SharedObjectWriteAccess>*</SharedObjectWriteAccess>
			</Access>
		</Client>
		<RTP>
			<!-- RTP/Authentication/[type]Methods defined in Authentication.xml. Default setup includes; none, basic, digest -->
			<Authentication>
				<PublishMethod>none</PublishMethod>
				<PlayMethod>none</PlayMethod>
			</Authentication>
			<!-- RTP/AVSyncMethod. Valid values are: senderreport, systemclock, rtptimecode -->
			<AVSyncMethod>senderreport</AVSyncMethod>
			<MaxRTCPWaitTime>12000</MaxRTCPWaitTime>
			<RTSPSessionTimeout>90000</RTSPSessionTimeout>
			<RTSPMaximumPendingWriteBytes>0</RTSPMaximumPendingWriteBytes>
			<RTSPBindIpAddress>10.249.35.81</RTSPBindIpAddress>
			<RTSPConnectionIpAddress>174.129.153.104</RTSPConnectionIpAddress>
			<RTSPOriginIpAddress>174.129.153.104</RTSPOriginIpAddress>
			<IncomingDatagramPortRanges>*</IncomingDatagramPortRanges>
			<!-- Properties defined here will override any properties defined in conf/RTP.xml for any depacketizers loaded by this application -->
			<Properties>
			</Properties>
		</RTP>
		<MediaCaster>
			<!-- Properties defined here will override any properties defined in conf/MediaCasters.xml for any MediaCasters loaded by this applications -->
			<Properties>
			</Properties>
		</MediaCaster>
		<MediaReader>
			<!-- Properties defined here will override any properties defined in conf/MediaReaders.xml for any MediaReaders loaded by this applications -->
			<Properties>
			</Properties>
		</MediaReader>
		<LiveStreamPacketizer>
			<!-- Properties defined here will override any properties defined in conf/LiveStreamPacketizers.xml for any LiveStreamPacketizers loaded by this applications -->
			<Properties>
			</Properties>
		</LiveStreamPacketizer>
		<HTTPStreamer>
			<!-- Properties defined here will override any properties defined in conf/HTTPStreamers.xml for any HTTPStreamer loaded by this applications -->
			<Properties>
			</Properties>
		</HTTPStreamer>
		<Repeater>
			<OriginURL></OriginURL>
			<QueryString><![CDATA[]]></QueryString>
		</Repeater> 
		<Modules>
			<Module>
				<Name>base</Name>
				<Description>Base</Description>
				<Class>com.wowza.wms.module.ModuleCore</Class>
			</Module>
			<Module>
				<Name>properties</Name>
				<Description>Properties</Description>
				<Class>com.wowza.wms.module.ModuleProperties</Class>
			</Module>
			<Module>
				<Name>logging</Name>
				<Description>Client Logging</Description>
				<Class>com.wowza.wms.module.ModuleClientLogging</Class>
			</Module>
			<Module>
				<Name>flvplayback</Name>
				<Description>FLVPlayback</Description>
				<Class>com.wowza.wms.module.ModuleFLVPlayback</Class>
			</Module> 
		</Modules>
		<!-- Properties defined here will be added to the IApplication.getProperties() and IApplicationInstance.getProperties() collections -->
		<Properties>
		</Properties>
	</Application>
</Root>

Chalrie

Yes, as long as the content of the file is any of these audio/video formats: H.264, AAC, MP3.

Charlie