Wowza Community

Re-streaming an RTSP stream through Wowza Pro (RTSP/RTP)

Wowza Media Server and the Flash player only support H.264/AAC. So neither MPEG-2 or MPEG-4 are going to work properly. We do not have a way to transcode the stream on the fly. Some folks have had luck using VLC to accomplish this but it is very tricky to setup and not super stable.

Charlie

It sounds like you application is not setup properly. You should not be getting packet loss if you are using interleaved mode. Post your Application.xml file so we can take a look at it.

Charlie

What do you seen in the logs when Wowza connects to the stream? If you are truley using interleaved mode the log entries should look different. Post the log entries that show the connection since you have changed this setting.

Charlie

We always suggest interleaving. It was just misconfigured (commented out) in your config. It avoids packet loss by sending the video/audio packets over lossless TCP rather then UDP.

Charlie

Take a look at the stream alias package. It is here:

http://www.wowza.com/community/t/-/47

It will enable you to turn the complex rtsp url into a simple stream name. Then I think the whole JW Player thing will make more sense.

Charlie

It is really hard to tell. Do you have a streamTimeout set for the stream? See this post, issue #5:

http://www.wowza.com/community/t/-/57

That will force Wowza to reconnect to the stream if the stream does not show up after a timeout period. There is also a chance the camera is dropping packets because it can’t send them fast enough over the 3G connection. It might be dropping so many packets that Flash just can’t render the video. I might suggest trying a super, super low bit rate stream to see if that works. I might also suggest you try turning on packet loss logging. The instructions are here:

http://www.wowza.com/community/t/-/51

I would also suggest you upgrade to the latest patch (not that it will fix this problem, but…):

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

Charlie

Looks like there is tons of packet loss. I am not sure what to do. There are several hardware devices that will stream video over multiple cellular connections using multiple carriers. That is probably a better way to go.

Charlie

There are three modes of RTSP/RTP that I know of:

  • RTSP/RTP where the RTP part is over UDP

  • RTSP/RTP interleaved where the RTP part is streamed over the TCP connection

  • RTSP/RTP over HTTP which is similar to interleaved mode with the exception that RTSP packets are made to look like HTTP

    Wowza supports the first two. We do not support the third. It might be that the carrier is blocking or throttling the RTSP/RTP that smells like RTSP/RTP. So that is why the third option might work better. The problem is we don’t support this mode.

    Charlie

I suggest going back to the first post in this thread. It describes how to setup re-streaming of RTSP/RTP through Wowza. From the log statements it looks like Wowza can’t reach the camera.

If you want to stream using UDP then be sure ‘forceInterleaved’ is set to false.

Charlie

I don’t have any experience with this exact setup. I guess I would track the connection along the path to see where the packets are getting blocked. I guess that is where I would start.

Charlie

It sounds like packet loss. Try following instructions here:

http://www.wowza.com/community/t/-/72

It will turn on a jitter buffer and log packet loss.

Charlie

I just tried this camera in Wowza Server 2.0 and Wowza Pro 1.7.2 (same version as you are using) and it works for me. My Application.xml for 1.7.2 looks like this:

<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>rtp-live</StreamType>
			<StorageDir>${com.wowza.wms.context.VHostConfigHome}/content</StorageDir>
			<Properties>
				<!-- Properties defined here will override any properties defined in conf/Streams.xml for any streams types loaded by this application -->
				<!--
				<Property>
					<Name></Name>
					<Value></Value>
				</Property>
				-->
			</Properties>
		</Streams>
		<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/Methods defined in Authentication.xml. Default setup includes; none, basic, digest -->
			<Authentication>
				<Method>digest</Method>
			</Authentication>
			<!-- RTP/AVSyncMethod. Valid values are: senderreport, systemclock, rtptimecode -->
			<AVSyncMethod>senderreport</AVSyncMethod>
			<MaxRTCPWaitTime>12000</MaxRTCPWaitTime>
			<Properties>
				<!-- Properties defined here will override any properties defined in conf/RTP.xml for any depacketizers loaded by this application -->
				<!--
				<Property>
					<Name></Name>
					<Value></Value>
				</Property>
				-->
			</Properties>
		</RTP>
		<MediaCaster>
			<Properties>
				<!-- Properties defined here will override any properties defined in conf/MediaCasters.xml for any MediaCasters loaded by this applications -->
				<!--
				<Property>
					<Name></Name>
					<Value></Value>
				</Property>
				-->
			</Properties>
		</MediaCaster>
		<MediaReader>
			<Properties>
				<!-- Properties defined here will override any properties defined in conf/MediaReaders.xml for any MediaReaders loaded by this applications -->
				<!--
				<Property>
					<Name></Name>
					<Value></Value>
				</Property>
				-->
			</Properties>
		</MediaReader>
		<Repeater>
			<OriginURL></OriginURL>
			<QueryString></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>
			<!-- Properties defined here will be added to the IApplication.getProperties() and IApplicationInstance.getProperties() collections -->
			<!--
			<Property>
				<Name></Name>
				<Value></Value>
			</Property>
			-->
		</Properties>
	</Application>
</Root>

If this is some other strange network issue based on your network topology/setup/firewall/proxy then I am not sure how to help.

Charlie

You should use rtp-live not rtp-live-lowlatency. I didn’t realize that was in there.

I only ran the stream for a few seconds. I just tried it again for 9-10 minutes and it ran without issue for me.

Charlie

We are considering such features but no definitive plans.

Charlie

You are best off moving to Wowza Media Server 2. The instructions are here:

https://www.wowza.com/docs/how-to-re-stream-video-from-an-ip-camera-rtsp-rtp-re-streaming

If you want to play in mplayer or vlc then it is best to use RTSP/RTP out which is only supported in Wowza Server 2.

I really don’t understand the second question.

Charlie

You can use any of the players such as JWPlayer, FlowPlayer… They all work. They are all players that use the Adobe Flash player.

We have an extensive API. What you need to do is most likely there. I still am not exactly sure what you are interested in doing. Are you trying to start a publishing stream? What encoder are you using? I would need more detail to understand that you are talking about. Or, are you trying to do server-side streaming. Do you need to setup a TV channel like experience.

Charlie

It sounds like yoiu are trying to stream a video/audio format that we do not support. Please describe in detail the source of the video/audio and the format/codecs that are being used. What is the make/model of the camera or encoder? What settings are you using?

Charlie

You will need to suppress the audio in the camera. See if there is a way to turn off audio in the camera.

Charlie

Very nice thing to say. We try.

Charlie

The instructions are here:

https://www.wowza.com/docs/how-to-re-stream-video-from-an-ip-camera-rtsp-rtp-re-streaming

Charlie