Problems, to get external an external RTSP source working.

Hello *,

I’ve problems to get an external RTSP Source working.

  • I can’t see a video signal in Flash.

  • The RTSP-Control seems to work, if I look to wireshark.

  • I can see incoming RTP-Packets in wireshark.

  • I can’t get the stream out of the server. (tried rtsp, http, rtmp, …)

  • I used the live-Stream-example app, and changed the config a bit: like logging, Ports for firewalls, timeouts. Details, See Application.xml

  • The same Configuration is working with another video Source (axis-Video encoder)

  • The Server sends a teardown after the Stream duration has MediaCaster/Properties/Property/streamTimeout is reached.

(If I set this pram to 0, I can see incoming RTP-Packets a long time.

  • The external Source is working without Wowza in the VLC player.

  • It is not possible, to make this VideoSouce available over the Internet.

Has anybody an Idea, what else I should try now?

Thanks for any helping answer…

Adorn

Try to access the external RTSP Source/LogFile:

INFO server server-start Wowza Media Server 2 Perpetual 2.2.4.02 build27525 -
[….]
INFO vhost comment _defaultVHost_ Bind attempt ([any]:1935:4)
INFO vhost comment _defaultVHost_ Bind successful ([any]:1935)
INFO vhost comment _defaultVHost_ Bind attempt ([any]:8086:1)
INFO vhost comment _defaultVHost_ Bind successful ([any]:8086)
INFO server comment - Wowza Media Server is started!

INFO application app-start _definst_ live/_definst_
INFO session connect-pending 127.0.0.1 -
INFO session connect 127.0.0.1 -
INFO stream create - -
INFO server comment - MediaStreamMediaCasterPlay: startPlay
INFO server comment - RTPMediaCaster.create[7198945]
INFO server comment - RTPMediaCaster.init[7198945]
INFO server comment - RTPMediaCaster.Reconnector[7198945:live/_definst_:mystream.stream]: start: 1
INFO server comment - RTPSessionDescriptionDataProviderBasicRTSPWorker.doConnect: hostname: 192.168.1.2 port:554 timeout:4 rtspBindIpAddress:null path:/channel01
INFO server comment - RTPSessionDescriptionDataProviderBasicRTSPWorker.send(open): command:DESCRIBE:rtsp:// 192.168.1.2/channel01
DESCRIBE rtsp://192.168.1.2/channel01 RTSP/1.0
CSeq: 1
Accept: application/sdp
User-Agent: Wowza Media Server Pro (Wowza Media Server 2 Perpetual 2.2.4.02 build27525)

INFO server comment - RTPSessionTracker.add[rtsp://192.168.1.2/channel01]: 1
INFO server comment - *** RTSPMessageReceive ***
RTSP/1.0 401 Unauthorized
response: Unauthorized
protocol: RTSP/1.0
www-authenticate: Basic realm="/"
cseq: 1
status: 401
uri: RTSP/1.0 401 Unauthorized

INFO server comment - RTPSessionDescriptionDataProviderBasicRTSPWorker.processResponse: command:DESCRIBE response:RTSP/1.0 401 Unauthorized status:401 handled:false
INFO server comment - RTPSessionDescriptionDataProviderBasicRTSPWorker.send: command:DESCRIBE
DESCRIBE rtsp://192.168.1.2/channel01 RTSP/1.0
CSeq: 2
Accept: application/sdp
User-Agent: Wowza Media Server Pro (Wowza Media Server 2 Perpetual 2.2.4.02 build27525)
Authorization: Basic ABCDEFGHIJKLMNO=

INFO server comment - *** RTSPMessageReceive ***
RTSP/1.0 200 OK
content-type: application/sdp
response: OK
protocol: RTSP/1.0
cseq: 2
status: 200
content-length: 306
content-base: rtsp://192.168.1.2/channel01
uri: RTSP/1.0 200 OK

INFO server comment - RTPSessionDescriptionDataProviderBasicRTSPWorker.processResponse: command:DESCRIBE response:RTSP/1.0 200 OK status:200 handled:false
INFO server comment - v=0
o=- 875132681 1208974961 IN IP4 192.168.1.2
s=H264 Stream 1
c=IN IP4 0.0.0.0
t=0 0
a=range:npt=now-
m=video 0 RTP/AVP 96
a=control:rtsp://192.168.1.2/channel01/livevideo
a=rtpmap:96 H264/90000
a=fmtp:96 profile-level-id=42E01E;sprop-parameter-sets=Z0LgHtoC0Em/8AEAAPEAAA4QAAK/IIQ=,aM4zyA==

INFO server comment - DESCRIBE: SDP: trackCount:1 trackNames:[rtsp://192.168.1.2/channel01/livevideo,header]
INFO server comment - RTPSessionDescriptionDataProviderBasicRTSPWorker.send: command:SETUP
SETUP rtsp://192.168.1.2/channel01/livevideo RTSP/1.0
Transport: RTP/AVP/UDP;unicast;client_port=49998-49999
CSeq: 3
Authorization: Basic ABCDEFGHIJKLMNO=

ERROR server comment - RTPSessionDescriptionDataProviderBasicRTSPWorker.processResponse: CSeq less than zero
INFO server comment - *** RTSPMessageReceive ***
RTSP/1.0 200 OK
response: OK
protocol: RTSP/1.0
transport: RTP/AVP;unicast;client_port=49998-49999
session: 00010000; timeout=30
cseq: 3
status: 200
uri: RTSP/1.0 200 OK

INFO server comment - RTPSessionDescriptionDataProviderBasicRTSPWorker.processResponse: command:SETUP response:RTSP/1.0 200 OK status:200 handled:false
INFO server comment - v=0
o=- 875132681 1208974961 IN IP4 192.168.1.2
s=H264 Stream 1
t=0 0
a=range:npt=now-
m=video 49998 RTP/AVP 96
a=control:rtsp://192.168.1.2/channel01/livevideo
a=rtpmap:96 H264/90000
a=fmtp:96 profile-level-id=42E01E;sprop-parameter-sets=Z0LgHtoC0Em/8AEAAPEAAA4QAAK/IIQ=,aM4zyA==

INFO server comment - RTPSessionDescriptionDataProviderBasicRTSPWorker.buildSDPData: sessionId:00010000 sessionTimeout:30000
INFO server comment - RTPSessionDescriptionDataProviderBasic.getStreamInfo[live/_definst_]: RTSP/RTP re-streaming. Success, received SDP data.
INFO stream create - -
INFO server comment - RTPDePacketizerWrapperPacketSorter.init: rtpDePacketizerPacketSorterBufferTime: 500
INFO server comment - RTPDePacketizerWrapperPacketSorter.init: rtpDePacketizerPacketSorterFlushTime: 10
INFO server comment - RTPDePacketizerWrapperPacketSorter.init: rtpDePacketizerPacketSorterLogPacketLoss: true
INFO server comment - RTPUDPTransport.bind[live/_definst_]: 0.0.0.0/0.0.0.0:49998
INFO server comment - RTPUDPTransport.bind[live/_definst_]: 0.0.0.0/0.0.0.0:49999
INFO stream publish mystream.stream -
INFO server comment - RTPSessionDescriptionDataProviderBasicRTSPWorker.sessionStart: PLAY: rtsp://192.168.1.2/channel01
INFO server comment - RTPSessionDescriptionDataProviderBasicRTSPWorker.processResponse: PLAY: rtsp://192.168.1.2/channel01
INFO server comment - RTPSessionDescriptionDataProviderBasicRTSPWorker.send: command:PLAY
PLAY rtsp://192.168.1.2/channel01 RTSP/1.0
Session: 00010000
CSeq: 4
Authorization: Basic ABCDEFGHIJKLMNO=
Range: npt=0.000-

INFO server comment - RTPMediaCaster.Reconnector[2882193:live/_definst_:mystream.stream]: done: 1
INFO server comment - *** RTSPMessageReceive ***
RTSP/1.0 200 OK
response: OK
protocol: RTSP/1.0
range: npt=now-
session: 00010000
cseq: 4
status: 200
uri: RTSP/1.0 200 OK

INFO server comment - RTPSessionDescriptionDataProviderBasicRTSPWorker.processResponse: command:PLAY response:RTSP/1.0 200 OK status:200 handled:false
INFO server comment - RTPSessionDescriptionDataProviderBasicRTSPWorker.send(open): command:OPTIONS
INFO server comment - *** RTSPMessageReceive ***
RTSP/1.0 200 OK
response: OK
protocol: RTSP/1.0
cseq: 5
status: 200
public: DESCRIBE, PLAY, PAUSE, SETUP, TEARDOWN
uri: RTSP/1.0 200 OK

INFO server comment - RTPSessionDescriptionDataProviderBasicRTSPWorker.processResponse: command:OPTIONS response:RTSP/1.0 200 OK status:200 handled:false
INFO server comment - UDPTransport.firstPacket: bind:0.0.0.0/0.0.0.0:49998 msg:/192.168.1.2:64112
INFO server comment - RTPSessionDescriptionDataProviderBasicRTSPWorker.send(open): command:OPTIONS
INFO server comment - *** RTSPMessageReceive ***
RTSP/1.0 200 OK
response: OK
protocol: RTSP/1.0
cseq: 6
status: 200
public: DESCRIBE, PLAY, PAUSE, SETUP, TEARDOWN
uri: RTSP/1.0 200 OK

INFO server comment - RTPSessionDescriptionDataProviderBasicRTSPWorker.processResponse: command:OPTIONS response:RTSP/1.0 200 OK status:200 handled:false

[….] //  Sometimes, the Server recognizes a package loss:

WARN server comment - RTPDePacketizerWrapperPacketSorter.packetLoss[live/_definst_/mystream.stream:rtsp:// 192.168.1.2/channel01/livevideo]: last:51461 curr:51462

The Application.XML:

<Root>
	<Application>

		<Connections>
			<AutoAccept>true</AutoAccept>
			<AllowDomains/>
		</Connections>

		<Streams>
			<StreamType>rtp-live</StreamType>
			<StorageDir>${com.wowza.wms.context.VHostConfigHome}/content</StorageDir>
			<KeyDir>${com.wowza.wms.context.VHostConfigHome}/keys</KeyDir>
			<LiveStreamPacketizers>cupertinostreamingpacketizer,smoothstreamingpacketizer,sanjosestreamingpacketizer</LiveStreamPacketizers>			
		</Streams>
		<SharedObjects>
			<StorageDir/>
		</SharedObjects>
		<Client>
			<IdleFrequency>-1</IdleFrequency>
			<Access>
				<StreamReadAccess>*</StreamReadAccess>
				<StreamWriteAccess>*</StreamWriteAccess>
				<StreamAudioSampleAccess/>
				<StreamVideoSampleAccess/>
				<SharedObjectReadAccess>*</SharedObjectReadAccess>
				<SharedObjectWriteAccess>*</SharedObjectWriteAccess>
			</Access>
		</Client>
		<RTP>
			<Authentication>
				<PublishMethod>digest</PublishMethod>
				<PlayMethod>none</PlayMethod>
			</Authentication>
			<AVSyncMethod>systemclock</AVSyncMethod>
			<MaxRTCPWaitTime>120000</MaxRTCPWaitTime>
			<IdleFrequency>75</IdleFrequency>
			<RTSPSessionTimeout>90000</RTSPSessionTimeout>
			<RTSPMaximumPendingWriteBytes>0</RTSPMaximumPendingWriteBytes>
			<RTSPBindIpAddress></RTSPBindIpAddress>
			<RTSPConnectionIpAddress>0.0.0.0</RTSPConnectionIpAddress>
			<RTSPOriginIpAddress>127.0.0.1</RTSPOriginIpAddress>
			<IncomingDatagramPortRanges>4998-4999</IncomingDatagramPortRanges>
			<DatagramStartingPort>4998</DatagramStartingPort>
			<DatagramPortSharing>false</DatagramPortSharing>

			<Properties>
				<Property>
					<Name>rtpDePacketizerWrapper</Name>
					<Value>com.wowza.wms.rtp.depacketizer.RTPDePacketizerWrapperPacketSorter</Value>
				</Property>
				<Property>
					<Name>rtpDePacketizerPacketSorterBufferTime</Name>
					<Value>500</Value>
					<Type>Integer</Type>
				</Property>
				<Property>
					<Name>rtpDePacketizerPacketSorterFlushTime</Name>
					<Value>10</Value>
					<Type>Integer</Type>
				</Property>
				<Property>
					<Name>rtpDePacketizerPacketSorterLogPacketLoss</Name>
					<Value>true</Value>
					<Type>Boolean</Type>
				</Property>
			</Properties>
		</RTP>
		
		<MediaCaster>
			<Properties>
				<Property>
					<Name>rtspValidationFrequency</Name>
					<Value>10000</Value>
					<Type>Integer</Type>
				</Property>
				<Property>
					<Name>streamTimeout</Name>
					<Value>1000000</Value>
					<Type>Integer</Type>
				</Property>
			
				<Property>
					<Name>rtpIgnoreProfileLevelId</Name>
					<Value>true</Value>
					<Type>Boolean</Type>
				</Property>
			
				<Property>
					<Name>rtspFilterUnknownTracks</Name>
					<Value>true</Value>
					<Type>Boolean</Type>
				</Property>
			
				<Property>
					<Name>debugRTSPSession</Name>
					<Value>true</Value>
					<Type>Boolean</Type>
				</Property>
			
				<Property>
					<Name>forceInterleaved</Name>
					<Value>false</Value>
					<Type>Boolean</Type>
				</Property>
			</Properties>
		</MediaCaster>
		
		<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>
	</Application>
</Root>

It looks okay from what you show. Try adding forceInterleaved Property to the Application.xml /MediaCasters Properties list

<Property>
	<Name>forceInterleaved</Name>
	<Value>true</Value>
	<Type>Boolean</Type>
</Property>

If that doesn’t help, can you put the encoderr and stream on a public ip and send url to support@wowza.com

Include the exact make/model of the encoder or camera and any info you have

Richard

Let us know when you can.

Thanks,

Richard

Hi Richard!

Thanks for the fast answer.

I tried TCP-Interleaved allready, does not work. (Also in the VLC-Player). I’ll try to get a public test source (may be I’ll can solve it with a Packet capture/replay tool.)

Adorn

Hi Richard!

I got some more Informations:

Behind the source is a Siqura C-60 Video Encoder. and a VideoProxy Server.

Getting a Testsource is not so easy…maybe I can get such an device…

Regards

Adorn