Wowza Community

Not streaming on ipad/iphone, but everything else works fine

Please I am using Adobe media flash encoder with settings:

FMS URL: rmtp://ipaddress:1935/live/myStream

Stream: myStream

where live is my application name and myStream is the stream name.

I selected for video: H.264 and audio: mp3

In my jwplayer I set ‘http://ipAddress:1935/myStream/live/playlist.m3u8’ for file.

When I run it on a ipad I get this error in the log file:

WARN server comment 2012-09-19 11:26:51 - 2.278 - live MediaReaderH264.open[1]: java.io.FileNotFoundException: C:\inetpub\wwwroot\xxxxx\videos\live (Access is denied)

ERROR server comment 2012-09-19 11:26:51 - 2.278 - MediaReaderH264Cupertino.indexFile:java.lang.NullPointerException

Everything works well every where else but on ipad and iphone it doesn’t. I have set this folder publice but still doesn’t work.

What am I doing wrong? Can anyone please help?

Thanks

Hi

Here is the tutorial for live streaming,

https://www.wowza.com/docs/how-to-set-up-live-streaming-using-an-rtmp-based-encoder

FMLE setup should look like this:

FMS URL: rmtp://wowza-address:1935/live/

Stream: myStream

You should be able to play the stream using this url for JWPlayer

rtmp://[wowza-address]:1935/live/myStream/

Jason

For HTTP streaming with MediaCaster source, use StreamType “live” and start the stream in StreamManager. Otherwise it will only be packetizing for iOS, etc, when a Flash application is connected, as you observed.

https://www.wowza.com/docs/how-to-set-up-live-streaming-using-a-native-rtp-encoder-with-sdp-file

Richard

Does it playback in Flash? Test with /examples/LiveVideoStreaming/client/live.html

Server: rtmp://[wowza-address]:1935/live

Stream: myStream

Stream names are case-sensitive, make sure you use the exact same name to playback that you are publishing?

What are the settings in FMLE, the FMS URL and stream name?

When you start the stream in FMLE do you see a publish event in Wowza?

It is helpful to run Wowza in stand-alone (/bin/startup.bat) mode during testing and development so you can see log output in the console

Richard

And what version of Wowza are you using?

Have you mixed configuration files from one version of Wowza with .jar files from another?

Are you using nDVR?

Make sure you are using h.264 video (not VP6).

Richard

Also, here is the Wowza / JW Player tutorial for RTMP (desktop) with HTML5 (iPhone/iPad) failover:

https://www.wowza.com/docs/how-to-use-longtail-jw-player-5-with-wowza-media-server

Not sure where you are getting your JW Player code – it’s definitely not the same as the example link I posted earlier, or the sample at the JW Player site:

http://www.longtailvideo.com/support/jw-player/jw-player-for-flash-v5/18530/embedding-an-rtmp-stream-with-an-html5-fallback

I would try using that exact JW Player embed code (substituting your Wowza address, of course):

<script type='text/javascript' src='jwplayer.js'></script>
<div id='mediaplayer'></div>
<script type="text/javascript">
  jwplayer('mediaplayer').setup({
    'id': 'playerID',
    'width': '480',
    'height': '270',
    'provider': 'rtmp',
    'streamer': 'rtmp://[wowza-address]:1935/live',
    'file': 'myStream',
    'modes': [
        {type: 'flash', src: 'player.swf'},
	{type: 'html5', config:
		{
		'file': "http://[wowza-address]:1935/live/myStream/playlist.m3u8",
		provider: 'video'
		}
	}
    ]
  });
</script>

If you can, post the link too and maybe we can see if others can access it.

Do you have this line in your Application.xml file?

<LiveStreamPacketizers>cupertinostreamingpacketizer</LiveStreamPacketizers>

This is part of the tutorial linked earlier.

If you do have this line, and it still doesn’t work, post your Application.xml for us.

Yes, definitely make sure you are encoding at Baseline profile, level 3.0 if you want to target anything older than the iPhone 4. What generation iPhone/iPad are you testing on?

Are you recording with FMLE too? You could try loading the recorded file onto your device in iTunes – if that works, then you know it’s a Wowza settings problem, otherwise it is a problem with your FMLE settings. You could also inspect the recorded file with an application like MediaInfo to verify the profile and level.

And if you have made any changes to your Application.xml, be sure to restart Wowza to ensure the changes take effect.

Hi hfogwe,

Since JWPlayer is not a Wowza product, you will probably get the most up-to-date information by checking with the JWPlayer support resources.

We can help you verify that the Cupertino streaming works on your iDevice. Take a look at the VOD tutorial, and see the section “To play using an Apple iOS device” for the correct playback URL which you can type into your Safari browser URL bar.

hfogwe, EricBanker,

If you wish to use Wowza nDVR AddOn, it requires some additional configuration in Application.xml which I do not see in your posts. This message indicates that the nDVR AddOn is not configured properly.

comment	server	WARN	200	-	Missing function: DVRSetStreamInfo

Follow these steps for basic nDVR AddOn configuration. The Wowza nDVR functionality is different than FMLE’s “DVR Auto Record” functionality that you might have checked on in FMLE’s “Encoding Options” tab.

First try playing back with the nDVR example players in [install-dir]/examples/LiveDvrStreaming. There is a Silverlight and Strobe example provided. This same tutorial has sample iOS playback URLs and troubleshooting tests.

If you are still having trouble, please send a zip of [install-dir]/conf and logs to support@wowza.com, details of your live stream, your encoder settings, which sample player and playback URL and what step of the tutorial failed. Please also reference this thread.

-Lisa

hi hfogwe. we have the same problem as you way back weeks ago, until yesterday. make sure that:

FMLE Settings:

Format: H.264 >Click the wrench icon and Pofile: Baseline | Level: 3.0 | Keyframe Frequency: 5 Seconds

Frame Rate: 15 and above (I used 25 fps)

Audio Format: Mp3 (AAC is better)

Channels: Stereo

Sample Rate: 44100 (48000 if AAC)

Bit Rate: 96 Kbps

FMS URL: rtmp://[Your Wowza IP Address here]/live

Stream: myStream


i agrre with susta004 with jwplayer script:

have you made sure that you started the FMLE? what is shown when you play the jwplayer?

and please also check the application.xml file located at /[wowza installation directory]/conf/live/Applicatiopn.xml in StreamPacketizer that it have the cupertinostreampacketizer. something like that.

we also did encounter the same error message (the video could not be loaded either because the server or network failed or because the format is not supported) and to found out that our FMLE settings is not correct (there are certain settings that iOS devices followed to play http streaming format) and that is setting the Profile to Main instead of Baseline (the one that you can see when clicking the wrench icon). Then we experimented setting it to Baseline and started FMLE, and viola! we can already view our livestream using an iPhone. (our output video in FMLE is set to size 320x240)

no, not Main profile. it should be Profile BASELINE and level 3.0. with this settings, even old version of iOS devices can view your live stream.

Thanks for ur contributions. I have made sure that my FMLE settings uses the Main profile on level 3.0 and set the video output size to 320X240. I also tried to play the recorded file (myStream.f4v) on ipad 3 but it didn’t work.

I restart wowza each time I made a changes on the Application.xml file.

I have attached my Application.axp file for just in case u.

I tried it on ipad 2 & 3 and on iphone 4

I don’t know what I’m doing wrong here and I really need help on this.

Thanks

Thanks JasonH & susta004 for getting back to me.

I have read the tutorial and changed the settings like u said. It still works well for other platforms but not on ipad/iphone.

I now get the follow error:

WARN server comment 2012-09-20 10:18:03 - - 48335.845 - - HTTPStreamerAdapterCupertinoStreamer.getAppInstance: Stream not found [live/myStream/playlist.m3u8]: myStream

WARN server comment 2012-09-20 10:21:14 - - 48526.322 - - HTTPStreamerAdapterCupertinoStreamer.getAppInstance: Stream not found [live/myStream/playlist.m3u8]: myStream

My setting now looks like this:

FMS URL: rmtp://ipaddress:1935/live

Stream: myStream

My player:

You need Flash or iOS to play this stream--

Can u please tell me what I am doing wrong?

Thanks.

I have copied and pasted ur example and only modified the links.

This is the link: http://www.lci-mediazone.com/test.aspx

On PCs it works well but on ipad it says that either the network failed or the format is not suported.

Error log:

2012-09-20 12:17:32 UTC comment server WARN 200 - HTTPStreamerAdapterCupertinoStreamer.getAppInstance: Stream not found [live/myStream/playlist.m3u8]: myStream - 213.769

Thanks

Can anyone please help me on this?

Here is my Application.xml

<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>live</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 -->
			<LiveStreamPacketizers>cupertinostreamingpacketizer,smoothstreamingpacketizer,sanjosestreamingpacketizer</LiveStreamPacketizers>			
			<!-- Properties defined here will override any properties defined in conf/Streams.xml for any streams types loaded by this application -->
			<Properties>
			</Properties>
		</Streams>
		<Transcoder>
			<!-- To turn on transcoder set to: transcoder -->
			<LiveStreamTranscoder></LiveStreamTranscoder>
			<!-- [templatename].xml or ${SourceStreamName}.xml -->
			<Templates>${SourceStreamName}.xml,transrate.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>cupertinostreaming,smoothstreaming,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>
			</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>
			</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>

I don’t think the jwplayer is the problem cos it works well when streaming an mp4 file.

Thanks boojob for ur contribution.

I have checked and made sure that my FMLE settings are the same as what u gave.

My jwplayer is the same this one. I also did a copy and paste of this and only changed the wowza-address but the problem is still thesame.

The error it gives is:

WARN	server	comment	2012-09-22	04:49:12	-	-	-	-	-	1887.362	-	-	-	-	-	-	-	-	HTTPStreamerAdapterCupertinoStreamer.getAppInstance: Stream not found [live/myStream/playlist.m3u8]: myStream

I will be very grateful if u help my sort this out.

Thanks