Results 1 to 7 of 7

Thread: Android 4.1.1 and RTSP

  1. #1

    Default Android 4.1.1 and RTSP

    Hi all,

    I have a android app that plays some rtsp stream. All was working good until I tested it on Samsung S3 which is updated to jelly bean (4.1.1). How RTSP is brokean somehow and i blame GOOGLE.
    I tried this http://www.wowza.com/forums/content....P-RTP-playback , and found here a http link. This link does the job on 4.1.1 android os, but i need to know what this is (video and audio codec)?! Is it Apple HTTP or some other? How can i produce it? Is it just a LiveStreamPacketizer here in work?
    If someone knows what is going on or what are video and audio codec in those videos i will be very grateful!!!

    Thaks,
    Jovan

  2. #2
    Join Date
    Sep 2011
    Posts
    1,933

    Default

    Hi
    I'm not too familiar with the android operating systems and compatibility but I think in this case adding cupertinostreamingpacketizer to the <LiveStreamPacketizers> in the Application.xml is worth trying.
    I think that the link for this is also the same as the Apple iOS device link.

    So if using an application called live and a stream called mystream it would be,
    http://[wowza-ip-address]:1935/live/myStream/playlist.m3u8
    Unfortunately I haven't tested this as I don't have an android phone so please let us know how you get on.

    Jason

  3. #3

    Default

    Hi
    I tried this and some other things for a last couple of days, but nothing works. When i try this code:
    http://[wowza-ip-address]:1935/live/myStream/playlist.m3u8
    this error appears in logs:
    HTTPStreamerAdapterCupertinoStreamer.onPlaylist: Application context not loaded [live/Iva/Iva_aac/playlist.m3u8]: live/Iva - - - 509253.978

    Before that, just before log line onAppStart, i saw this line:
    ApplicationInstance.setHTTPStreamerList[live/Iva]: HTTPStreamer is not valid: cupertinostreamingpacketizer

  4. #4
    Join Date
    Sep 2011
    Posts
    1,933

    Default

    Hi
    Can you post the Application.xml for us to take a look at I think there may be a mistake with the configuration.

    Thanks
    Jason

  5. #5

    Default

    Here you go (RTP Property are all commented):
    <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>live-lowlatency</StreamType>
    			<StorageDir>${com.wowza.wms.context.VHostConfigHome}/content</StorageDir>
    			<KeyDir>${com.wowza.wms.context.VHostConfigHome}/keys</KeyDir>
    			<!-- LiveStreamPacketizers (separate with commas): cupertinostreamingpacketizer, smoothstreamingpacketizer, sanjosestreamingpacketizer, cupertinostreamingrepeater, smoothstreamingrepeater, sanjosestreamingrepeater, dvrstreamingpacketizer, dvrstreamingrepeater -->
    			<LiveStreamPacketizers>cupertinostreamingpacketizer,sanjosestreamingpacketizer</LiveStreamPacketizers>
    			<!-- Properties defined here will override any properties defined in conf/Streams.xml for any streams types loaded by this application -->
    			<Properties>				
    				<Property>
    					<Name>flushInterval</Name>
    					<Value>25</Value>
    					<Type>Integer</Type>
    				</Property>
    				<Property>
    					<Name>onFlushNotifyClients</Name>
    					<Value>true</Value>
    					<Type>Boolean</Type>
    				</Property>			
    			</Properties>
    		</Streams>
    		<Transcoder>
    			<!-- To turn on transcoder set to: transcoder -->
    			<LiveStreamTranscoder></LiveStreamTranscoder>
    			<!-- [templatename].xml or ${SourceStreamName}.xml -->
    			<Templates>audioonly.xml</Templates>
    			<ProfileDir>${com.wowza.wms.context.VHostConfigHome}/transcoder/profiles</ProfileDir>
    			<TemplateDir>${com.wowza.wms.context.VHostConfigHome}/transcoder/templates</TemplateDir>
    			<Properties>
    			</Properties>
    		</Transcoder>
    
    		<DVR>
    			<!-- As a single server or as an origin, use dvrstreamingpacketizer in LiveStreamPacketizers above -->
    			<!-- Or, in an origin-edge configuration, edges use dvrstreamingrepeater in LiveStreamPacketizers above -->
    			<!-- As an origin, also add dvrchunkstreaming to HTTPStreamers below -->
    
    			<!-- To turn on DVR recording set Recorders to dvrrecorder.  This works with dvrstreamingpacketizer  -->
    			<Recorders></Recorders>
    
    			<!-- As a single server or as an origin, set the Store to dvrfilestorage-->
    			<!-- edges should have this empty -->
    			<Store></Store>
    
    			<!--  Window Duration is length of live DVR window in seconds.  0 means the window is never trimmed. -->
    			<WindowDuration>0</WindowDuration>
    
    			<!-- Storage Directory is top level location where dvr is stored.  e.g. c:/temp/dvr -->
    			<StorageDir>${com.wowza.wms.context.VHostConfigHome}/dvr</StorageDir>
    
    			<!-- valid ArchiveStrategy values are append, version, delete -->
    			<ArchiveStrategy>append</ArchiveStrategy>
    
    			<!-- If this is a dvrstreamingrepeater, define ChunkOriginURL to point back to origin -->
    			<!-- And define Application/Repeater/OriginURL to point back to the origin -->
    			<Repeater>
    				<ChunkOriginURL></ChunkOriginURL>
    			</Repeater>
    
    			<!-- Properties for DVR -->
    			<Properties>
    			</Properties>
    		</DVR>
    
    		<!-- HTTPStreamers (separate with commas): cupertinostreaming, smoothstreaming, sanjosestreaming, dvrchunkstreaming -->
    		<HTTPStreamers>cupertinostreamingpacketizer,sanjosestreaming</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>digest</PublishMethod>
    				<PlayMethod>none</PlayMethod>
    			</Authentication>
    			<!-- RTP/AVSyncMethod. Valid values are: senderreport, systemclock, rtptimecode -->
    			<AVSyncMethod>senderreport</AVSyncMethod>
    			<MaxRTCPWaitTime>12000</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>*</IncomingDatagramPortRanges>
    			<!-- Properties defined here will override any properties defined in conf/RTP.xml for any depacketizers loaded by this application -->
    			<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>
    				<Property>
    					<Name>logIncompleteMPEGTSVideoFrames</Name>
    					<Value>true</Value>
    					<Type>Boolean</Type>
    				</Property>-->
    				<!--<Property>
    					<Name>forceMPEGTSOut</Name>
    					<Value>true</Value>
    					<Type>Boolean</Type>
    				</Property>
    				<Property>
    					<Name>rtpWrapMPEGTS</Name>
    					<Value>true</Value>
    					<Type>Boolean</Type>
    				</Property>-->
    			</Properties>
    		</RTP>
    		<MediaCaster>
    			<RTP>
    				<RTSP>
    					<!-- udp, interleave -->
    					<RTPTransportMode>interleave</RTPTransportMode>
    				</RTSP>
    			</RTP>
    			<!-- 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>
    		<MediaWriter>
    			<!-- Properties defined here will override any properties defined in conf/MediaWriter.xml for any MediaWriter loaded by this applications -->
    			<Properties>
    			</Properties>
    		</MediaWriter>
    		<LiveStreamPacketizer>
    			<!-- Properties defined here will override any properties defined in conf/LiveStreamPacketizers.xml for any LiveStreamPacketizers loaded by this applications -->
    			<Properties>
    				<Property>
    					<Name>cupertinoChunkDurationTarget</Name>
    					<Value>10000</Value>
    					<Type>Integer</Type>
    				</Property>
    				<Property>
    					<Name>cupertinoMaxChunkCount</Name>
    					<Value>10</Value>
    					<Type>Integer</Type>
    				</Property>
    				<Property>
    					<Name>cupertinoPlaylistChunkCount</Name>
    					<Value>3</Value>
    					<Type>Integer</Type>
    				</Property>
    				<Property>
    					<Name>cupertinoRepeaterChunkCount</Name>
    					<Value>3</Value>
    					<Type>Integer</Type>
    				</Property>
    			</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>
    			<Module>
    				<Name>AppClass</Name>
    				<Description>My first class</Description>
    				<Class>live.AppClass</Class>
    			</Module>
    			<Module>
    				<Name>User</Name>
    				<Description>User class</Description>
    				<Class>live.User</Class>
    			</Module>
    			<Module>
    				<Name>MySQL</Name>
    				<Description>SQL class</Description>
    				<Class>live.MySQL</Class>
    			</Module><Module>
    				<Name>OperatorsThread</Name>
    				<Description>Operators class</Description>
    				<Class>live.OperatorsThread</Class>
    			</Module>
    			<Module>
    				<Name>MessageThread</Name>
    				<Description>Message class</Description>
    				<Class>live.MessageThread</Class>
    			</Module>
    		</Modules>
    		<!-- Properties defined here will be added to the IApplication.getProperties() and IApplicationInstance.getProperties() collections -->
    		<Properties>
    		</Properties>
    	</Application>
    Thanks Jason for the time

  6. #6
    Join Date
    Sep 2011
    Posts
    1,933

    Default

    Hi
    Ah, I see the problem you have :
    <HTTPStreamers>cupertinostreamingpacketizer,sanjosestreaming</HTTPStreamers>
    It should be:

    <HTTPStreamers>cupertinostreaming, sanjosestreaming</HTTPStreamers>
    You're welcome I'm glad I could help
    That should fix your issues.

    Jason

  7. #7

    Default

    OOOOO thanks JASON!!!
    I just copy it from above...i didn't think!!!
    Thanks again...

Similar Threads

  1. RTSP for Android using NGRP?
    By shueardm in forum Live Streaming and Encoders
    Replies: 2
    Last Post: 03-13-2014, 03:51 PM
  2. RTSP, Android
    By SFGMedia in forum General Forum
    Replies: 1
    Last Post: 10-23-2013, 11:18 AM
  3. RTSP no sound (VLC, Android), also with Wowza RTSP demo page
    By luvolondon in forum Wowza Media Server 3 for Amazon EC2 Discussion
    Replies: 5
    Last Post: 04-29-2013, 12:44 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •